Interpretation eines logistischen Regressionsmodells mit mehreren Prädiktoren

12

Ich führte eine multivariate logistische Regression durch, wobei die abhängige Variable Yinnerhalb eines bestimmten Eintrittszeitraums der Tod in einem Pflegeheim war, und erhielt die folgenden Ergebnisse (beachten Sie, dass die Variablen, die darin beginnen A, ein kontinuierlicher Wert sind, während die Variablen, die in beginnen, Bkategorisch sind):

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

Wie Sie sehen können, sind alle Variablen insofern "signifikant", als ihre p-Werte unter dem üblichen Schwellenwert von 0,05 liegen. Wenn ich jedoch die Koeffizienten betrachte, bin ich mir nicht ganz sicher, was ich mit diesen Ergebnissen anfangen soll. Es scheint, dass diese Variablen, obwohl sie zum Modell beitragen, wenn man die Quotenverhältnisse betrachtet, nicht wirklich viel Vorhersagekraft zu haben scheinen. Bemerkenswert ist, dass ich bei der Berechnung der AUC ungefähr 0,8 erhalten habe.

Kann ich sagen, dass dieses Modell die Sterblichkeit besser vorhersagen kann (z. B. vorhersagen, dass Senioren über den vorgeschriebenen Zeitraum hinaus leben werden) als die Sterblichkeit vorherzusagen?

oort
quelle
4
Dies ist kein „multivariates“ Modell, da Sie nur ein Ergebnis / eine abhängige Variable haben. Das Anpassen eines Modells mit mehreren Prädiktoren wird als "multiple" Regression bezeichnet.
Gala
Ich freue mich sehr über die Kommentare und Antworten - ich werde auf jeden Fall einen Blick auf das Effektivwertpaket werfen. Meine Frage bleibt jedoch weiterhin bestehen - die meisten Quotenverhältnisse sind <1. Würde dies bedeuten, dass diese Variablen in diesem Modell besser in der Lage sind, das Ergebnis vorherzusagen?
oder

Antworten:

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

Wie oben erwähnt, ist das Modell wahrscheinlich überoptimistisch. Wir verwenden jetzt Bootstrap, um den Optimismus zu quantifizieren:

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

Wir können auch eine Kalibrierungskurve mithilfe von Resampling berechnen:

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

0.3

Predictive Modellbau ist ein großes Thema , und ich schlage vor , Frank Harrell Lesen natürlich Notizen .

COOLSerdash
quelle
5
Vielen Dank für die wunderbaren Beispiele und rmsAnleitungen für das Paket @COOLSerdash und Nick.
Frank Harrell
Vielen Dank für Ihre Antwort, es hat mir auch sehr geholfen! Ich habe eine kurze Frage, was meinst du mit systematischer Überschätzung um 0,3? Und können Sie sich bitte meine Grafik ansehen? s23.postimg.org/9cucdg6e3/calibration_curve.png Wie soll ich diese Ausgabe interpretieren
CanCeylan
2
@CanCeylan In meinem Diagramm gibt es eine kleine Kurve in der Linie um 0,3 (die Linie geht unter die ideale Linie). In Bezug auf Ihr Diagramm: Bitte fügen Sie Ihr Diagramm Ihrer ursprünglichen Frage hinzu, damit andere es auch sehen können. Es scheint, als würde Ihr Modell die Wahrscheinlichkeiten systematisch über den gesamten Raum unterschätzen.
COOLSerdash
@ COOLSerdash danke. Ich habe auch meine Frage aktualisiert. Aber wie soll ich von dort aus entscheiden, ob ich das Modell stornieren oder verwenden möchte? Da der c-Wert nicht schlecht ist (0,7755), sind der mittlere absolute Fehler (0,002) und der mittlere quadratische Fehler (5e-05) so klein, aber das Kalibrierungsdiagramm sieht schlecht aus. \
CanCeylan
@CanCeylan Vielen Dank für die Aktualisierung Ihrer Frage. Hm, ich bin mir nicht sicher. Das Kalibrierungsdiagramm sieht nicht gut aus. Ich würde auf weitere Meinungen warten (von Frank Harrell oder anderen). Ich bin nicht sicher genug, um eine endgültige Empfehlung abzugeben, sorry.
COOLSerdash
6

Ein Hinweis zur Interpretation von Koeffizienten: Denken Sie daran, dass sie davon abhängen, wie die Prädiktoren als Zahlen geschrieben sind. Für kontinuierliche Variablen hängen sie also von den Einheiten ab, in denen sie gemessen werden. für kategoriale Prädiktoren das Codierungsschema. Seien Sie nicht versucht zu glauben, dass A9 beispielsweise "unwichtig" ist, nur weil sein Koeffizient von 0,003453 klein ist - A9 kann in einigen interessierenden Populationen über mehrere Größenordnungen reichen, während die anderen Prädiktoren nur geringfügig variieren, oder es kann sein leicht auf sehr hohe oder niedrige Werte einzustellen, während die anderen schwer zu ändern sind.

Scortchi - Monica wieder einsetzen
quelle