Calcolo degli intervalli di confidenza per una regressione logistica


15

Sto usando una regressione logistica binomiale per identificare se l'esposizione has_xo has_yinfluisce sulla probabilità che un utente faccia clic su qualcosa. Il mio modello è il seguente:

fit = glm(formula = has_clicked ~ has_x + has_y, 
          data=df, 
          family = binomial())

Questo l'output dal mio modello:

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

Poiché ogni coefficiente è significativo, usando questo modello sono in grado di dire quale sia il valore di una di queste combinazioni usando il seguente approccio:

predict(fit, data.frame(has_x = T, has_y=T), type = "response")

Non capisco come posso riferire sullo Std. Errore della previsione.

  1. Devo solo usare 1.96*SE ? O devo convertire l' SE usando un approccio descritto qui ?

  2. Se volessi capire l'errore standard per entrambe le variabili come lo considererei?

A differenza di questa domanda , sono interessato a capire quali sono i limiti superiore e inferiore dell'errore in percentuale. Ad esempio, della mia previsione mostra un valore del 37% per True,Trueposso calcolare che questo è per un 95 % C I ? (0,3% scelto per illustrare il mio punto)+/-0.395%Cio




@kjetilbhalvorsen sei sicuro che sia un duplicato poiché l'OP sembra voler un intervallo di previsione ma sembra funzionare sulla scala OR piuttosto che sulla scala del log che potrebbe essere la radice del problema?
mdewey,

2
Se si desidera valutare la capacità di una regressione logistica, di solito si utilizzano misure diverse rispetto alla previsione + SE. Una misura di valutazione popolare è la ROC-Curve con relativa AUC
adibender

Risposte:


24

La tua domanda potrebbe venire dal fatto che hai a che fare con Rapporti di probabilità e probabilità che inizialmente confonde. Poiché il modello logistico è una trasformazione non lineare del calcolo gli intervalli di confidenza non sono così semplici.βTx

sfondo

Ricordalo per il modello di regressione logistica

  • Probabilità di : p = e α + β 1 x 1 + β 2 x 2(Y=1)p=eα+β1X1+β2X21+eα+β1X1+β2X2

  • Probabilità di : ( p(Y=1)(p1p)=eα+β1x1+β2x2

  • Log Probabilità di : log ( p(Y=1)log(p1p)=α+β1x1+β2x2

Considera il caso in cui hai un aumento di una unità nella variabile , ovvero x 1 + 1 , quindi le nuove probabilità sonox1x1+1

Odds(Y=1)=eα+β1(x1+1)+β2x2=eα+β1x1+β1+β2x2
  • Odds Ratio (OR) sono quindi

Odds(x1+1)Odds(x1)=eα+β1(x1+1)+β2x2eα+β1x1+β2x2=eβ1
  • Log Odds Ratio = β1

  • Rischio relativo o (rapporto di probabilità) = eα+β1X1+β1+β2X21+eα+β1X1+β1+β2X2eα+β1X1+β2X21+eα+β1X1+β2X2

Interpretazione dei coefficienti

Come interpreteresti il ​​valore del coefficiente ? Supponendo che tutto il resto rimanga fisso:βj

  • Per ogni aumento di unità in il rapporto log-odds aumenta di β j .Xjβj
  • Per ogni aumento di unità in il rapporto di probabilità aumenta di e β j .Xjeβj
  • Per ogni aumento di da k a k + Δ il rapporto di probabilità aumenta di e β j ΔXjkk+ΔeβjΔ
  • Se il coefficiente è negativo, un aumento di porta a una riduzione del rapporto di probabilità.xj

Intervalli di confidenza per un singolo parametro βj

Devo solo usare ? O devo convertire la SE usando un approccio descritto qui?1.96SE

Poiché il parametro è stimato utilizzando la stima della probabilità massima, la teoria MLE ci dice che è asintoticamente normale e quindi possiamo usare il grande intervallo di confidenza di Wald per ottenere il solitoβj

βj±zSE(βj)

Ciò fornisce un intervallo di confidenza sul rapporto probabilità-log. L'uso della proprietà di invarianza dell'MLE ci consente di esponenziare per ottenere

eβj±zSE(βj)

che è un intervallo di confidenza sul rapporto di probabilità. Si noti che questi intervalli sono solo per un singolo parametro.

Se volessi capire l'errore standard per entrambe le variabili come lo considererei?

Se si includono più parametri è possibile utilizzare la procedura Bonferroni, altrimenti per tutti i parametri è possibile utilizzare l'intervallo di confidenza per le stime di probabilità

Procedura Bonferroni per diversi parametri

Se i parametri devono essere stimati con un coefficiente di confidenza familiare di circa 1 - α , i limiti di confidenza di Bonferroni congiunti sonog1α

βg±z(1α2g)SE(βg)

Intervalli di confidenza per le stime di probabilità

pPr(pLppU)=.95

Un approccio chiamato trasformazione dell'endpoint procede come segue:

  • xTβ
  • F(xTβ)

Pr(xTβ)=F(xTβ)xTβ

[Pr(xTβ)LPr(xTβ)Pr(xTβ)U]=[F(xTβ)LF(xTβ)F(xTβ)U]

Concretely this means computing βTx±zSE(βTx) and then applying the logit transform to the result to get the lower and upper bounds:

[exTβzSE(xTβ)1+exTβzSE(xTβ),exTβ+zSE(xTβ)1+exTβ+zSE(xTβ),]

The estimated approximate variance of xTβ can be calculated using the covariance matrix of the regression coefficients using

Var(xTβ)=xTΣx

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:


Much of this is about CI for the coefficients which is a fine thing for the OP to know about but are we sure that is what he needs? You later section seems to me more relevant but perhaps the distinctions may be missed if read too quickly?
mdewey

2
Yes you are probably right - but understanding odds, log odds and probabilities for log regression is something I struggled with in the past - I hope this post summarises the topic well enough to such that it might help someone in the future. Perhaps I could answer the question more explicitly by providing a CI but we would need the covariance matrix
Xavier Bourret Sicotte

5

Per ottenere l'intervallo di confidenza del 95% della previsione, è possibile calcolare sulla scala di logit e quindi riconvertirli nella scala di probabilità 0-1. Ecco un esempio usando il set di dati titanico.

library(titanic)
data("titanic_train")

titanic_train$Pclass = factor(titanic_train$Pclass, levels = c(1,2,3), labels = c('First','Second','Third'))

fit = glm(Survived ~ Sex + Pclass, data=titanic_train, family = binomial())

inverse_logit = function(x){
  exp(x)/(1+exp(x))
}

predicted = predict(fit, data.frame(Sex='male', Pclass='First'), type='link', se.fit=TRUE)

se_high = inverse_logit(predicted$fit + (predicted$se.fit*1.96))
se_low = inverse_logit(predicted$fit - (predicted$se.fit*1.96))
expected = inverse_logit(predicted$fit)

IC medio e basso / alto al 95%.

> expected
        1 
0.4146556 
> se_high
        1 
0.4960988 
> se_low
        1 
0.3376243 

E l'output del solo utilizzo type='response', che dà solo la media

predict(fit, data.frame(Sex='male', Pclass='First'), type='response')
        1 
0.4146556

predict(fit, data.frame(Sex='male', Pclass='First'), type='response', se.fit=TRUE)funzionerà.
Tony416,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.