R - การถดถอยโลจิสติก

Logistic Regression เป็นแบบจำลองการถดถอยที่ตัวแปรตอบสนอง (ตัวแปรตาม) มีค่าหมวดหมู่เช่น True / False หรือ 0/1 จริง ๆ แล้วมันวัดความน่าจะเป็นของการตอบสนองแบบไบนารีเป็นค่าของตัวแปรตอบสนองตามสมการทางคณิตศาสตร์ที่เกี่ยวข้องกับตัวแปรทำนาย

สมการทางคณิตศาสตร์ทั่วไปสำหรับการถดถอยโลจิสติกคือ -

y = 1/(1+e^-(a+b1x1+b2x2+b3x3+...))

ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -

  • y คือตัวแปรตอบสนอง

  • x คือตัวแปรทำนาย

  • a และ b คือค่าสัมประสิทธิ์ซึ่งเป็นค่าคงที่เป็นตัวเลข

ฟังก์ชันที่ใช้ในการสร้างแบบจำลองการถดถอยคือ glm() ฟังก์ชัน

ไวยากรณ์

ไวยากรณ์พื้นฐานสำหรับ glm() ฟังก์ชันในการถดถอยโลจิสติกคือ -

glm(formula,data,family)

ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -

  • formula คือสัญลักษณ์ที่แสดงความสัมพันธ์ระหว่างตัวแปร

  • data คือชุดข้อมูลที่ให้ค่าของตัวแปรเหล่านี้

  • familyเป็นวัตถุ R เพื่อระบุรายละเอียดของโมเดล ค่าเป็นทวินามสำหรับการถดถอยโลจิสติก

ตัวอย่าง

ชุดข้อมูลที่สร้างขึ้น "mtcars" อธิบายถึงรถยนต์รุ่นต่างๆพร้อมข้อมูลจำเพาะเครื่องยนต์ต่างๆ ในชุดข้อมูล "mtcars" โหมดเกียร์ (อัตโนมัติหรือแบบแมนนวล) จะอธิบายโดยคอลัมน์ am ซึ่งเป็นค่าไบนารี (0 หรือ 1) เราสามารถสร้างแบบจำลองการถดถอยโลจิสติกระหว่างคอลัมน์ "am" และคอลัมน์อื่น ๆ อีก 3 คอลัมน์ - hp, wt และ cyl

# Select some columns form mtcars.
input <- mtcars[,c("am","cyl","hp","wt")]

print(head(input))

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

am   cyl  hp    wt
Mazda RX4          1   6    110   2.620
Mazda RX4 Wag      1   6    110   2.875
Datsun 710         1   4     93   2.320
Hornet 4 Drive     0   6    110   3.215
Hornet Sportabout  0   8    175   3.440
Valiant            0   6    105   3.460

สร้างแบบจำลองการถดถอย

เราใช้ไฟล์ glm() ฟังก์ชันสร้างแบบจำลองการถดถอยและรับข้อมูลสรุปสำหรับการวิเคราะห์

input <- mtcars[,c("am","cyl","hp","wt")]

am.data = glm(formula = am ~ cyl + hp + wt, data = input, family = binomial)

print(summary(am.data))

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

Call:
glm(formula = am ~ cyl + hp + wt, family = binomial, data = input)

Deviance Residuals: 
     Min        1Q      Median        3Q       Max  
-2.17272     -0.14907  -0.01464     0.14116   1.27641  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept) 19.70288    8.11637   2.428   0.0152 *
cyl          0.48760    1.07162   0.455   0.6491  
hp           0.03259    0.01886   1.728   0.0840 .
wt          -9.14947    4.15332  -2.203   0.0276 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 43.2297  on 31  degrees of freedom
Residual deviance:  9.8415  on 28  degrees of freedom
AIC: 17.841

Number of Fisher Scoring iterations: 8

สรุป

โดยสรุปเนื่องจากค่า p ในคอลัมน์สุดท้ายมีค่ามากกว่า 0.05 สำหรับตัวแปร "cyl" และ "hp" เราถือว่าค่าเหล่านี้ไม่มีนัยสำคัญในการให้ค่าตัวแปร "am" เฉพาะน้ำหนัก (wt) เท่านั้นที่ส่งผลต่อค่า "am" ในแบบจำลองการถดถอยนี้