Подтвердить что ты не робот

Почему я получаю "алгоритм не сходился" и "устанавливал 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" ...
4b9b3361

Ответ 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.