Функция VIF из пакета «car» возвращает NA при оценке модели регрессии Multinomial Logisti c - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь проверить мультиколлинеарность в регрессионной модели полиномиальной логистики c, которую я настроил. Данные содержат 13 переменных по более чем 33000 наблюдений. 9 переменных являются категориальными факторными переменными, а остальные 3 являются числовыми / непрерывными переменными. Я запустил регрессионную модель multinom logisti c из пакета nnet, которая выглядела так:

my.model = multinom(dependent.var ~., data = training data)

, которая работала (хотя и не очень хорошо). Затем я запустил функцию VIF из машины, и результаты GVIF для каждой переменной вернулись в виде «NaN» с предупреждением:

Warning message: In vif.default(multi.model) : No intercept: vifs may not be sensible.

Почему проблема продолжает возникать ?

Спасибо

1 Ответ

0 голосов
/ 08 апреля 2020

Если вы посмотрите на vif с именем (car ::: vif.default), в коде есть строка:

if (names(coefficients(mod)[1]) == "(Intercept)") {
        v <- v[-1, -1]
        assign <- assign[-1]
    }
    else warning("No intercept: vifs may not be sensible.")

Итак, мы можем использовать приведенный ниже пример, чтобы продемонстрировать, почему он возвращает ошибка:

library(nnet)
fit = multinom(Species ~.,data=iris)
vif(fit)
 Sepal.Length   Sepal.Width  Petal.Length   Petal.Width 
-1.878714e+16 -8.846005e+15 -1.827592e+15 -4.954974e+15 
Warning message:
In vif.default(fit) : No intercept: vifs may not be sensible.

Та же ошибка, и мы смотрим на коэффициенты:

coefficients(fit)
           (Intercept) Sepal.Length Sepal.Width Petal.Length Petal.Width
versicolor    18.69037    -5.458424   -8.707401     14.24477   -3.097684
virginica    -23.83628    -7.923634  -15.370769     23.65978   15.135301

names(coefficients(fit))
NULL

Поскольку это многочлен, коэффициенты сохраняются в виде матрицы (используя один класс в качестве ссылки, Вы оцениваете лог-шансы других классов), поэтому функция names () не работает и возвращает ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...