Taking too long? Close loading screen.

เตรียมข้อมูลอย่างไรให้โมเดล Linear Regression ดีขึ้น

Oct 10, 2022

หลาย ๆ ท่าน คงได้ยินแนวทางในการสร้างโมเดลด้วยวิธีการมากมาย แต่หนึ่งในโมเดลพื้นฐานที่ช่วยให้เราสามารถวิเคราะห์ข้อมูลหรือทำนายข้อมูลได้ก็คือ Linear Regression (ตัวแบบการถดถอยเชิงเส้น) ซึ่งจะหมายถึงการหารูปแบบความสัมพันธ์ของตัวแปรต้น (Predictor, Independent Variable, X) และตัวแปรตาม (Response, Dependent Variable, Y) ที่เราสนใจออกมาเป็นสมการทางคณิตศาสตร์ ซึ่งอาจนำมาใช้ในการทำนายข้อมูลหรือใช้วิเคราะห์หาปัจจัยที่สำคัญที่ทำให้เกิดการเปลี่ยนแปลงกับตัวแปรตามได้ โดยความสามารถของโมเดลนี้ สามารถทำได้ทั้งการแก้ไขปัญหาเชิง Regression และ Classification ภายใต้การแจกแจงในรูปแบบที่หลาย เช่น Binomial, Poisson, Inverse Gaussian หรือแม้แต่การแจกแจงแบบปกติ (Normal) เองก็ตาม โดยสามารถแบ่งประเภทของ Regression ออกตามตารางด้านล่างนี้

ประเภทของ Regressionลักษณะของตัวแปรตามลักษณะของตัวแปรต้น
Simple Linear Regressionข้อมูลเชิงปริมาณที่เป็นค่าต่อเนื่อง 1 ตัวข้อมูลเชิงปริมาณที่มีค่าต่อเนื่องหรือ ข้อมูลที่อยู่ในลักษณะของ binary 1 ตัว
Multiple Linear Regressionข้อมูลเชิงปริมาณที่เป็นค่าต่อเนื่อง 1 ตัวข้อมูลเชิงปริมาณที่มีค่าต่อเนื่องหรือ ข้อมูลที่อยู่ในลักษณะของ binary รวมกันตั้งแต่ 2 ตัวขึ้นไป
Logistic Regressionข้อมูลที่อยู่ในลักษณะของ binaryข้อมูลเชิงปริมาณที่มีค่าต่อเนื่องหรือ ข้อมูลที่อยู่ในลักษณะของ binary รวมกันตั้งแต่ 2 ตัวขึ้นไป
Ordinal Regressionข้อมูลเชิงคุณภาพที่มีการเรียงลำดับข้อมูลเชิงคุณภาพที่ไม่มีการเรียงลำดับ หรือ ข้อมูลที่อยู่ในลักษณะของ binary ตั้งแต่ 1 ตัวขึ้นไป
Multinomial Regressionข้อมูลเชิงคุณภาพที่ไม่มีการเรียงลำดับข้อมูลเชิงปริมาณที่มีค่าต่อเนื่องหรือ ข้อมูลที่อยู่ในลักษณะของ binary รวมกันตั้งแต่ 2 ตัวขึ้นไป
Discriminant Analysisข้อมูลเชิงคุณภาพที่ไม่มีการเรียงลำดับข้อมูลเชิงปริมาณที่มีค่าต่อเนื่อง ตั้งแต่ 1 ตัวขึ้นไป
ตารางประเภทของ Regression
ภาพเปรียบเทียบการแก้ปัญหาในรูปแบบ Regression และ Classification

เมื่อทราบประเภทของ Linear Regression กันแล้ว ต่อมาเราก็จะมาดูสมการอย่างง่ายของ Linear Regression กัน โดยในที่นี้จะขอยกตัวอย่างจาก Simple Linear Regression นั่นก็คือ

หรือเขียนในรูปของตัวประมาณได้ว่า

เมื่อขึ้นชื่อว่าเป็นการประมาณการหรือเป็นโมเดลแล้วนั้น ก็ย่อมความมีความคาดเคลื่อนที่เกิดขึ้น เนื่องจากLinear Regression ไม่สามารถลากเส้นตรงผ่านได้ครบทุกจุดได้ และ ความคาดเคลื่อนที่เกิดขึ้นนี้จะเรียกว่า “Residual”

ซึ่งหากเรามองดีๆ ก็จะพบว่า สมการเหล่านี้มีความคล้ายคลึงกับสมการเชิงเส้นเลย

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

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

1. การตรวจสอบความเป็นเชิงเส้น (Linearity Assumption)

การตรวจสอบความเป็นเชิงเส้น (Linearity Assumption)  ข้อมูลตัวแปรต้น (X) และตัวแปรตาม (Y)  ต้องมีความสัมพันธ์เชิงเส้น ไม่เช่นนั้นอาจทำให้เกิดการทำนายด้วย Linear Regression ที่ไม่เที่ยงตรงได้ ซึ่งเบื้องต้นสามารถตรวจได้ 2 วิธี

1.1. Plot กราฟจากข้อมูลตัวแปรตาม (Y) และตัวแปรต้น (X) เพื่อดูความสัมพันธ์เชิงเส้น

กราฟจากข้อมูลตัวแปรตาม (Y) และตัวแปรต้น (X)

1.2. Plot กราฟจากค่าความคาดเคลื่อนของตัวแปรตาม (Residual) เทียบกับตัวแปรตามจากข้อมูลจริง  โดยจะต้องไม่พบ pattern ของข้อมูลที่เด่นชัด ว่ากันง่าย ๆ ก็คือ ความคาดเคลื่อนของโมเดลไม่ควรจะมีแนวโน้มอะไรเลย เนื่องจากความคาดเคลื่อนของแต่ละจุดไม่มีความสันพันธ์กัน

กราฟจากค่าความคาดเคลื่อนของตัวแปรตาม (Residual) เทียบกับตัวแปรตามจากข้อมูลจริง

โดยในการแก้ไขปัญหาดังกล่าว ให้ลองแปลงข้อมูลเป็นในรูปแบบต่าง ๆ เช่น logarithm, หรือ เพิ่มลดเลขยกกำลัง  หากเป็นการแปลงข้อมูลที่เป็นตัวแปรตาม ให้วิธี box-cox transformation ในการหาวิธีการแปลงที่เหมาะสม โดยสามารถทำได้โดยเลือกค่าประมาณ lambda ที่ให้ค่า log-likelihood สูงสุดจากกราฟ box-cox แล้วนำไปเทียบกับตารางแปรผล box-cox เพื่อหาวิธีการแปลงค่าตัวแปรตามที่เหมาะสม

กราฟค่าประมาณ lambda เทียบกับ log-likelihood
(แหล่งที่มาจาก RPubs)
Lambda value (λ)Transformed data (Y’)
-31/Y3
-21/Y2
-11/Y
-0.51/√(Y)
0ln(Y)
0.5√(Y)
1Y
2Y2
3Y3
ตารางการเทียบค่า lambda ในการแปลงข้อมูลแบบ box-cox

2. การตรวจสอบการแจกแจงในรูปแบบปกติ (Normality Assumption)

ตรวจสอบการแจกแจงในรูปแบบปกติ (Normality Assumption) หากไม่มีคุณสมบัตินี้จะส่งผลให้ช่วงความเชื่อมั่นของข้อมูลมีความผิดพลาดได้ ซึ่งสามารถตรวจสอบได้ 2 วิธี

2.1. Plot quantile ของการแจกแจงของ residual เทียบกับการแจกแจงแบบปกติ แล้วจุดข้อมูลบนกราฟจะต้องไม่อยู่ห่างจากเส้น 45 องศา

กราฟการแจกแจงของ residual แบบ Normal Quatile – Quatile
(แหล่งที่มาจาก RPubs)

2.2. ทดสอบสมมุติฐานบนโมเดลด้วย Shapiro-Wilk  ซึ่งเป็นการทดสอบสมมุติฐานว่ากลุ่มข้อมูลตัวอย่างมาจากประชากรที่มีการแจกแจงแบบปกติหรือไม่ โดยมีสมมุติฐานว่างคือประชากรมีการแจกแจงแบบปกติ ซึ่งหลังการทดสอบจะต้องได้ข้อสรุปว่าไม่สามารถปฏิเสธสมมุติฐานว่างได้

โดยในการแก้ไขปัญหาดังกล่าว ให้ลองแปลงข้อมูลเป็นในรูปแบบต่าง ๆ เช่น logarithm, หรือ เพิ่มลดเลขยกกำลัง  หากเป็นการแปลงข้อมูลที่เป็นตัวแปรตาม ให้วิธี box-cox transformation ในการหาวิธีการแปลงที่เหมาะสม โดยสามารถทำได้โดยเลือกค่าประมาณ lambda ที่ให้ค่า log-likelihood สูงสุดจากกราฟ box-cox แล้วนำไปเทียบกับตารางแปรผล box-cox เพื่อหาวิธีการแปลงค่าตัวแปรตามที่เหมาะสม หรือเลือกตัดข้อมูลที่ ไม่ได้เกาะกลุ่มแต่ส่งผลต่อโมเดล (influential point)

3. การตรวจสอบความแปรปรวนข้อมูลคงที่ (Constant Variance Assumption) 

การตรวจสอบความแปรปรวนข้อมูลคงที่ (Constant Variance Assumption)  หากไม่มีคุณสมบัตินี้จะทำให้ตัวประมาณในโมเดลและความคาดเคลื่อนมาตรฐานของข้อมูล มีการแจกแจงที่ไม่เป็นปกติ ซึ่งสามารถตรวจได้ 2 วิธี

3.1. Plot กราฟจากค่าความคาดเคลื่อนของตัวแปรตาม (Residual) เทียบกับตัวแปรตามจากข้อมูลจริง  โดยจะต้องไม่พบ pattern เด่นชัด

3.2. ทดสอบสมมุติฐานบนโมเดลด้วย Breusch-Pagan ซึ่งเป็นการทดสอบสมมุติฐานว่าความแปรปรวนของค่าคลาดเคลื่อนคงที่หรือไม่ โดยมีสมมุติฐานว่างคือความแปรปรวนของค่าคลาดเคลื่อนมีความคงที่ ซึ่งหลังการทดสอบจะต้องได้ข้อสรุปว่าไม่สามารถปฏิเสธสมมุติฐานว่างได้

โดยในการแก้ไขให้เลือกใช้ Weighted Regression ซึ่งเป็นส่วนขยายของ Linear Regression Model ที่อนุญาตให้โมเดลให้ความสำคัญของแต่ละ record ในชุดข้อมูลไม่เท่ากัน โดยเราจะให้น้ำหนักสูงกับ record ที่มีความแปรปรวนของความคลาดเคลื่อน (Error Variance) ต่ำ และทำเช่นเดียวกันในกรณีตรงกันข้าม

4. การตรวจสอบความเป็นอิสระต่อกัน (Independence Assumption)

การตรวจสอบความเป็นอิสระต่อกัน (Independence Assumption) ระหว่างตัวแปรต้นหากไม่มีคุณสมบัตินี้จะส่งผลให้ช่วงความเชื่อมั่นของข้อมูลมีความผิดพลาดได้ ซึ่งสามารถตรวจได้ 3 วิธี

4.1. Plot กราฟจากค่าความคาดเคลื่อนของตัวแปรตาม (Residual) เทียบกับ เวลา แล้วไม่พบ pattern ของข้อมูล

4.2. กรณีข้อมูลเป็นอนุกรมเวลา ให้ทดสอบสมมุติฐานบนโมเดลด้วย Durbin-Watson ซึ่งเป็นการทดสอบสมมุติฐานว่าความคาดเคลื่อนมีการเกิดความสัมพันธ์ในตัวเอง (Autocorrelation) หรือไม่ โดยมีสมมุติฐานว่างคือ ไม่พบความสัมพันธ์ในตัวเองในชั้นแรก (First-Order Autocorrelation) ซึ่งหลังการทดสอบจะต้องได้ข้อสรุปว่าไม่สามารถปฏิเสธสมมุติฐานว่างได้

4.3. กรณีข้อมูลเป็นข้อมูลภาคตัดขวาง (Cross-sectional Data) ให้ทดสอบสมมุติฐานบนโมเดลด้วย Run Test ซึ่งเป็นการทดสอบสมมุติฐานว่าข้อมูลที่ได้จากตัวอย่างนั้นเกิดจากการสุ่มอย่างแท้จริงหรือไม่ โดยมีสมมุติฐานว่างคือ ข้อมูลเกิดจากการสุ่ม ซึ่งหลังการทดสอบจะต้องได้ข้อสรุปว่าไม่สามารถปฏิเสธสมมุติฐานว่างได้

โดยในการแก้ไขปัญหาดังกล่าวมีได้หลายวิธีดังนี้

  • ตัดตัวแปรต้นโดยปรึกษาผู้เชี่ยวชาญข้อมูลที่เกี่ยวข้อง (Domain Expert)
  • ตัดตัวแปรต้นที่มีความพันธ์กับตัวแปรต้นอีกตัวออก เนื่องจากทั้งสองมีความสัมพันธ์กันสูง โดยสามารถดูจากค่า VIF (Variance Inflation Factor)  ของตัวแปรต้นตัวนั้นๆ ที่มีค่ามากกว่า 10 ก็สามารถตัดออกได้ โดยเลือกตัดค่าที่สูงที่สุดก่อน จากนั้นทำการคำนวณ VIF ใหม่เพื่อหาตัวแปรต้นที่ยังคงมีความสัมพันธ์กันสูงอยู่จนกระทั่ง ไม่พบตัวแปรที่มีค่า VIF เกินกว่า 10
  • ใช้ Ridge Regression ซึ่งเป็นการปรับแต่งโมเดล Regression เพื่อให้โมเดลมีความเสถียรกับข้อมูลที่มีความสัมพันธ์กันเองมากยิ่งขึ้น
  • ทำการลดมิติของข้อมูลด้วยวิธี PCA (Principal component analysis) โดยข้อมูลที่มีความสัมพันธ์กันสูงจะถูกยุบรวมอยู่ในมิติเดียวกัน

สู่ Linear Regression ที่มีประสิทธิภาพ

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

อ้างอิง

What is Linear Regression?

Regression Diagnostics

Understanding Diagnostic Plots for Linear Regression Analysis

Box-Cox Transformation: Definition, Examples

Box-Cox Normality Plot

Shapiro-Wilk Test: Definition, How to Run it in SPSS

Breusch-Pagan-Godfrey Test: Definition

Durbin Watson Statistic Definition

What is Run Test in Statistics – A Simple Explanation with Step by Step Examples

Variance Inflation Factor

ปัญหาต่างๆในการทำ Regression Analysis

เนื้อหาโดย ไชยณรงค์ ทุมาภา

ตรวจทานและปรับปรุงโดย ปพจน์ ธรรมเจริญพร

Chainarong Tumapha

Data Scientist Government Big Data institute (GBDi)

Papoj Thamjaroenporn

Editor-in-Chief at BigData.go.th and Senior Data Scientist at GBDi

Sign up to join Big Data Community Thailand

Make comments, write articles, and contribute to our community.