Інтерпретація логістичної регресійної моделі з декількома предикторами


12

Я здійснив багатоваріантну логістичну регресію, залежною від якої є зміна Y- смерть у будинку престарілих протягом певного періоду вступу, і я отримав такі результати (зауважте, якщо змінні починаються в Aній є безперервним значенням, а ті, що починаються з B, категоричні):

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

Як бачимо, всі змінні є "значущими" тим, що їхні значення p знаходяться нижче звичайного порогу 0,05. Однак, дивлячись на коефіцієнти, я не зовсім впевнений, що можна зробити з цих результатів. Схоже, що хоча ці змінні сприяють розвитку моделі, дивлячись на коефіцієнт шансів, вони, здається, насправді не мають великої прогнозованої сили. Зверніть увагу, коли я підрахував AUC, я отримав приблизно 0,8.

Чи можна сказати, що ця модель краще прогнозувати проти смертності (наприклад, прогнозувати, що люди похилого віку проживуть встановлений період) порівняно з прогнозуванням смертності?


4
Це не "багатоваріантна" модель, оскільки у вас є лише одна змінна результат / залежність. Встановлення моделі з декількома прогнозами називається "багаторазовою" регресією.
Гала

Я дуже вдячний за коментарі та відповіді - я обов'язково заглянув на пакет rms. Однак моє питання все ще затримується - більшість коефіцієнтів шансів <1, чи це означає, що ці змінні в цій моделі краще прогнозувати проти результату?
oort

Відповіді:


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,51DxyDхуDхуDху=2(c-0,5)Dху0Dху=10,693>0,8

Як було сказано вище, модель, ймовірно, надто оптимістична. Зараз ми використовуємо завантажувальний інструмент для кількісної оцінки оптимізму:

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

Dху0,3857optimismindex.correctedDхуc=1+Dху2=0,6749

Ми також можемо розрахувати калібрувальну криву, використовуючи перекомпонування:

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

0,3

Прогнозована побудова моделі - велика тема, і я пропоную прочитати курсові конспекти Франка Харрелла .


5
Велике спасибі за чудові приклади та рекомендації для rmsпакета @COOLSerdash та Nick.
Френк Харрелл

Дуже дякую за вашу відповідь, це також мені дуже допомогло! У мене швидке запитання, що ви маєте на увазі під систематичним оцінкою приблизно 0,3? А ви можете, будь ласка, подивитись на мій графік? s23.postimg.org/9cucdg6e3/calibration_curve.png Як мені інтерпретувати цей вихід
CanCeylan

2
@CanCeylan У моєму графіку є невелика крива в лінії близько 0,3 (лінія іде нижче ідеальної лінії). Щодо вашого графіка. Будь ласка, додайте його до початкового запитання, щоб і інші могли його бачити. Здається, що ваша модель систематично недооцінює ймовірності в усьому просторі.
COOLSerdash

@COOLSerdash спасибі Я також оновив своє запитання. Але звідки я повинен вирішити, чи скасовувати модель чи використовувати її? Оскільки значення c не є поганим (0,7755), середня абсолютна помилка (0,002) та середня помилка у квадраті (5e-05) настільки мала, але графік калібрування виглядає як поганий. \
CanCeylan

@CanCeylan Дякуємо за оновлення свого питання. Гм, я не впевнений. Графік калібрування виглядає не надто добре. Я б зачекав на більшу думку (від Френка Гаррелла та інших). Я не відчуваю достатньо впевненості, щоб дати остаточну рекомендацію, вибачте.
COOLSerdash

6

Примітка про інтерпретацію коефіцієнтів: пригадайте, чи вони залежать від того, як записуються предиктори як числа. Отже, для безперервних змінних вони залежать від одиниць, в яких вони вимірюються; для категоричних предикторів схема кодування. Не спокушайтесь думати, що, скажімо, A9 є "неважливим" лише тому, що його коефіцієнт 0,003453 невеликий - A9 може змінюватись на кілька порядків у певної сукупності, що представляє інтерес, в той час як інші прогноктори змінюються лише незначно, або це може бути легко встановити на дуже високі або низькі значення, тоді як інші важко змінити.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.