2017-04-08 376 views
2

我正在运行具有一些异方差性和序列相关性的回归模型,我试图在不改变模型规范的情况下解决这两个问题。FGLS使用plm包修正R系列相关性和异方差性

首先,我已经生成了一个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命令来解决这个问题吗?还是有人知道解决这两个问题的更好的命令?它不一定需要是面板数据命令,因为我只有一个人。

+0

'lm(res [-n]〜res [-1])'不会给你你想要的,使用'plm :: lag'代替。 – Helix123

+0

只需执行OLS回归并使用稳健(异方差和序列相关健壮)标准错误,看包''三明治'。 – Helix123

回答

1

只要你说你不需要面板结构,你就可以直接修正标准错误,这是计量经济学文献中比较常用的方法。事实上,GLS估计是有点老派的今天...

你可以这样做:

library(sandwich) 
library(lmtest) 

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

coeftest(reg, vcov = vcovHAC(reg)) 

只是为了completness,如果你想制作一个聚集稳健估计像塔塔呢,你云尝试使用here的Tarzan cl功能。

+0

程序包“plm”中的函数'vcovXX'(例如'vcovHC')也应该执行群集SE - 比自己实现它更容易。 – Helix123