การทำนายราคาบ้าน ด้วย Multiple Linear regression โดยคำนึงถึงปัญหา Multicollinearity
จากบทความก่อนหน้านี้ การทำนายผล ช้อมูลที่มีค่าต่อเนื่องที่มีตัวแปรไม่มาก เครื่องมือที่เหมาะสมที่สุดคงนี้ไม่พ้น Linear Regression ซึ่งสามารถทำได้อย่างง่ายได้ และมีจุดเด่นตรงที่ สามารถรองรับ จำนวนตัวแปร ได้มากกว่า หนึ่งตัวแปร ซึ่งในวันนี้ เราจะลอง ทำนายราคาบ้าน ซึ่ง ข้อมูลจาก Kaggle ชื่อว่า Boston (Housing Values in Suburbs of Boston) มีตัวแปรทั้งหมด 14 ตัว โดย target ที่เราต้องการทำนายคือ medv หรือราคาบ้านเฉลี่ยหน่วยเป็น $1000 [ดาว์โหลดได้จาก UCI ML housing dataset.http://archive.ics.uci.edu/ml/datasets/Housing]
ตัวแปรทั้ง 14 ตัวมีดังนี้ Machine learning เรียกปัญหานี้ว่า Regression เพราะ target ที่เราต้องการทำนายเป็นตัวเลขแบบ numeric/ continuous และ algorithm
- CRIM per capita crime rate by town
- ZN proportion of residential land zoned for lots over 25,000 sq.ft.
3. INDUS proportion of non-retail business acres per town
4. CHAS Charles River dummy variable (= 1 if tract bounds river; 0 otherwise)
5. NOX nitric oxides concentration (parts per 10 million)
6. RM average number of rooms per dwelling
7. AGE proportion of owner-occupied units built prior to 1940
8. DIS weighted distances to five Boston employment centres
9. RAD index of accessibility to radial highways
10. TAX full-value property-tax rate per $10,000
11. PTRATIO pupil-teacher ratio by town
12. B 1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town
13. LSTAT % lower status of the population
14. MEDV Median value of owner-occupied homes in $1000's
กำหนดให้ Median house value (MEDV) คือตัวแปรต้น ที่ต้องการทำนาย
- การกระจายตัวของข้อมูล
จากการกระจายข้อมูล จะเห็นได้ว่า มีการกระจายตัวแบบไม่ปกติ ดังจะดูรายตัวแปร บางตัวดังนี้
มีเพียงสองตัวแปรที่มีการแจกแจงแบบปกติ คือ RM, LSTAT
2. ปัญหา Multicollinearity
Multicollinearity คือ ความสัมพันธ์กันเองของตัวแปรอิสระที่มีต่อตัวแปรตาม หรือก็คือ ในการทดสอบอิทธิพล ปัจจัยที่ส่งผล หรือการพยากรณ์นั้น อาจมีตัวแปรอิสระหลายตัว โดยที่ตัวแปรอิสระนั้นจะต้องไม่มีความสัมพันธ์กันเองก่อน เพราะหากมีความสัมพันธ์กันเองก่อนแล้ว เวลาไปทดสอบการทำนายจริงๆ จะทำให้ไม่รู้ว่า แล้วตัวแปรอิสระตัวไหนกันแน่ที่ส่งผลต่อตัวแปรตาม
เครื่องมือที่ใช้ทดสอบคือ Variance Inflation Factor (VIF) เพราะ โดยทั่วไปค่าที่ยอมรับทั่วไป คือ VIF กล่าวคือ ถ้า VIF > 10 หมายความว่ามีสหสัมพันธ์ของตัวแปรทำนายมาก และ ถ้าค่า Variance Inflation Factor มีค่ามากกว่า 10 มากแสดงว่าระดับความสัมพันธ์ของตัวแปรอิสระในสมการการวิเคราะห์ความถดถอยพหุเชิงเส้นมีมาก นั้นคือ เกิดปัญหา Multicollinearity ข้อแนะนำคือ ตัดตัวแปรประเภทนี้ออก
และจากผลการค้นหา ค่า VIF ของตัวแปรทั้งหมด พบว่า INDUS,NOX,RM,AGE,DIS,RAD,TAX,PTRATIO,B มีค่า VIF สูงมาก ทำให้ เราควรตัดออกจากการวิเคราะห์
สังเกตว่า เรายังคง LSTAT ไว้ เพราะ คุณสมบัติ การกระจายตัว
ผลการรัน เป็นที่น่าพอใจ เพราะสามารถ ทำนายจากข้อมูลเพียง 4 ค่า ลองมาดูการรันจากข้อมูลทั้งหมด 13 ค่าตัวแปร ว่าผลไม่แตกต่างกัน
สรุป จำนวนตัวแปร มีผลต่อการทำนาย ยิ่งจำนวนมาก ย่อม ทำให้การประมวลผลซับซ้อน แต่ต้องเป็นตัวแปรที่เกี่ยวข้องจริง และ ไม่ควรเป็นตัวแปรที่ทำให้เกิดปัญหา colinearity