Ich verwende eine binomiale logistische Regression, um zu ermitteln, ob ein Benutzer mit der Wahrscheinlichkeit auf etwas klickt has_x
oder es has_y
beeinträchtigt. Mein Modell ist das folgende:
fit = glm(formula = has_clicked ~ has_x + has_y,
data=df,
family = binomial())
Dies ist die Ausgabe von meinem Modell:
Call:
glm(formula = has_clicked ~ has_x + has_y,
family = binomial(), data = active_domains)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.9869 -0.9719 -0.9500 1.3979 1.4233
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.504737 0.008847 -57.050 < 2e-16 ***
has_xTRUE -0.056986 0.010201 -5.586 2.32e-08 ***
has_yTRUE 0.038579 0.010202 3.781 0.000156 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 217119 on 164182 degrees of freedom
Residual deviance: 217074 on 164180 degrees of freedom
AIC: 217080
Number of Fisher Scoring iterations: 4
Da jeder Koeffizient signifikant ist, kann ich anhand dieses Modells anhand des folgenden Ansatzes feststellen, welchen Wert eine dieser Kombinationen hat:
predict(fit, data.frame(has_x = T, has_y=T), type = "response")
Ich verstehe nicht, wie ich über den Std. Berichten kann. Fehler der Vorhersage.
Muss ich einfach bedienen ? Oder muss ich den S E nach einem hier beschriebenen Ansatz konvertieren ?
Wenn ich den Standardfehler für beide Variablen verstehen möchte, wie würde ich das betrachten?
Im Gegensatz zu dieser Frage bin ich daran interessiert zu verstehen, wie hoch der Prozentsatz der oberen und unteren Fehlergrenze ist. Zum Beispiel zeigt meine Vorhersage einen Wert von 37% für True,True
kann ich berechnen, dass dies für 95 % C I ist ? (0,3% ausgewählt, um meinen Standpunkt zu veranschaulichen)
quelle
Antworten:
Ihre Frage kann von der Tatsache herrühren, dass Sie mit Odds Ratios und Wahrscheinlichkeiten zu tun haben, was zunächst verwirrend ist. Da das logistische Modell eine nichtlineare Transformation von Berechnung der Konfidenzintervalle nicht so einfach.βTx
Hintergrund
Erinnern Sie sich daran für das logistische Regressionsmodell
Wahrscheinlichkeit von : p = e α + β 1 × 1 + β 2 × 2(Y=1) p=eα+β1x1+β2x21+eα+β1x1+β2x2
Wahrscheinlichkeit von : ( p(Y=1) (p1−p)=eα+β1x1+β2x2
Log Quoten von : log ( p(Y=1) log(p1−p)=α+β1x1+β2x2
Stellen Sie sich den Fall vor, dass Sie die Variable um eine Einheit erhöhen , dh x 1 + 1 , dann sind die neuen Gewinnchancenx1 x1+1
Log Odds Ratio =β1
Relatives Risiko oder (Wahrscheinlichkeitsverhältnis) =eα+β1x1+β1+β2x21+eα+β1x1+β1+β2x2eα+β1x1+β2x21+eα+β1x1+β2x2
Koeffizienten interpretieren
Wie würden Sie den Koeffizientenwert interpretieren ? Angenommen, alles andere bleibt fest:βj
Konfidenzintervalle für einen einzelnen Parameterβj
Da der Parameter unter Verwendung der Maxiumum-Likelihood-Schätzung geschätzt wird, sagt uns die MLE-Theorie, dass er asymptotisch normal ist, und daher können wir das große Stichproben- Wald- Konfidenzintervall verwenden, um das Übliche zu erhaltenβj
Dies gibt ein Konfidenzintervall für das Log-Odds-Verhältnis. Unter Verwendung der Invarianz - Eigenschaft des MLE ermöglicht es uns , potenzieren zu bekommen
Das ist ein Konfidenzintervall für die Odds Ratio. Beachten Sie, dass diese Intervalle nur für einen einzelnen Parameter gelten.
Wenn Sie mehrere Parameter angeben, können Sie das Bonferroni-Verfahren verwenden, andernfalls können Sie für alle Parameter das Konfidenzintervall für Wahrscheinlichkeitsschätzungen verwenden
Bonferroni-Verfahren für mehrere Parameter
Konfidenzintervalle für Wahrscheinlichkeitsschätzungen
Ein Ansatz namens Endpunkttransformation führt Folgendes aus:
The estimated approximate variance ofxTβ can be calculated using the covariance matrix of the regression coefficients using
The advantage of this method is that the bounds cannot be outside the range(0,1)
There are several other approaches as well, using the delta method, bootstrapping etc.. which each have their own assumptions, advantages and limits.
Sources and info
My favorite book on this topic is "Applied Linear Statistical Models" by Kutner, Neter, Li, Chapter 14
Otherwise here are a few online sources:
quelle
To get the 95% confidence interval of the prediction you can calculate on the logit scale and then convert those back to the probability scale 0-1. Here is an example using the titanic dataset.
The mean and low/high 95% CI.
And the output from just using
type='response'
, which only gives the meanquelle
predict(fit, data.frame(Sex='male', Pclass='First'), type='response', se.fit=TRUE)
will work.