система zeroinfl вычислительно сингулярна, тогда как корреляция в предикторах отсутствует

Я пытаюсь смоделировать данные о количестве дней отсутствия работника в году (зависимая переменная). У меня есть набор предикторов, включая информацию о работниках, их работе и т. д., и большинство из них являются категориальными переменными. Следовательно, необходимо оценить большое количество коэффициентов (83), но, поскольку у меня более 600 000 строк, я думаю, что это не должно быть проблемой. Кроме того, в моем наборе данных нет пропущенных значений.

Моя зависимая переменная содержит множество нулевых значений, поэтому я хотел бы оценить нулевую завышенную модель (пуассон или отрицательный бином) с помощью функции zeroinfl пакета pscl с кодом:

zpoisson <- zeroinfl(formule,data=train,dist = "poisson",link="logit")

но я получаю следующую ошибку после долгого времени работы:

Error in solve.default(as.matrix(fit$hessian)) : system is computationally singular: reciprocal condition number = 1.67826e-41

Я думаю, что эта ошибка означает, что некоторые из моих копеременных коррелированы, но, похоже, это не так при проверке парной корреляции и коэффициента инфляции дисперсии (VIF). Более того, я также без проблем оценил другие модели, такие как логит и Пуассон или модели отрицательного биномиального подсчета, тогда как эти типы моделей также чувствительны к коррелированным предикторам.

У вас есть идея, почему функция zeroinfl не работает? Может ли это быть связано с тем, что у меня слишком много предикторов, даже если они не коррелированы? Я уже пытался удалить некоторые предикторы с помощью алгоритма Boruta, но он сохранил их все.

Заранее спасибо за вашу помощь.


person Rcoffee    schedule 23.05.2017    source источник
comment
Вы пробовали отрицательную биномиальную ссылку, чтобы увидеть, сможете ли вы воспроизвести ту же ошибку?   -  person Yongkai    schedule 23.06.2017


Ответы (1)


  1. Одной из возможных причин этой ошибки является коллинеарность регрессоров. Однако есть и другие.
  2. На самом деле проблема может быть вычислительной в том смысле, что масштабирование регрессоров плохое. Некоторые регрессоры могут принимать значения в тысячи или миллионы, а затем иметь крошечный коэффициент, в то время как другие регрессоры принимают небольшие значения и имеют огромные коэффициенты. Затем это приводит к численно неустойчивым матрицам Гессе и указанной выше ошибке при инверсии. Типичные причины включают регрессоры в квадрате x ^ 2, когда сам x уже велик. Просто взять x/1000 или около того может решить проблему.
  3. Проблема также может заключаться в разделении или отсутствии разнообразия в ответе. Например, если для определенных групп или уровней факторов имеются только нули, соответствующие оценки коэффициентов могут расходиться и иметь огромные стандартные ошибки. Очень похоже на (квази-) полное разделение в бинарной регрессии.
person Achim Zeileis    schedule 29.08.2017