【问题标题】:Test for Multicollinearity in Panel Data R面板数据 R 中的多重共线性检验
【发布时间】:2013-12-15 08:56:28
【问题描述】:

我正在使用R 中的plm 包运行面板数据回归,并希望控制解释变量之间的多重共线性。
我知道car-package 中有vif() 函数,但据我所知,它不能处理面板数据输出。
plm 可以进行其他诊断,例如单位根检验,但我没有找到计算多重共线性的方法。

有没有办法计算与vif 类似的测试,或者我可以将每个变量视为时间序列,省略面板信息并使用car 包运行测试?

我不能透露数据,但问题应该与所有面板数据模型有关。
该维度大约是 1,000 个观测值,超过 50 个时间段。
我使用的代码如下所示:

pdata <- plm.data(RegData, index=c("id","time"))
fixed <- plm(Y~X, data=pdata, model="within")

然后

vif(fixed) 

返回错误。


提前谢谢你。

【问题讨论】:

  • 我不知道面板数据中 VIF 的 R 函数,但您始终可以查看解释变量之间的相关性以获得一个好主意。可能设计越平衡,你得到的画面就越好。
  • 感谢@Edwin 的想法但是在不考虑面板性质的情况下使用面板数据变量之间的相关性是否有效?这不会在结果中造成一些失真吗?
  • 这是我的直觉,但我会说当你关联在同一时间点测量的变量时它是有效的。如果您有多重共线性问题,至少要获得一个总体印象。

标签: r regression plm panel-data


【解决方案1】:

这个问题是参考其他统计包如 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)

【讨论】:

  • 感谢@Rfan!这正是我的问题的答案。
猜你喜欢
  • 2013-07-16
  • 1970-01-01
  • 2016-10-01
  • 1970-01-01
  • 2021-07-10
  • 1970-01-01
  • 2019-06-13
  • 2019-01-05
  • 2015-09-17
相关资源
最近更新 更多