Это мой первый вопрос на stackoverflow.com, поэтому не стесняйтесь указывать на мои ошибки при «задании вопросов», а также на ошибки кода. Кстати, Engli sh не мой родной язык, поэтому я постараюсь изо всех сил.
У меня есть линейная модель с множеством объясняющих переменных (независимых переменных)
model <- lm(y ~ x1 + x2 + x3 + ... + x100)
некоторые из которых линейно зависят друг от друга (мультиколлинеарность).
Я хочу, чтобы аппарат искал имя объясняющей переменной, которая имеет самый высокий коэффициент VIF (например, x2
), удалил ее из формулы и затем запустил старую функцию lm с новой формулой
model <- lm(y ~ x1 + x3 + ... + x100)
Я уже научился извлекать имя объясняющей переменной, которая имеет самый высокий коэффициент VIF:
max_vif <- function(x) {
vifac <- data.frame(vif(x))
nameofmax <- rownames(which(vifac == max(vifac), arr.ind = TRUE))
return(nameofmax)
}
Но я все еще не понимаю, как искать нужную объясняющую переменную, удалите ее из формулы и снова запустите функцию.
Спасибо!