45 votos

Cálculo de los intervalos de confianza de una regresión logística

Estoy utilizando una regresión logística binomial para identificar si la exposición a has_x o has_y influye en la probabilidad de que un usuario haga clic en algo. Mi modelo es el siguiente:

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

Este es el resultado de mi modelo:

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

Como cada coeficiente es significativo, utilizando este modelo soy capaz de decir cuál es el valor de cualquiera de estas combinaciones utilizando el siguiente enfoque:

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

No entiendo cómo puedo informar sobre el error estándar de la predicción.

  1. ¿Sólo tengo que usar $1.96*SE$ ? ¿O tengo que convertir el $SE$ utilizando un enfoque descrito ici ?

  2. Si quiero entender el error estándar para ambas variables ¿cómo lo considero?

A diferencia de esto pregunta Me interesa saber cuáles son los límites superior e inferior del error en un porcentaje. Por ejemplo, si mi predicción muestra un valor del 37% para True,True puedo calcular que esto es $+/- 0.3%$ para un $95\% CI$ ? (0,3% elegido para ilustrar mi punto)

76voto

Matryoshka Puntos 53

Tu pregunta puede venir del hecho de que estás tratando con Odds Ratios y Probabilidades, lo cual es confuso al principio. Dado que el modelo logístico es una transformación no lineal de $\beta^Tx$ El cálculo de los intervalos de confianza no es tan sencillo.

Antecedentes

Recordemos que para el modelo de regresión logística

  • Probabilidad de $(Y = 1)$ : $p = \frac{e^{\alpha + \beta_1x_1 + \beta_2 x_2}}{1 + e^{ \alpha + \beta_1x_1 + \beta_2 x_2}}$

  • Probabilidades de $(Y = 1)$ : $ \left( \frac{p}{1-p}\right) = e^{\alpha + \beta_1x_1 + \beta_2 x_2}$

  • Probabilidades de registro de $(Y = 1)$ : $ \log \left( \frac{p}{1-p}\right) = \alpha + \beta_1x_1 + \beta_2 x_2$

Consideremos el caso de un aumento de una unidad en la variable $x_1$ es decir $x_1 + 1$ entonces las nuevas probabilidades son

$$ \text{Odds}(Y = 1) = e^{\alpha + \beta_1(x_1 + 1) + \beta_2x_2} = e^{\alpha + \beta_1 x_1 + \beta_1 + \beta_2x_2 } $$

  • Odds Ratio (OR) son por lo tanto

$$ \frac{\text{Odds}(x_1 + 1)}{\text{Odds}(x_1)} = \frac{e^{\alpha + \beta_1(x_1 + 1) + \beta_2x_2} }{e^{\alpha + \beta_1 x_1 + \beta_2x_2}} = e^{\beta_1} $$

  • Log Odds Ratio \= $\beta_1$

  • Riesgo relativo o (relación de probabilidad) = $\frac{ \frac{e^{\alpha + \beta_1x_1 + \beta_1 + \beta_2 x_2}}{1 + e^{ \alpha + \beta_1x_1 + \beta_1 + \beta_2 x_2}}}{ \frac{e^{\alpha + \beta_1x_1 + \beta_2 x_2}}{1 + e^{ \alpha + \beta_1x_1 + \beta_2 x_2}}}$

Interpretación de los coeficientes

¿Cómo interpretarías el valor del coeficiente $\beta_j$ ? Suponiendo que todo lo demás se mantenga fijo:

  • Por cada unidad de aumento de $x_j$ la relación logarítmica de las probabilidades aumenta en $\beta_j$ .
  • Por cada unidad de aumento de $x_j$ la proporción de probabilidades aumenta en $e^{\beta_j}$ .
  • Por cada aumento de $x_j$ de $k$ a $k + \Delta$ la proporción de probabilidades aumenta en $e^{\beta_j \Delta}$
  • Si el coeficiente es negativo, entonces un aumento de $x_j$ conduce a una disminución de la razón de momios.

Intervalos de confianza para un solo parámetro $\beta_j$

¿Sólo tengo que usar $1.96∗SE$ ? ¿O tengo que convertir el SE utilizando un enfoque descrito aquí?

Dado que el parámetro $\beta_j$ se estima utilizando la Estimación de Máxima Verosimilitud, la teoría MLE nos dice que es asintóticamente normal y por lo tanto podemos utilizar la muestra grande Wald intervalo de confianza para obtener el

$$ \beta_j \pm z^* SE(\beta_j)$$

Lo que da un intervalo de confianza en la relación logarítmica. El uso de la propiedad de invarianza de la MLE nos permite exponer para obtener $$ e^{\beta_j \pm z^* SE(\beta_j)}$$

que es un intervalo de confianza sobre la razón de momios. Tenga en cuenta que estos intervalos son para un solo parámetro.

Si quiero entender el error estándar para ambas variables, ¿cómo lo consideraría?

Si incluye varios parámetros puede utilizar el procedimiento de Bonferroni, de lo contrario para todos los parámetros puede utilizar el intervalo de confianza para las estimaciones de probabilidad

Procedimiento de Bonferroni para varios parámetros

Si $g$ Los parámetros deben ser estimados con un coeficiente de confianza familiar de aproximadamente $1 - \alpha$ los límites de confianza conjuntos de Bonferroni son

$$ \beta_g \pm z_{(1 - \frac{\alpha}{2g})}SE(\beta_g)$$

Intervalos de confianza para las estimaciones de probabilidad

El modelo logístico arroja una estimación de la probabilidad de observar un uno y nuestro objetivo es construir un intervalo frecuentista alrededor de la verdadera probabilidad $p$ tal que $Pr(p_{L} \leq p \leq p_{U}) = .95$

Un enfoque llamado transformación del punto final hace lo siguiente:

  • Calcule los límites superior e inferior del intervalo de confianza para la combinación lineal $x^T\beta$ (utilizando el IC de Wald)
  • Aplicar una transformación monótona a los puntos finales $F(x^T\beta)$ para obtener las probabilidades.

Desde $Pr(x^T\beta) = F(x^T\beta)$ es una transformación monótona de $x^T\beta$

$$ [Pr(x^T\beta)_L \leq Pr(x^T\beta) \leq Pr(x^T\beta)_U] = [F(x^T\beta)_L \leq F(x^T\beta) \leq F(x^T\beta)_U] $$

En concreto, esto significa calcular $\beta^Tx \pm z^* SE(\beta^Tx)$ y luego aplicar la transformada logit al resultado para obtener los límites inferior y superior:

$$[\frac{e^{x^T\beta - z^* SE(x^T\beta)}}{1 + e^{x^T\beta - z^* SE(x^T\beta)}}, \frac{e^{x^T\beta + z^* SE(x^T\beta)}}{1 + e^{x^T\beta + z^* SE(x^T\beta)}},] $$

La varianza aproximada estimada de $x^T\beta$ puede calcularse utilizando la matriz de covarianza de los coeficientes de regresión mediante

$$ Var(x^T\beta) = x^T \Sigma x$$

La ventaja de este método es que los límites no pueden estar fuera del rango $(0,1)$

También existen otros enfoques, como el método delta, el bootstrapping, etc., cada uno de los cuales tiene sus propios supuestos, ventajas y límites.


Fuentes e información

Mi libro favorito sobre este tema es "Modelos estadísticos lineales aplicados" por Kutner, Neter, Li, Capítulo 14

Si no, aquí hay algunas fuentes en línea:

Edit October 2021 - Nuevos enlaces

6voto

Ash Puntos 11

Para obtener el intervalo de confianza del 95% de la predicción se puede calcular en la escala logit y luego convertirlos de nuevo a la escala de probabilidad 0-1. Este es un ejemplo que utiliza el conjunto de datos titanic.

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)

La media y el IC del 95% bajo/alto.

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

Y la salida de sólo usar type='response' que sólo da la media

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

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X