การทำนายราคาบ้าน ด้วย 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

  1. CRIM per capita crime rate by town
  2. 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) คือตัวแปรต้น ที่ต้องการทำนาย

รูปที่ 1: ตัวแปรตามทั้งหมด 13 ตัวแปร
  1. การกระจายตัวของข้อมูล

จากการกระจายข้อมูล จะเห็นได้ว่า มีการกระจายตัวแบบไม่ปกติ ดังจะดูรายตัวแปร บางตัวดังนี้

มีเพียงสองตัวแปรที่มีการแจกแจงแบบปกติ คือ 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 ตัวแปร

ผลการรัน เป็นที่น่าพอใจ เพราะสามารถ ทำนายจากข้อมูลเพียง 4 ค่า ลองมาดูการรันจากข้อมูลทั้งหมด 13 ค่าตัวแปร ว่าผลไม่แตกต่างกัน

ผมการรันโปรแกรมจากตัวแปรทุกคัว

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

--

--

รศ. ดร. เชฏฐเนติ ศรีสอ้าน
รศ. ดร. เชฏฐเนติ ศรีสอ้าน

Written by รศ. ดร. เชฏฐเนติ ศรีสอ้าน

รองอธิการบดีฝ่ายเทคโนโลยี มหาวิทยาลัยรังสิต

No responses yet