Я проверяю мультиколлинеарность в наборе данных. Я могу запустить VIF()
просто отлично, чтобы проверить наличие мультиколлинеарности. Тем не менее, когда я запускаю vif()
, чтобы проверить каждую переменную, чтобы определить, стоит ли ее удалять, я продолжаю каждый раз получать одну и ту же ошибку, даже если у моего одноклассника почти тот же самый код и его работы.
Насколько я понимаю, в VIF()
вы хотите запустить модель, например lm()
данных, поэтому я сделал это, и это работает. Но vif()
Я считаю, что вы должны просто иметь возможность подключить фрейм данных, поэтому я попытался сделать мои данные data.frame перед тем, как пропустить их через vif()
, но, похоже, это не работает. Чтобы посмотреть, что произойдет, я также попытался запустить lm()
данных через vif()
, но это определенно не работает.
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)
Я ожидал бы получить своего рода матрицу, которая показываетvif
значения для каждой переменной x1, x2, x3, x4, но я получаю сообщение об ошибке: Ошибка в y [, i]: неверное количество измерений
Если данные помогут, перейдите кhttp://users.stat.ufl.edu/~rrandles/sta4210/Rclassnotes/data/textdatasets/KutnerData/Chapter%20%209%20Data%20Sets/CH09PR10.txt и я просто копирую и вставляю данные в текстовый редактор и сохраняю как текстовый файл.