每次尝试在R中运行vif()时,我似乎都会遇到相同的错误

问题描述 投票:0回答:1

我正在测试数据集中的多重共线性。我能够很好地运行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文件。

r linear-regression
1个回答
0
投票

vif仅给出自变量的方差膨胀因子。但是您的data.frame d也包含y。

© www.soinside.com 2019 - 2024. All rights reserved.