Интерпретация модели логистической регрессии с несколькими предикторами


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

Я бы посоветовал вам воспользоваться отличным пакетом Фрэнка Харрелла . Он содержит много полезных функций для проверки и калибровки вашей модели. Насколько я знаю, вы не можете оценить прогнозную эффективность исключительно на основе коэффициентов. Кроме того, я бы предложил вам использовать начальную загрузку для проверки модели. AUC или индекс соответствия (c-индекс) является полезным показателем прогнозирующей эффективности. С-индекс довольно высок, но, как и во многих прогностических моделях, подгонка вашей модели, вероятно, чрезмерно оптимистична (переоснащение). Этот избыточный оптимизм можно оценить с помощью начальной загрузки. Но позвольте мне привести пример: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 

Внизу вы видите обычные коэффициенты регрессии с соответствующими . Справа вверху вы видите несколько индексов дискриминации. Обозначает с-индекс (AUC) и С-индекс обозначает случайное расщепление в то время как с-индекс обозначает идеальное прогнозирования. является рангом корреляции Сомерса между предсказанными вероятностями и наблюдаемыми ответами. имеет простую связь с c-индексом: . из происходит , когда предсказание модели является случайным и когда , то модель прекрасно различения. В этом случае с-индексpC0.51DxyDxyDxyDxy=2(c0.5)Dxy0Dxy=10.693 что немного лучше, чем шанс, но с-индекс достаточно хорош для прогнозирования результатов отдельных лиц.>0.8

Как сказано выше, модель, вероятно, является чрезмерно оптимистичной. Теперь мы используем bootstrap для количественной оценки оптимизма:

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

Давайте сосредоточимся на который находится сверху. Первый столбец обозначает исходный индекс, который был . Столбец под названием обозначает количество оценочной завышенной модели. Столбец является исходной оценкой минус оптимизм. В этом случае поправкой на смещение немного меньше оригинала. C-индекс с поправкой на смещение (AUC) равен .Dxy0.3857optimismindex.correctedDxyc=1+Dxy2=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 и Ника.
Фрэнк Харрелл

Большое спасибо за ваш ответ, он мне тоже очень помог! У меня быстрый вопрос, что вы подразумеваете под систематической переоценкой около 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.