我正在使用plm
包中运行面板数据回归,R
并希望控制解释变量之间的多重共线性.
我知道-package中有vif()
函数car
,但据我所知,它不能处理面板数据输出.
的plm
可以做其他的诊断,如单位根测试,但我发现没有方法来计算多重.
有没有办法计算类似的测试vif
,或者我可以只将每个变量视为时间序列,省略面板信息并使用car
包运行测试?
我无法透露数据,但问题应与所有面板数据模型相关.
该维度大约为1,000个观测值,超过50个时间段.
我使用的代码如下所示:
pdata <- plm.data(RegData, index=c("id","time")) fixed <- plm(Y~X, data=pdata, model="within")
然后
vif(fixed)
返回错误.
先感谢您.
已经参考其他统计软件包询问了这个问题,例如SAS https://communities.sas.com/thread/47675和Stata http://www.stata.com/statalist/archive/2005-08/msg00018.html常见的答案是使用合并模型来获得VIF.逻辑是,由于多重共线性仅与自变量有关,因此无需使用面板方法控制单个效果.
这是从另一个站点提取的一些代码:
mydata=read.csv("US Panel Data.csv") attach(mydata) # not sure is that's really needed Y=cbind(Return) # not sure what that is doing pdata=plm.data(mydata, index=c("id","t")) model=plm(Y ~ 1+ESG+Beta+Market.Cap+PTBV+Momentum+Dummy1+Dummy2+Dummy3+Dummy4+Dummy5+ Dummy6+Dummy7+Dummy8+Dummy9, data=pdata,model="pooling") vif(model)