Interprétation d'un modèle de régression logistique avec plusieurs prédicteurs

12

J'ai effectué une régression logistique multivariée avec la variable dépendante Yétant le décès dans une maison de soins infirmiers dans une certaine période d'entrée et j'ai obtenu les résultats suivants (notez que si les variables commencent dans Ac'est une valeur continue tandis que celles qui commencent dans Bsont catégoriques):

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

Comme vous pouvez le voir, toutes les variables sont "significatives" en ce que leurs valeurs de p sont inférieures au seuil habituel de 0,05. Cependant, en regardant les coefficients, je ne sais pas trop quoi faire de ces résultats. Il semble que bien que ces variables contribuent au modèle, en examinant les rapports de cotes, elles ne semblent pas vraiment avoir beaucoup de pouvoir prédictif. Il est à noter que lorsque j'ai calculé l'ASC, j'ai obtenu environ 0,8.

Puis-je dire que ce modèle est meilleur pour prévoir la mortalité (p. Ex. Prédire que les personnes âgées vivront au-delà de la période prescrite) que pour prédire la mortalité?

oort
la source
4
Ce n'est pas un modèle «multivarié» car vous n'avez qu'une seule variable résultat / dépendante. L'ajustement d'un modèle avec plusieurs prédicteurs est appelé régression «multiple».
Gala
J'apprécie vraiment les commentaires et les réponses - je vais certainement jeter un coup d'œil au package rms. Cependant, ma question persiste - la plupart des rapports de cotes sont <1, cela impliquerait-il que ces variables de ce modèle sont mieux à même de prédire le résultat?
oort

Réponses:

18

0.8

#-----------------------------------------------------------------------------
# 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 

pC0.51DxyDxyDxyDxy=2(c0.5)Dxy0Dxy=10.693>0.8

Comme indiqué ci-dessus, le modèle est probablement trop optimiste. Nous utilisons maintenant le bootstrap pour quantifier l'optimisme:

#-----------------------------------------------------------------------------
# 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

Dxy0.3857optimismindex.correctedDxyc=1+Dxy2=0.6749

Nous pouvons également calculer une courbe d'étalonnage en utilisant le rééchantillonnage:

#-----------------------------------------------------------------------------
# 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

Étalonnage LogReg

0.3

La construction de modèles prédictifs est un grand sujet et je suggère de lire les notes de cours de Frank Harrell .

COOLSerdash
la source
5
Merci beaucoup pour les merveilleux exemples et le mode d'emploi du rmspackage @COOLSerdash et Nick.
Frank Harrell
Merci beaucoup pour votre réponse, cela m'a aussi beaucoup aidé! J'ai une question rapide, que voulez-vous dire par surestimation systématique autour de 0,3? Et pouvez-vous s'il vous plaît jeter un œil à mon graphique? s23.postimg.org/9cucdg6e3/calibration_curve.png Comment dois-je interpréter cette sortie
CanCeylan
2
@CanCeylan Dans mon graphique, il y a une petite courbe dans la ligne autour de 0,3 (la ligne passe en dessous de la ligne idéale). Concernant votre graphique: veuillez ajouter votre graphique à votre question d'origine afin que les autres puissent le voir également. Il semble que votre modèle sous-estime systématiquement les probabilités sur l'ensemble de l'espace.
COOLSerdash
@COOLSerdash merci. J'ai également mis à jour ma question. Mais à partir de là, comment dois-je décider d'annuler le modèle ou de l'utiliser? Parce que la valeur c n'est pas mauvaise (0,7755), l'erreur absolue moyenne (0,002) et l'erreur quadratique moyenne (5e-05) sont si petites, mais le graphique d'étalonnage semble mauvais. \
CanCeylan
@CanCeylan Merci d'avoir mis à jour votre question. Hm, je ne suis pas sûr. Le tracé d'étalonnage ne semble pas trop bon. J'attendrais plus d'opinions (de Frank Harrell ou d'autres). Je ne me sens pas suffisamment en confiance pour donner une recommandation définitive, désolé.
COOLSerdash
6

Remarque sur l'interprétation des coefficients: rappelez-vous qu'ils dépendent de la façon dont les prédicteurs sont écrits sous forme de nombres. Ainsi, pour les variables continues, elles dépendent des unités dans lesquelles elles sont mesurées; pour les prédicteurs catégoriques, le schéma de codage. Ne soyez pas tenté de penser que, disons, A9 est «sans importance» simplement parce que son coefficient de 0,003453 est petit - A9 peut varier sur plusieurs ordres de grandeur dans une population d'intérêt tandis que les autres prédicteurs ne varient que légèrement, ou il peut être facile à régler sur des valeurs très élevées ou faibles tandis que les autres sont difficiles à changer beaucoup.

Scortchi - Réintégrer Monica
la source