การตีความโมเดลการถดถอยโลจิสติกด้วยตัวทำนายหลายตัว


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 นั่นจะหมายความว่าตัวแปรเหล่านี้ในแบบจำลองนี้ดีกว่าที่จะทำนายผลหรือไม่?
ออร์ต

คำตอบ:


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

ตามที่กล่าวไว้ข้างต้นโมเดลมีแนวโน้มที่จะเป็นแบบ overoptimistic ตอนนี้เราใช้ bootstrap เพื่อหาปริมาณ optimism:

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

เราสามารถคำนวณเส้นโค้งการปรับเทียบโดยใช้การสุ่มใหม่:

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

ขอบคุณมากสำหรับคำตอบของคุณมันช่วยฉันได้มากเช่นกัน! ฉันมีคำถามด่วนคุณหมายถึงอะไรเป็นระบบมากกว่าการประมาณประมาณ 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 ขอบคุณที่อัปเดตคำถามของคุณ อืมฉันไม่แน่ใจ พล็อตการสอบเทียบดูไม่ดีเกินไป ฉันจะรอความคิดเห็นเพิ่มเติม (จาก Frank Harrell หรือคนอื่น ๆ ) ฉันรู้สึกไม่มั่นใจพอที่จะให้คำแนะนำที่ชัดเจนขอโทษ
COOLSerdash

6

หมายเหตุเกี่ยวกับการตีความสัมประสิทธิ์: จำได้ว่าพวกเขาขึ้นอยู่กับวิธีการเขียนทำนายเป็นตัวเลข ดังนั้นสำหรับตัวแปรต่อเนื่องพวกเขาขึ้นอยู่กับหน่วยที่พวกเขาวัด สำหรับตัวทำนายหมวดหมู่รูปแบบการเข้ารหัส อย่าล่อลวงให้คิดว่า A9 คือ 'ไม่สำคัญ' เพียงเพราะสัมประสิทธิ์ของมันคือ 0.003453 มีค่าน้อย - A9 อาจมีช่วงคำสั่งหลายขนาดในประชากรบางกลุ่มที่น่าสนใจในขณะที่ตัวทำนายอื่น ๆ เปลี่ยนแปลงเพียงเล็กน้อยหรืออาจเป็น ง่ายต่อการตั้งค่าสูงหรือต่ำมากในขณะที่คนอื่นยากที่จะเปลี่ยนแปลงมาก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.