"Non conformable arguments" pgmm 错误(plm 库)

"Non conformable arguments" error with pgmm (plm library)

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

Error in t(y) %*% x : non-conformable arguments

虽然可以得到模型的系数

我自己的数据有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 的平衡面板。当我包括更多年数时,一切都会好起来的。所以一定是面板的长度出了问题。

如有任何帮助,我们将不胜感激。

有人问了一个类似的问题here。提示错误与mtest有关,是pgmm汇总法进行的序列相关测试。 运行 单独的函数似乎证实了这一点

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

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