Индекс условий для непрерывных и категориальных переменных с использованием пакета perturb - PullRequest
2 голосов
/ 04 июня 2019

Я пытаюсь оценить, существует ли мультиколлинеарность между независимыми переменными для задачи логистической регрессии. При этом я узнал, что пакет пертурбации в 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

и заметил следующее:

  1. colldiag обеспечивает хороший вывод для Cond. Индекс и дисперсия Разложение. Можно легко выяснить, какие вар. это может вызвать проблему. Но это реализовано только для непрерывной переменной. При попытке добавить категорический сбой:

    library(car)
    data(Duncan)
    attach(Duncan)
    m2<-lm(prestige~income+education+type, data=Duncan)
    colldiag(m2)
    

    «Ошибка в v ^ 2: нечисловой аргумент для двоичного оператора».

    Должен ли я явно кодировать категориальный (type) в фиктивную переменную в oder, чтобы использовать colldiag или colldiag действительно должен работать только для непрерывной переменной?

  2. Кажется, что функция perturb решает эту проблему при запуске кода выше, но вывод совершенно другой, и я не знаю, как его прочитать / интерпретировать, так как я не вижу ни одного номера условия в сводке.

    p2<- perturb(m2,pvars=c("income","education"),prange=c(1,1),pfac=list("type",pcnt=95))
    summary(p2)
    

    У кого-нибудь есть идея, как из этого извлечь смысл? Конечная цель моего анализа - оценить мультиколлинеарность для смеси непрерывных и категориальных переменных, используя индекс условий.

...