Я пытаюсь оценить, существует ли мультиколлинеарность между независимыми переменными для задачи логистической регрессии.
При этом я узнал, что пакет пертурбации в R будет хорошим выбором.
Я попробовал примеры в виньетке
library(perturb)
library(glmnet)
data(consumption)
ct1 <- with(consumption, c(NA,cons[-length(cons)])) #evaluate a condition
m1 <- lm(cons ~ ct1+dpi+rate+d_dpi, data = consumption)
cd<-colldiag(m1, center=T)
cd
и заметил следующее:
colldiag
обеспечивает хороший вывод для Cond. Индекс и дисперсия Разложение. Можно легко выяснить, какие вар. это может вызвать проблему. Но это реализовано только для непрерывной переменной.
При попытке добавить категорический сбой:
library(car)
data(Duncan)
attach(Duncan)
m2<-lm(prestige~income+education+type, data=Duncan)
colldiag(m2)
«Ошибка в v ^ 2: нечисловой аргумент для двоичного оператора».
Должен ли я явно кодировать категориальный (type
) в фиктивную переменную в oder, чтобы использовать colldiag
или colldiag
действительно должен работать только для непрерывной переменной?
Кажется, что функция perturb решает эту проблему при запуске кода выше, но вывод совершенно другой, и я не знаю, как его прочитать / интерпретировать, так как я не вижу ни одного номера условия в сводке.
p2<- perturb(m2,pvars=c("income","education"),prange=c(1,1),pfac=list("type",pcnt=95))
summary(p2)
У кого-нибудь есть идея, как из этого извлечь смысл?
Конечная цель моего анализа - оценить мультиколлинеарность для смеси непрерывных и категориальных переменных, используя индекс условий.