warning
∞
З даними, згенерованими за рядками
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 тест Wald знайдений з пакетом 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
Таким чином, ви можете бачити, що прогнози відображають напрямок тенденції. І висновок дуже вказує на тенденції, які ми вважаємо правдивими.
виконати бальний тест,
Статистика (або Rao) відрізняється від коефіцієнта ймовірності та статистики вальд. Він не вимагає оцінки дисперсії за альтернативною гіпотезою. Ми підходимо під нуль:
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)
χ2
> pchisq(scstat, df=1, lower.tail=F)
[,1]
[1,] 1.343494e-11
В обох випадках у вас є висновок про АБО нескінченності.
та використовувати медіанні об'єктивні оцінки для довірчого інтервалу.
За допомогою коефіцієнта нескінченних шансів ви можете створити медіанний неупереджений, несингулярний 95% ІС для коефіцієнта нескінченних шансів. Пакет epitools
в R може це зробити. І я наводжу приклад реалізації цього оцінювача тут: Інтервал довіри для вибірки Бернуллі