Ошибка «система вычислительно единственная» при запуске GLM

29

Я использую пакет robustbase для запуска оценки glm. Однако, когда я делаю это, я получаю следующую ошибку:

Error in solve.default(crossprod(X, DiagB * X)/nobs, EEq) : 
  system is computationally singular: reciprocal condition number = 1.66807e-16

Что это значит / указывает? И как я могу это отладить?

PS. Если вам понадобится что-нибудь (формула / спецификация или данные), я с удовольствием предоставлю это.

NK1
источник

Ответы:

26

Это означает, что ваша матрица дизайна не обратима и поэтому не может быть использована для разработки регрессионной модели. Это вытекает из линейно зависимых столбцов, то есть сильно коррелированных переменных. Изучите парную ковариацию (или корреляцию) ваших переменных, чтобы выяснить, есть ли переменные, которые потенциально могут быть удалены. Вы ищете ковариации (или корреляции) >> 0. В качестве альтернативы, вы можете, вероятно, автоматизировать выбор этой переменной, используя прямую пошаговую регрессию.

Это также может быть результатом наличия большего количества переменных, чем наблюдений, и в этом случае ваша матрица проектирования, вероятно, не имеет полного ранга. Это немного сложнее исправить, но есть способы. Я считаю, что регрессия лассо должна работать хорошо, когда данные «шире», чем «длинные».

Имейте в виду: если вы решите попробовать лассо или пошаговый отбор, вы будете делать гораздо больше (с точки зрения выбора переменных), чем просто справляться с мультиколлинеарностью.

Дэвид Маркс
источник
Спасибо, два вопроса: 1. Знаете ли вы о какой-либо процедуре в r, которая может помочь мне при отладке этого? 2. Я вижу, что когда я запускаю точно такую ​​же модель на тех же данных с помощью glm () вместо glmrob (), я не получаю никаких ошибок - имеет ли это смысл, или это подразумевает ошибку в glmrob () функция?
NK1
2

Потратил много времени на эту ошибку, но зацените эту страницу, чтобы решить ее для меня

https://www.kaggle.com/c/house-prices-advanced-regression-techniques/discussion/24586

В основном вы можете просто изменить метод, который используют мыши. Я использовал PPN и изменил его в корзину

rlhull6
источник
2
Постарайтесь сделать ответ самодостаточным в тексте вашего ответа, пожалуйста. Таким образом, люди с большей вероятностью прочитают его и с меньшей вероятностью удалят его как слишком короткий и не по теме.
Карл