วิธีการคำนวณ variance inflation factor (vif) ใน sas
ในการวิเคราะห์การถดถอย พหุคอลลิเนียร์ริตี้ เกิดขึ้นเมื่อตัวแปรทำนายตั้งแต่สองตัวขึ้นไปมีความสัมพันธ์กันอย่างมาก ส่งผลให้ตัวแปรเหล่านั้นไม่ได้ให้ข้อมูลเฉพาะหรือเป็นอิสระในแบบจำลองการถดถอย
หากระดับความสัมพันธ์ระหว่างตัวแปรสูงเพียงพอ อาจทำให้เกิดปัญหาเมื่อปรับให้เหมาะสมและตีความแบบจำลองการถดถอย
วิธีหนึ่งในการตรวจสอบความเป็นหลายคอลลิเนียร์คือการใช้หน่วยเมตริกที่เรียกว่า ปัจจัยอัตราเงินเฟ้อแปรปรวน (VIF) ซึ่งวัดความสัมพันธ์และความแข็งแกร่งของความสัมพันธ์ระหว่างตัวแปรอธิบายใน แบบจำลองการถดถอย
บทช่วยสอนนี้จะอธิบายวิธีคำนวณ VIF ใน SAS
ตัวอย่าง: การคำนวณ VIF ใน SAS
สำหรับตัวอย่างนี้ เราจะสร้างชุดข้อมูลที่อธิบายคุณสมบัติของผู้เล่นบาสเก็ตบอล 10 คน:
/*create dataset*/ data my_data; input rating points assists rebounds; datalines ; 90 25 5 11 85 20 7 8 82 14 7 10 88 16 8 6 94 27 5 6 90 20 7 9 76 12 6 6 75 15 9 10 87 14 9 10 86 19 5 7 ; run ; /*view dataset*/ proc print data =my_data;
สมมติว่าเราต้องการปรับโมเดลการถดถอยเชิงเส้นหลายตัวให้พอดีโดยใช้ การให้คะแนน เป็นตัวแปรตอบสนอง และ จุด ช่วยเหลือ และ รีบาวด์ เป็นตัวแปรทำนาย
เราสามารถใช้ PROC REG เพื่อให้เหมาะสมกับโมเดลการถดถอยนี้ด้วยตัวเลือก VIF เพื่อคำนวณค่า VIF สำหรับตัวแปรทำนายแต่ละตัวในโมเดล:
/*fit regression model and calculate VIF values*/ proc reg data =my_data; model rating = points assists rebounds / lively ; run ;
จากตาราง การประมาณค่าพารามิเตอร์ เราจะเห็นค่า VIF ของตัวแปรทำนายแต่ละตัว:
- คะแนน: 1.76398
- แอสซิสต์: 1.96591
- รีบาวด์: 1.17503
หมายเหตุ: ไม่ต้องสนใจ VIF สำหรับ “Intercept” ในเทมเพลต เนื่องจากค่านี้ไม่เกี่ยวข้อง
ค่า VIF เริ่มต้นที่ 1 และไม่มีขีดจำกัดบน กฎทั่วไปสำหรับการตีความ VIF คือ:
- ค่า 1 บ่งชี้ว่าไม่มีความสัมพันธ์ระหว่างตัวแปรทำนายที่กำหนดกับตัวแปรทำนายอื่นๆ ในแบบจำลอง
- ค่าระหว่าง 1 ถึง 5 บ่งชี้ถึงความสัมพันธ์ระดับปานกลางระหว่างตัวแปรทำนายที่กำหนดกับตัวแปรทำนายอื่นๆ ในแบบจำลอง แต่มักจะไม่รุนแรงพอที่จะต้องได้รับการดูแลเป็นพิเศษ
- ค่าที่มากกว่า 5 บ่งชี้ถึงความสัมพันธ์ที่อาจร้ายแรงระหว่างตัวแปรทำนายที่กำหนดกับตัวแปรทำนายอื่นๆ ในแบบจำลอง ในกรณีนี้การประมาณค่าสัมประสิทธิ์และค่า p ในผลลัพธ์การถดถอยมีแนวโน้มว่าจะไม่น่าเชื่อถือ
เนื่องจากค่า VIF แต่ละค่าของตัวแปรทำนายในแบบจำลองการถดถอยของเรามีค่าใกล้เคียงกับ 1 ความเป็นหลายเส้นตรงจึงไม่เป็นปัญหาในตัวอย่างของเรา
วิธีจัดการกับ multicollinearity
หากคุณพบว่าปัญหาหลายเส้นตรงเป็นปัญหาในแบบจำลองการถดถอยของคุณ มีวิธีทั่วไปหลายวิธีในการแก้ไข:
1. ลบตัวแปรที่มีความสัมพันธ์สูงอย่างน้อยหนึ่งตัวออก
นี่เป็นวิธีแก้ปัญหาที่รวดเร็วที่สุดในกรณีส่วนใหญ่ และมักจะเป็นวิธีแก้ปัญหาที่ยอมรับได้ เนื่องจากตัวแปรที่คุณลบออกนั้นซ้ำซ้อนอยู่แล้ว และเพิ่มข้อมูลเฉพาะหรือข้อมูลอิสระเพียงเล็กน้อยให้กับโมเดล
2. รวมตัวแปรทำนายในลักษณะเชิงเส้นตรงด้วยวิธีใดวิธีหนึ่ง เช่น การบวกหรือการลบตัวแปรเหล่านั้นด้วยวิธีใดวิธีหนึ่ง
การทำเช่นนี้ คุณสามารถสร้างตัวแปรใหม่ที่ครอบคลุมข้อมูลจากตัวแปรทั้งสอง และคุณจะไม่มีปัญหาเรื่องหลายคอลลิเนียร์อีกต่อไป
3. ทำการวิเคราะห์ที่ออกแบบมาเพื่อพิจารณาตัวแปรที่มีความสัมพันธ์สูง เช่น การวิเคราะห์องค์ประกอบหลัก หรือการถดถอยกำลังสองน้อยที่สุดบางส่วน (PLS)
เทคนิคเหล่านี้ได้รับการออกแบบมาโดยเฉพาะเพื่อจัดการกับตัวแปรตัวทำนายที่มีความสัมพันธ์กันสูง
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน SAS:
วิธีดำเนินการถดถอยเชิงเส้นพหุคูณใน SAS
วิธีสร้างพล็อตคงเหลือใน SAS
วิธีคำนวณระยะปรุงอาหารใน SAS