Interpretacja modelu regresji logistycznej z wieloma predyktorami

12

Przeprowadziłem wielowymiarową regresję logistyczną ze zmienną zależną Ybędącą śmiercią w domu opieki w pewnym okresie wejścia i otrzymałem następujące wyniki (zwróć uwagę, że zmienne zaczynają się w Anim, to ciągła wartość, podczas gdy te rozpoczynające się Bsą kategoryczne):

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

Jak widać, wszystkie zmienne są „znaczące”, ponieważ ich wartości p są poniżej zwykłego progu 0,05. Jednak patrząc na współczynniki, nie jestem całkiem pewien, co sądzić o tych wynikach. Wydaje się, że chociaż zmienne te przyczyniają się do modelu, patrząc na iloraz szans, nie wydają się mieć tak naprawdę dużej mocy predykcyjnej. Warto zauważyć, że kiedy obliczyłem AUC, otrzymałem około 0,8.

Czy mogę powiedzieć, że ten model lepiej przewiduje przewidywanie śmiertelności (np. Przewidywanie, że seniorzy przeżyją wyznaczony okres) niż przewidywanie śmiertelności?

oort
źródło
4
To nie jest model „wielowymiarowy”, ponieważ masz tylko jedną zmienną wynikową / zależną. Dopasowanie modelu z kilkoma predyktorami nazywa się regresją „wielokrotną”.
Gala,
Naprawdę doceniam komentarze i odpowiedzi - na pewno zajrzę do pakietu rms. Jednak moje pytanie wciąż trwa - większość ilorazów szans wynosi <1, czy to oznaczałoby, że te zmienne w tym modelu lepiej przewidują wynik?
oort

Odpowiedzi:

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,51Dxyrexyrexyrexy=2)(do-0,5)rexy0rexy=10,693>0,8

Jak wspomniano powyżej, model jest prawdopodobnie nadmiernie optymistyczny. Teraz używamy bootstrap do kwantyfikacji optymizmu:

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

rexy0,3857optimismindex.correctedrexydo=1+rexy2)=0,6749

Możemy również obliczyć krzywą kalibracji za pomocą ponownego próbkowania:

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

Kalibracja LogReg

0,3

Budowanie modeli predykcyjnych jest dużym tematem i sugeruję przeczytanie notatek Franka Harrella .

COOLSerdash
źródło
5
Bardzo dziękuję za wspaniałe przykłady i instrukcje dotyczące rmspakietu @COOLSerdash i Nicka.
Frank Harrell,
Dziękuję bardzo za odpowiedź, bardzo mi pomogła! Mam szybkie pytanie, co rozumiesz przez systematyczne przeszacowanie około 0,3? Czy możesz spojrzeć na mój wykres? s23.postimg.org/9cucdg6e3/calibration_curve.png Jak mam interpretować ten wynik
CanCeylan
2
@CanCeylan Na moim wykresie linia ma małą krzywą około 0,3 (linia idzie poniżej linii idealnej). Odnośnie wykresu: Dodaj wykres do oryginalnego pytania, aby inni też mogli go zobaczyć. Wygląda na to, że Twój model nie docenia prawdopodobieństw systematycznie w całej przestrzeni.
COOLSerdash
@COOLSerdash dzięki. Zaktualizowałem również moje pytanie. Ale stamtąd, jak mam zdecydować, czy anulować model, czy go użyć? Ponieważ wartość c nie jest zła (0,7755), średni błąd bezwzględny (0,002) i średni błąd kwadratu (5e-05) są tak małe, ale wykres kalibracji wygląda źle. \
CanCeylan,
@CanCeylan Dziękujemy za aktualizację pytania. Hm, nie jestem pewien. Wykres kalibracji nie wygląda zbyt dobrze. Czekałem na więcej opinii (od Franka Harrella lub innych). Przepraszam, nie czuję się na tyle pewny siebie, by dać ostateczne zalecenie.
COOLSerdash
6

Uwaga na temat interpretacji współczynników: pamiętaj, że zależą one od tego, jak predyktory są zapisywane jako liczby. Zatem dla zmiennych ciągłych zależą one od jednostek, w których są mierzone; w przypadku predyktorów jakościowych schemat kodowania. Nie ulegaj pokusie, aby pomyśleć, że powiedzmy, że A9 jest „nieistotne” tylko dlatego, że jego współczynnik 0,003453 jest niewielki - A9 może wahać się w kilku rzędach wielkości w danej populacji, podczas gdy inne predyktory różnią się tylko nieznacznie, lub może być łatwe do ustawienia na bardzo wysokie lub niskie wartości, podczas gdy inne są trudne do zmiany.

Scortchi - Przywróć Monikę
źródło