วิธีทดสอบ multicollinearity ใน r


ในการวิเคราะห์การถดถอย พหุคอลลิเนียร์ริตี้ เกิดขึ้นเมื่อตัวแปรทำนายตั้งแต่สองตัวขึ้นไปมีความสัมพันธ์กันอย่างมาก ส่งผลให้ตัวแปรเหล่านั้นไม่ได้ให้ข้อมูลเฉพาะหรือเป็นอิสระในแบบจำลองการถดถอย

หากระดับความสัมพันธ์ระหว่างตัวแปรทำนายสูงเพียงพอ สิ่งนี้อาจทำให้เกิดปัญหาเมื่อทำการปรับให้เหมาะสมและตีความแบบจำลองการถดถอย

วิธีที่ง่ายที่สุดในการตรวจจับพหุคอลลิเนียร์ในแบบจำลองการถดถอยคือการคำนวณหน่วยเมตริกที่เรียกว่าปัจจัยอัตราเงินเฟ้อแปรปรวน ซึ่งมักใช้ตัวย่อ VIF

VIF วัดความแข็งแกร่งของความสัมพันธ์ระหว่างตัวแปรทำนายในแบบจำลอง รับค่าระหว่าง 1 ถึงอนันต์บวก

เราใช้กฎง่ายๆ ต่อไปนี้ในการตีความค่า VIF:

  • VIF = 1: ไม่มีความสัมพันธ์ระหว่างตัวแปรทำนายที่กำหนดกับตัวแปรทำนายอื่นๆ ในแบบจำลอง
  • VIF ระหว่าง 1 ถึง 5: มีความสัมพันธ์ในระดับปานกลางระหว่างตัวแปรตัวทำนายที่กำหนดกับตัวแปรตัวทำนายอื่นๆ ในแบบจำลอง
  • VIF > 5 : มีความสัมพันธ์กันอย่างมากระหว่างตัวแปรทำนายที่กำหนดกับตัวแปรทำนายอื่นๆ ในแบบจำลอง

ตัวอย่างต่อไปนี้แสดงวิธีการตรวจหามัลติโคลิเนียร์ในโมเดลการถดถอยใน R โดยการคำนวณค่า VIF สำหรับตัวแปรทำนายแต่ละตัวในโมเดล

ตัวอย่าง: การทดสอบ multicollinearity ใน R

สมมติว่าเรามีกรอบข้อมูลต่อไปนี้ซึ่งมีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:

 #create data frame
df = data. frame (rating = c(90, 85, 82, 88, 94, 90, 76, 75, 87, 86),
                points=c(25, 20, 14, 16, 27, 20, 12, 15, 14, 19),
                assists=c(5, 7, 7, 8, 5, 7, 6, 9, 9, 5),
                rebounds=c(11, 8, 10, 6, 6, 9, 6, 10, 10, 7))

#view data frame
df

   rating points assists rebounds
1 90 25 5 11
2 85 20 7 8
3 82 14 7 10
4 88 16 8 6
5 94 27 5 6
6 90 20 7 9
7 76 12 6 6
8 75 15 9 10
9 87 14 9 10
10 86 19 5 7

สมมติว่าเราต้องการปรับ โมเดลการถดถอยเชิงเส้นหลายตัวให้พอดี โดยใช้ การให้คะแนน เป็นตัวแปรตอบสนอง และใช้ คะแนน ช่วยเหลือ และ รี บาวด์เป็นตัวแปรทำนาย

ในการคำนวณ VIF สำหรับตัวแปรทำนายแต่ละตัวในโมเดล เราสามารถใช้ฟังก์ชัน vive() จากแพ็คเกจ รถยนต์ :

 library (car)

#define multiple linear regression model
model <- lm(rating ~ points + assists + rebounds, data=df)

#calculate the VIF for each predictor variable in the model
lively(model)

  points assists rebounds 
1.763977 1.959104 1.175030 

เราสามารถดูค่า VIF ของตัวแปรทำนายแต่ละตัวได้:

  • คะแนน: 1.76
  • แอสซิสต์: 1.96
  • รีบาวน์: 1.18

เนื่องจากแต่ละค่า VIF ของตัวแปรทำนายในแบบจำลองมีค่าใกล้เคียงกับ 1 ความเป็นหลายเส้นตรงจึงไม่เป็นปัญหาในแบบจำลอง

หมายเหตุ : หากปัญหาในแบบจำลองของคุณกลายเป็นปัญหา multicollinearity วิธีแก้ปัญหาที่รวดเร็วที่สุดในกรณีส่วนใหญ่คือการลบตัวแปรที่มีความสัมพันธ์กันสูงอย่างน้อย 1 ตัวออก

นี่มักจะเป็นวิธีการแก้ปัญหาที่ยอมรับได้ เนื่องจากตัวแปรที่คุณลบออกนั้นซ้ำซ้อนอยู่แล้ว และเพิ่มข้อมูลที่ไม่ซ้ำใครหรือข้อมูลอิสระเพียงเล็กน้อยในโมเดล

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:

วิธีดำเนินการถดถอยเชิงเส้นพหุคูณใน R
วิธีสร้างพล็อต QQ ใน R
วิธีสร้างพล็อตที่เหลือใน R

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *