如何运行pgmm命令?

时间:2018-07-20 14:28:53

标签: r panel plm generalized-method-of-moments

请查看我的数据示例和pgmm代码,并告诉我是否使用了正确的语法。

Y1是我的因变量,带有C *变量的X *是我的自变量和控制变量。我试图以两年的滞后时间运行动态GMM模型,但这是我第一次使用PGMM,并且不确定这是否是正确的语法。

Sample Data

我正在尝试运行以下pgmm命令:

country <- pdata.frame(country, index = c('Co_Code', 'YEAR'))

model.gmm <- Y1 ~ lag(X1, 2) + lag(X2, 2) + lag(X3, 2) + lag(X7, 2) + 
lag(X6, 2) + lag(X4, 2) + lag(X5, 2) + lag(X8, 2) + lag(X9, 2) + 
lag(X10, 2) + lag(C1, 2) + lag(C2, 2) + lag(C3, 2) + lag(C6, 2) + lag(C7, 2)
gmm.form = update.formula(model.gmm, . ~ . | lag(Y1, 2))
gmm.form[[3]] <- gmm.form[[3]][[2]]


gmm.fit <- pgmm(gmm.form, data = country, effect = "twoways", model = 
"twosteps") 
 summary(gmm.fit)

编辑:我还生成了以下代码:

 gmm.fit <- pgmm(Y1 ~ X1 + X2 + X3 + X6 + X7 + X4 + X5 + X8 + X9 + X10 +    
 C1 + C2 + C3 + C6 |lag(X1, 2) + lag(X2, 2) + lag(X3, 2) + lag(X7, 2) + 
 lag(X6, 2) + lag(X4, 2) + lag(X5, 2) + lag(X8, 2) + lag(X9, 2) + 
 lag(X10, 2) + lag(C1, 2) + lag(C2, 2) + lag(C3, 2) + lag(C6, 2), data = 
 country, effect = "twoways", model = "twosteps")

1 个答案:

答案 0 :(得分:0)

是的,您的更新版本显示正确。您可能更喜欢使用dynformula,其基本结构为:

gmm.form <- dynformula(Y1~ X + C, lag.form=list(2,2,2))

这很容易概括为多个X和C:

gmm.form <- dynformula(Y1~ X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 +X10 + C1 + C2
+ C3 + C4 + C5 +C6, lag.form=list(rep(2,17)))

此命令意味着您将对所有变量最多包括2个滞后(注意,上面lag.form列表中的第一个为Y1 - dynformula会自动将Y1的滞后放在等式的右侧)。

[编辑:我注意到您尚未指定乐器。看到您的数据,对于滞后Y的标准动态面板方法,我将gmm.inst=~Y1,gmm.lag=list(c(3,99))]