我正在测试数据集中的多重共线性。我能够很好地运行VIF(),以测试是否存在多重共线性。但是,当我运行vif()来测试每个变量是否值得删除时,即使我的同班同学几乎拥有完全相同的代码和他的作品,我仍然每次都遇到相同的错误。
据我所知,您想在VIF()中运行一个模型,就像数据的lm(),所以我做到了,而且行得通。但是vif()我相信您应该只能够插入一个数据帧,因此在通过vif()将数据放入data.frame之前,我尝试过将其设置为data.frame,但这似乎行不通。为了看看会发生什么,我还尝试通过vif()运行数据的lm(),但这绝对不起作用。
d <- read.table('9.10data.txt', col.names = c('y',
'x1','x2','x3','x4'))
reg <- lm(data = d, y~x1+x2+x3+x4)
VIF(reg)
# VIF = 26.94823 > 10 so multicollinearity is present.
d <- data.frame(d)
vif(d)
我希望得到一种矩阵,该矩阵显示每个变量x1,x2,x3,x4的vif值,但我不断收到错误消息:y [,i]中的错误:维数不正确
如果数据有帮助,请转到http://users.stat.ufl.edu/~rrandles/sta4210/Rclassnotes/data/textdatasets/KutnerData/Chapter%20%209%20Data%20Sets/CH09PR10.txt然后我将数据复制并粘贴到文本编辑器中,并保存为txt文件。
vif
仅给出自变量的方差膨胀因子。但是您的data.frame d也包含y。