13 votos

Interpretación de un modelo de regresión logística con predictores múltiples

He realizado multivariante de regresión logística con la variable dependiente Y siendo la muerte en un hogar de ancianos dentro de un cierto período de entrada y obtuvo los siguientes resultados (nota si las variables se inicia en A es un valor continuo, mientras que aquellos que se están iniciando en B son categóricos):

Call:
glm(Y ~ A1 + B2 + B3 + B4 + B5 + A6 + A7 + A8 + A9, data=mydata, family=binomial)
Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.0728  -0.2167  -0.1588  -0.1193   3.7788  

Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept)  20.048631  6.036637   3.321 0.000896 ***
A1           0.051167   0.016942   3.020 0.002527 ** 
B2          -0.664940   0.304299  -2.185 0.028878 *  
B3          -2.825281   0.633072  -4.463 8.09e-06 ***
B4          -2.547931   0.957784  -2.660 0.007809 ** 
B5          -2.862460   1.385118  -2.067 0.038774 *  
A6          -0.129808   0.041286  -3.144 0.001666 ** 
A7           0.020016   0.009456   2.117 0.034276 *  
A8          -0.707924   0.253396  -2.794 0.005210 ** 
A9           0.003453   0.001549   2.229 0.025837 *  
---
Signif. codes:  0 ‘***' 0.001 ‘**' 0.01 ‘*' 0.05 ‘.' 0.1 ‘ ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 485.10  on 2206  degrees of freedom
Residual deviance: 417.28  on 2197  degrees of freedom
AIC: 437.28

Number of Fisher Scoring iterations: 7

 (Intercept)           A1           B2           B3           B4           B5           A6           A7           A8           A9 
5.093426e+08 1.052499e+00 5.143045e-01 5.929197e-02 7.824340e-02 5.712806e-02 8.782641e-01 1.020218e+00 4.926657e-01 1.003459e+00 

                   2.5 %       97.5 %
(Intercept) 3.703525e+03 7.004944e+13
A1          1.018123e+00 1.088035e+00
B2          2.832698e-01 9.337710e-01
B3          1.714448e-02 2.050537e-01
B4          1.197238e-02 5.113460e-01
B5          3.782990e-03 8.627079e-01
A6          8.099945e-01 9.522876e-01
A7          1.001484e+00 1.039302e+00
A8          2.998207e-01 8.095488e-01
A9          1.000416e+00 1.006510e+00

Como usted puede ver, todas las variables son "significativos" en los que sus valores p son inferiores a los habituales del umbral de 0,05. Sin embargo, mirando los coeficientes, no estoy muy seguro de qué hacer con estos resultados. Parece que aunque estas variables contribuyen a la modelo, mirando a los cocientes de probabilidad, que no parecen realmente parecen tener mucho poder predictivo. De la nota, cuando he calculado las AUC, tengo aproximadamente de 0.8.

Puedo decir que este modelo es mejor a la hora de predecir contra la mortalidad (por ejemplo, la predicción de que los ancianos viven pasado el periodo establecido) en comparación con la predicción de la mortalidad?

23voto

mehturt Puntos 13

Me gustaría sugerir que el uso de Frank Harrell excelente rms paquete. Contiene muchas funciones útiles para validar y calibrar el modelo. Hasta donde yo sé, usted no puede evaluar el rendimiento predictivo basado únicamente en los coeficientes. Además, me gustaría sugerir que el uso de bootstrap para validar el modelo. Las AUC o concordancia (índice c-index) es una medida útil de predicción de rendimiento. Un c-índice de $0.8$ es bastante alto, pero como en muchos de los modelos predictivos, el ajuste del modelo es probable optimista (sobreajuste). Este overoptimism pueden ser evaluados mediante bootstrap. Pero permítanme darles un ejemplo:

#-----------------------------------------------------------------------------
# Load packages
#-----------------------------------------------------------------------------

library(rms)

#-----------------------------------------------------------------------------
# Load data
#-----------------------------------------------------------------------------

mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")

mydata$rank <- factor(mydata$rank)

#-----------------------------------------------------------------------------
# Fit logistic regression model
#-----------------------------------------------------------------------------

mylogit <- lrm(admit ~ gre + gpa + rank, x=TRUE, y=TRUE, data = mydata)
mylogit

                      Model Likelihood     Discrimination    Rank Discrim.    
                         Ratio Test            Indexes          Indexes       
Obs           400    LR chi2      41.46    R2       0.138    C       0.693    
 0            273    d.f.             5    g        0.838    Dxy     0.386    
 1            127    Pr(> chi2) <0.0001    gr       2.311    gamma   0.387    
max |deriv| 2e-06                          gp       0.167    tau-a   0.168    
                                           Brier    0.195                     

          Coef    S.E.   Wald Z Pr(>|Z|)
Intercept -3.9900 1.1400 -3.50  0.0005  
gre        0.0023 0.0011  2.07  0.0385  
gpa        0.8040 0.3318  2.42  0.0154  
rank=2    -0.6754 0.3165 -2.13  0.0328  
rank=3    -1.3402 0.3453 -3.88  0.0001  
rank=4    -1.5515 0.4178 -3.71  0.0002 

En la parte de abajo para que vea la habitual de los coeficientes de regresión con el correspondiente $p$-valores. En la parte superior derecha, se puede ver a varios índices de discriminación. El C indica el c-index (AUC), y un c-índice de $0.5$ denota al azar división, mientras que un c-índice de $1$ denota predicción perfecta. Dxy es Somers' $D_{xy}$ rango de correlación entre la predicción de probabilidades y de las respuestas observadas. $D_{xy}$ tiene relación simple con el c-index: $D_{xy}=2(c-0.5)$. Un $D_{xy}$ $0$ se produce cuando las predicciones del modelo son al azar y al $D_{xy}=1$, el modelo es perfectamente discriminar. En este caso, el c-index es$0.693$, que es ligeramente mejor que el azar, pero un c-índice de $>0.8$ es suficiente para predecir los resultados de los individuos.

Como se dijo anteriormente, el modelo es probable optimista. Podemos ahora utilizar bootstrap para cuantificar el optimismo:

#-----------------------------------------------------------------------------
# Validate model using bootstrap
#-----------------------------------------------------------------------------

my.valid <- validate(mylogit, method="boot", B=1000)
my.valid

          index.orig training    test optimism index.corrected    n
Dxy           0.3857   0.4033  0.3674   0.0358          0.3498 1000
R2            0.1380   0.1554  0.1264   0.0290          0.1090 1000
Intercept     0.0000   0.0000 -0.0629   0.0629         -0.0629 1000
Slope         1.0000   1.0000  0.9034   0.0966          0.9034 1000
Emax          0.0000   0.0000  0.0334   0.0334          0.0334 1000
D             0.1011   0.1154  0.0920   0.0234          0.0778 1000
U            -0.0050  -0.0050  0.0015  -0.0065          0.0015 1000
Q             0.1061   0.1204  0.0905   0.0299          0.0762 1000
B             0.1947   0.1915  0.1977  -0.0062          0.2009 1000
g             0.8378   0.9011  0.7963   0.1048          0.7331 1000
gp            0.1673   0.1757  0.1596   0.0161          0.1511 1000

Vamos a concentrarnos en el$D_{xy}$, que está en la parte superior. La primera columna indica el índice original, que fue $0.3857$. La columna optimism indica la cantidad de la estimación de la sobreestimación por el modelo. La columna index.corrected es la estimación original menos el optimismo. En este caso, la corrección de sesgo $D_{xy}$ es un poco más pequeño que el original. La corrección de sesgo c-index (AUC) es $c=\frac{1+ D_{xy}}{2}=0.6749$.

También podemos calcular una curva de calibración utilizando el remuestreo:

#-----------------------------------------------------------------------------
# Calibration curve using bootstrap
#-----------------------------------------------------------------------------

my.calib <- calibrate(mylogit, method="boot", B=1000)

par(bg="white", las=1)
plot(my.calib, las=1)

n=400   Mean absolute error=0.016   Mean squared error=0.00034
0.9 Quantile of absolute error=0.025

LogReg Calibration

La trama proporciona alguna evidencia de que nuestros modelos es el sobreajuste: el modelo subestima la baja probabilidad y sobrestima altas probabilidades. También hay una sobreestimación sistemática en torno a $0.3$.

Modelo predictivo del edificio es un gran tema, y sugiero la lectura de Frank Harrell las notas del curso.

6voto

jasonmray Puntos 1303

Una nota sobre la interpretación de los coeficientes: ¿recuerdan que dependen de cómo los predictores se escriben como números. Así que para las variables continuas que dependen de las unidades en que se mide; para los predictores categóricos, el esquema de codificación. No tener la tentación de pensar que, por ejemplo, A9 es 'sin importancia' sólo porque su coeficiente de 0.003453 es pequeño—A9 podría variar en varios órdenes de magnitud en una población de interés, mientras que el resto de los predictores que varían poco, o puede ser fácil de instalar y muy alta o valores bajos, mientras que los otros son difíciles de cambiar mucho.

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