我想估计一个固定效应模型(具有国家和年份固定效应)并另外应用 HAC 标准误差。虽然在 r 中运行以下代码后没有收到任何错误消息,但我不确定是否真的收到了 HAC 标准错误。有人可以确认一下吗?特别是,如果我将 HAC3 更改为 HC3,甚至完全删除选项 vcovHAC(或 vcovHC)等,我会得到完全相同的标准错误。
fe1 <- plm( log(DEB) ~ log(IMP),
model = "within",
data = data,
index = c("country","year"),
effect = "twoways")
fe2 <- plm( log(DEB) ~ log(IMP),
model = "within",
data = data,
index = c("country","year"),
effect = "twoways",
vcovHAC = "HAC3")
fe3 <- plm( log(DEB) ~ log(IMP),
model = "within",
data = data,
index = c("country","year"),
effect = "twoways",
vcovHC = "HC3")
你的做法是错误的,没有参数
vcovHAC
,也没有vcovHC
来发挥作用plm
。 R 中处理非常规标准错误的典型方法是:
这种方法非常灵活,因为 vcov 可以提供给许多格式化包/函数(第三步),例如,模型摘要的典型
summary
或 lmtest::coeftest
。我在下面举了一个例子,取自帮助文件?plm::vcovHC
,但还有更多例子。请务必阅读帮助文件以了解您可能想要设置的所有参数等。
plm
包的小插图[https://cran.r-project.org/web/packages/plm/vignettes/A_plmPackage.html]有一整节“鲁棒协方差矩阵估计”和示例。另外,plm的vocHC
以及plm的其他vcovXX功能都有例子。
library(plm)
data("Produc", package = "plm")
zz <- plm(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp,
data = Produc, model = "random")
summary(zz, vcov = vcovHC)
#> Oneway (individual) effect Random Effect Model
#> (Swamy-Arora's transformation)
#>
#> Note: Coefficient variance-covariance matrix supplied: vcovHC
#>
#> Call:
#> plm(formula = log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp,
#> data = Produc, model = "random")
#>
#> Balanced Panel: n = 48, T = 17, N = 816
#>
#> Effects:
#> var std.dev share
#> idiosyncratic 0.001454 0.038137 0.175
#> individual 0.006838 0.082691 0.825
#> theta: 0.8888
#>
#> Residuals:
#> Min. 1st Qu. Median 3rd Qu. Max.
#> -0.1067230 -0.0245520 -0.0023694 0.0217333 0.1996307
#>
#> Coefficients:
#> Estimate Std. Error z-value Pr(>|z|)
#> (Intercept) 2.1354110 0.2386676 8.9472 < 2.2e-16 ***
#> log(pcap) 0.0044386 0.0545970 0.0813 0.935206
#> log(pc) 0.3105484 0.0435922 7.1239 1.049e-12 ***
#> log(emp) 0.7296705 0.0699680 10.4286 < 2.2e-16 ***
#> unemp -0.0061725 0.0023326 -2.6461 0.008141 **
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Total Sum of Squares: 29.209
#> Residual Sum of Squares: 1.1879
#> R-Squared: 0.95933
#> Adj. R-Squared: 0.95913
#> Chisq: 4524.65 on 4 DF, p-value: < 2.22e-16
summary(zz, vcov = function(x) vcovHC(x, method="arellano", type="HC1"))
#> Oneway (individual) effect Random Effect Model
#> (Swamy-Arora's transformation)
#>
#> Note: Coefficient variance-covariance matrix supplied: function(x) vcovHC(x, method = "arellano", type = "HC1")
#>
#> Call:
#> plm(formula = log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp,
#> data = Produc, model = "random")
#>
#> Balanced Panel: n = 48, T = 17, N = 816
#>
#> Effects:
#> var std.dev share
#> idiosyncratic 0.001454 0.038137 0.175
#> individual 0.006838 0.082691 0.825
#> theta: 0.8888
#>
#> Residuals:
#> Min. 1st Qu. Median 3rd Qu. Max.
#> -0.1067230 -0.0245520 -0.0023694 0.0217333 0.1996307
#>
#> Coefficients:
#> Estimate Std. Error z-value Pr(>|z|)
#> (Intercept) 2.1354110 0.2394021 8.9198 < 2.2e-16 ***
#> log(pcap) 0.0044386 0.0547651 0.0810 0.935404
#> log(pc) 0.3105484 0.0437264 7.1021 1.229e-12 ***
#> log(emp) 0.7296705 0.0701833 10.3966 < 2.2e-16 ***
#> unemp -0.0061725 0.0023398 -2.6380 0.008339 **
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Total Sum of Squares: 29.209
#> Residual Sum of Squares: 1.1879
#> R-Squared: 0.95933
#> Adj. R-Squared: 0.95913