【问题标题】:FGLS Correcting Serial Correlation and heteroskedasticity with plm package in RFGLS用R中的plm包校正序列相关和异方差
【发布时间】:2017-09-04 03:29:35
【问题描述】:

我正在运行一个具有一些异方差性和序列相关性的回归模型,并且我试图在不更改模型规范的情况下解决这两个问题。

首先,我生成了一个 OLS 模型并实现了异方差和序列相关这两个问题。所以,我尝试用 plm 的pggls 命令运行一个可行的广义最小二乘(FGLS)模型来同时解决这两个问题,但是这个命令似乎只解决了异方差而不是序列相关。

我的代码如下:

base<-pdata.frame(base, index = c("ID","time"), drop = FALSE)
Reg<-pggls(sells~ prices + income + stock+
           period1 + period2+ period3, model = c("pooling"), 
           data=base)

这个命令似乎可以纠正异方差,但它肯定不能纠正序列相关性,因为我创建了一个简单的证明。下面我生成了回归模型的残差和滞后残差之间的回归:

res = Reg$res 
n = length(res)
mod = lm(res[-n] ~ res[-1]) 
summary(mod)

res[-1] 系数是 mod 是有意义的。所以它没有解决序列相关。

有人知道如何在pggls 命令中添加一些选项来解决这个问题吗?或者有人知道解决这两个问题的更好的命令吗?它不一定需要是面板数据命令,因为我只有 1 个人。

【问题讨论】:

  • lm(res[-n] ~ res[-1]) 不会给您想要的,请改用plm::lag
  • 只需进行 OLS 回归并使用稳健(异方差和序列相关稳健)标准误差,查看包 sandwich

标签: r linear-regression plm


【解决方案1】:

只要您说不需要面板结构,您就可以直接纠正标准错误,这是计量经济学文献中使用较多的方法。事实上,GLS 估计在今天有点过时了……

你可以这样做:

library(sandwich)
library(lmtest)

reg <-lm(sells ~ prices + income + stock + period1 + period2+ period3, data = base)

coeftest(reg, vcov = vcovHAC(reg))

为了完整起见,如果您想像 Stata 一样生成聚类稳健估计,您可以尝试来自 here 的 Tarzan 的 cl 函数。

【讨论】:

  • plm中的函数vcovXX(例如vcovHC)也应该做集群SE - 比自己实现它更容易。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-24
  • 1970-01-01
  • 2017-03-11
  • 2021-09-01
  • 2016-07-15
  • 1970-01-01
  • 2011-05-22
相关资源
最近更新 更多