Почему я получаю "алгоритм не сходился" и "устанавливал prob численно 0 или 1" предупреждения с помощью glm?
Итак, это очень простой вопрос, просто не могу понять, как это понять.
Я запускаю логит, используя функцию glm, но продолжаю получать предупреждающие сообщения, относящиеся к независимой переменной. Они хранятся как факторы, и я изменил их на числовые, но не повезло. Я также закодировал их до 0/1, но это тоже не сработало.
Пожалуйста, помогите!
> mod2 <- glm(winorlose1 ~ bid1, family="binomial")
Warning messages:
1: glm.fit: algorithm did not converge
2: glm.fit: fitted probabilities numerically 0 or 1 occurred
Я также пробовал это в Zelig, но аналогичная ошибка:
> mod2 = zelig(factor(winorlose1) ~ bid1, data=dat, model="logit")
How to cite this model in Zelig:
Kosuke Imai, Gary King, and Oliva Lau. 2008. "logit: Logistic Regression for Dichotomous Dependent Variables" in Kosuke Imai, Gary King, and Olivia Lau, "Zelig: Everyone Statistical Software," http://gking.harvard.edu/zelig
Warning messages:
1: glm.fit: algorithm did not converge
2: glm.fit: fitted probabilities numerically 0 or 1 occurred
EDIT:
> str(dat)
'data.frame': 3493 obs. of 3 variables:
$ winorlose1: int 2 2 2 2 2 2 2 2 2 2 ...
$ bid1 : int 700 300 700 300 500 300 300 700 300 300 ...
$ home : int 1 0 1 0 0 0 0 1 0 0 ...
- attr(*, "na.action")=Class 'omit' Named int [1:63021] 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 ...
.. ..- attr(*, "names")= chr [1:63021] "3494" "3495" "3496" "3497" ...
Ответы
Ответ 1
Если вы посмотрите ?glm
(или даже выполните поиск Google для своего второго предупреждающего сообщения), вы можете наткнуться на это из документации:
Для фона для предупреждающих сообщений о "установленных вероятностях численно 0 или 1 для биномиальных GLM см. Venables and Ripley (2002, стр. 197-8).
Теперь не у всех есть эта книга. Но, предполагая, что это кошерно для меня, вот соответствующий отрывок:
Существует одно довольно распространенное обстоятельство, в котором обе сходимости проблемы и феномен Хаука-Доннера. Это когда установленные вероятности чрезвычайно близки к нулю или одному. Рассмотрим проблема медицинского диагноза с тысячами случаев и около 50 двоичных объясняющая переменная (которая может возникнуть в результате кодирования меньше категориальных переменных); один из этих показателей редко бывает правдой, но всегда указывает на то, что болезнь присутствует. Тогда установленные вероятности случаев с этим индикатором должен быть один, который может быть достигнут только взяв & beta; i= ∞. Результат от glm
будет предупреждения и оцененный коэффициент около +/- 10. Там было довольно обширное обсуждение этого вопроса в статистической литературе, обычно претендуя на отсутствие оценок максимального правдоподобия; видеть Саутен и Даффи (1989, стр. 234).
Один из авторов этой книги более подробно прокомментировал здесь. Итак, урок здесь - внимательно посмотреть на один из уровней вашего предиктора. (И Google предупреждающее сообщение!)
Ответ 2
Если вы правильно указали формулу GLM и соответствующие входные данные (т.е. Матрицу проектирования, функцию связи и т.д.). Алгоритм glm может не сходиться из-за недостаточного количества итераций, используемых в алгоритме итеративно повторно взвешенных наименьших квадратов (IRLS). Измените maxit = 25 (по умолчанию) на maxit = 100 в R.