Для логистических моделей для вывода важно сначала подчеркнуть, что здесь нет ошибок. Значение warning
in R правильно информирует вас о том, что оценка максимального правдоподобия лежит на границе пространства параметров. Отношение шансов сильно наводит на мысль об ассоциации. Единственная проблема заключается в том, что два распространенных метода создания тестов: тест Вальда и тест отношения правдоподобия требуют оценки информации в рамках альтернативной гипотезы.∞
С данными, сгенерированными в соответствии с
x <- seq(-3, 3, by=0.1)
y <- x > 0
summary(glm(y ~ x, family=binomial))
Предупреждение сделано:
Warning messages:
1: glm.fit: algorithm did not converge
2: glm.fit: fitted probabilities numerically 0 or 1 occurred
что очень очевидно отражает зависимость, которая встроена в эти данные.
В R тест Вальда находится с summary.glm
или с waldtest
в lmtest
упаковке. Проверка отношения правдоподобия выполняется с anova
или lrtest
в lmtest
упаковке. В обоих случаях информационная матрица бесконечно ценится, и нет доступных выводов. Скорее всего , R делает производить вывод, но вы не можете доверять. Вывод, который R обычно производит в этих случаях, имеет значения p, очень близкие к единице. Это связано с тем, что потеря точности в операционной на порядки меньше, чем потеря точности в матрице дисперсии и ковариации.
Некоторые решения изложены здесь:
Используйте одноступенчатую оценку,
Существует множество теорий, подтверждающих низкое смещение, эффективность и обобщаемость одношаговых оценок. Легко указать одношаговую оценку в R, и результаты, как правило, очень благоприятны для прогнозирования и вывода. И эта модель никогда не будет расходиться, потому что итератор (Ньютон-Рафсон) просто не имеет возможности сделать это!
fit.1s <- glm(y ~ x, family=binomial, control=glm.control(maxit=1))
summary(fit.1s)
дает:
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.03987 0.29569 -0.135 0.893
x 1.19604 0.16794 7.122 1.07e-12 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Таким образом, вы можете увидеть, что прогнозы отражают направление тренда. И вывод весьма наводит на мысль о тенденциях, которые мы считаем истинными.
выполнить тест оценки,
Счет (или Рао) статистика отличается от отношения вероятности и статистики Wald. Это не требует оценки дисперсии согласно альтернативной гипотезе. Подгоняем модель под нуль:
mm <- model.matrix( ~ x)
fit0 <- glm(y ~ 1, family=binomial)
pred0 <- predict(fit0, type='response')
inf.null <- t(mm) %*% diag(binomial()$variance(mu=pred0)) %*% mm
sc.null <- t(mm) %*% c(y - pred0)
score.stat <- t(sc.null) %*% solve(inf.null) %*% sc.null ## compare to chisq
pchisq(score.stat, 1, lower.tail=F)
Дает в качестве меры ассоциации очень сильную статистическую значимость. Обратите внимание на то, что оценщик за один шаг выдает тестовую статистику равную 50,7, а тест оценки здесь производит тестовую статистику pf 45,75.χ2
> pchisq(scstat, df=1, lower.tail=F)
[,1]
[1,] 1.343494e-11
В обоих случаях вы делаете вывод об ИЛИ бесконечности.
и используйте средние несмещенные оценки для доверительного интервала.
Вы можете получить медианную несмещенную, не единственную 95% -ную ДИ для отношения бесконечных шансов, используя медианную несмещенную оценку. Пакет epitools
в R может сделать это. И я привожу пример реализации этой оценки здесь: доверительный интервал для выборки Бернулли