4

我没有成功尝试使用包中的 Arellano 和 Bond (1991)pgmm估计plm。为了查看问题是否出在我的数据中,我改为使用 plm 库中提供的数据,但在使用“summary”命令时遇到了同样的问题:

t(y) %*% x 中的错误:参数不一致

但是可以得到模型的系数。

我自己的数据有 T=3,N=290。据我了解,T=3 是最小值,但应该足够了。当使用 Arellano 和 Bond 数据时,我在 T=4 时得到相同的错误。

data("EmplUK", package = "plm")
library(sqldf)
UK<-sqldf("select * from EmplUK where year in ('1982','1981',
'1980','1979')")


z1 <- pgmm(log(emp) ~ lag(log(emp), 1) + log(wage) +
log(capital) + log(output) | lag(log(emp), 2),
       data = UK, effect = "twoways", model = "twosteps")
summary(z1)

我理解估计方法和 R 公式的方式,左项是因变量的差异,第一个右手项是滞后差异。后一项由 (t-2) 中因变量的水平来衡量

我已经验证我使用的子集是 T=4 的平衡面板。当我包括更多年份时,一切都会好起来的。所以一定是面板的长度引起了麻烦。

任何帮助将非常感激。

4

1 回答 1

2

这里问了一个类似的问题。建议该错误与mtestpgmm 汇总方法执行的序列相关测试有关。单独运行该功能似乎证实了这一点

>mtest(z1, order = 2)
Error in t(y) %*% x : non-conformable arguments

T=3 足以估计模型,但这只会给您留下最后一个时期的估计值。二阶mtest要求残差至少包含 3 个周期,即模型的 T=5。

于 2015-05-15T10:59:30.863 回答