warning
∞
Mit Daten, die nach dem Vorbild von erzeugt wurden
x <- seq(-3, 3, by=0.1)
y <- x > 0
summary(glm(y ~ x, family=binomial))
Die Warnung wird gemacht:
Warning messages:
1: glm.fit: algorithm did not converge
2: glm.fit: fitted probabilities numerically 0 or 1 occurred
was ganz offensichtlich die Abhängigkeit widerspiegelt, die in diese Daten eingebaut ist.
In R ist der Wald-Test mit summary.glm
oder mit waldtest
im lmtest
Paket enthalten. Der Likelihood-Ratio-Test wird mit anova
oder mit lrtest
in der lmtest
Packung durchgeführt. In beiden Fällen ist die Informationsmatrix unendlich und es ist kein Rückschluss möglich. Vielmehr R nicht produziert Ausgang, aber man kann ihm nicht vertrauen. Die Inferenz, die R in diesen Fällen typischerweise erzeugt, hat p-Werte, die sehr nahe bei eins liegen. Dies liegt daran, dass der Präzisionsverlust im OP um Größenordnungen kleiner ist als der Präzisionsverlust in der Varianz-Kovarianz-Matrix.
Einige der hier beschriebenen Lösungen:
Verwenden Sie einen Ein-Schritt-Schätzer,
Es gibt viele Theorien, die die geringe Verzerrung, Effizienz und Generalisierbarkeit von Einschrittschätzern unterstützen. Es ist einfach, einen Ein-Schritt-Schätzer in R anzugeben, und die Ergebnisse sind in der Regel sehr günstig für Vorhersage und Inferenz. Und dieses Modell wird niemals auseinander gehen, weil der Iterator (Newton-Raphson) einfach keine Chance dazu hat!
fit.1s <- glm(y ~ x, family=binomial, control=glm.control(maxit=1))
summary(fit.1s)
Gibt:
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
Sie können also sehen, dass die Vorhersagen die Richtung des Trends widerspiegeln. Und die Schlussfolgerung lässt stark auf die Trends schließen, die wir für wahr halten.
einen Punktetest durchführen,
Die Score-Statistik (oder Rao-Statistik) unterscheidet sich von der Likelihood-Ratio-Statistik und der Wald-Statistik. Es ist keine Bewertung der Varianz unter der Alternativhypothese erforderlich. Wir passen das Modell unter die Null an:
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
In beiden Fällen haben Sie die Schlussfolgerung für ein OR von unendlich.
und verwenden Sie mediane unvoreingenommene Schätzungen für ein Konfidenzintervall.
Sie können einen medianen unverzerrten, nicht singulären 95% -KI für das unendliche Quotenverhältnis mithilfe der medianen unverzerrten Schätzung erstellen. Das Paket epitools
in R kann dies tun. Und ich gebe hier ein Beispiel für die Implementierung dieses Schätzers: Konfidenzintervall für Bernoulli-Stichproben