การทดสอบ Heteroscedasticity ใน Linear regression model ด้วย Python
Fitted vs Residual, Breusch-Pagan and White
ยังอยู่ในเนื้อหาที่เกี่ยวข้องกับ Linear regression model assumption ในครั้งนี้เนื้อหา Cover เกี่ยวกับการทดสอบ Heteroscedasticity ซึ่งเป็น 1 ในสมมติฐานเพื่อนำไปสู่ข้อสรุป Model ที่เป็น BLUE (Best Linear Unbiased Estimator)
แน่นอนว่า Model นี้ยังเป็นส่วนหนึ่งของ IFRS 9 ในส่วนที่เป็น Forward-looking component แต่สามารถนำเนื้อหานี้ไป Apply กับ Model ประเภทอื่น ๆ ได้อีกเช่นกัน
Homoscedasticity
Linear model ต้องเป็น Homoscedasticity หมายความว่า Model residual (Error) ต้องกระจายไปตาม Regression line หรือในอีกความหมายคือ Variance ของ Error ต้องมีค่าคงที่ (Constant) ในทุก ๆ Level ของตัวแปร Independence variables (X)
เมื่อเขียนเป็นสมการแสดงว่าข้อมูลมีความเป็น Homoscedasticity คือ
Variance(y|X) = σ²
ในทางกลับกัน ถ้า Variance ของข้อมูลไม่ Constant หมายความว่า Variance ต้องเป็นฟังก์ชั่นใดฟังก์ชั่นหนึ่งกับ X ดังนั้นจึงเขียนเป็นสมการแสดง Heteroscedasticity ได้ว่า
Variance(y|X) = f(X)
ผลที่เกิดขึ้นเมื่อ Model เป็น Heteroscedasticity มีศัพท์ทางเทคนิคเรียกว่า “Hard to trust” หมายความว่าค่า Prediction ที่เกิดจาก Model coefficient ไม่สามารถระบุการเพิ่มขึ้นของ Variance ที่อยู่ในโมเดลได้ ดังนั้นค่า p-value ที่ผ่าน Significant ที่ Alpha % อาจไม่จริงเสมอไป
การทดสอบหรือ Detect heteroscedasticity สามารถทำได้ทั้ง Graphical method หรือ Statistical method เหมือนอย่าง Normality test ที่เคยเขียนไว้ที่ตอนก่อนหน้านี้ แต่ก่อนอื่นต้องมี Linear regression model เพื่อให้ได้ Parameters ที่จำเป็นสำหรับการทดสอบก่อน
Model
ใช้เป็น Forward-looking PD เดิมที่เคยใช้ในตอน Normality test เพื่อทดสอบให้เห็นไปเลยว่า หากทดสอบ Assumption ครบแล้ว Model จะสามารถใช้ใน IFRS 9 ได้หรือไม่ (แน่นอนว่าต้องมีการทดสอบอื่น ๆ อีกเช่นกัน)
Graphical method
Fitted vs Residual plot
วิธีการที่ง่ายที่สุดสำหรับการตรวจสอบว่า Linear model เป็น Homoscedasticity หรือไม่ คือการ Plot fitted value กับ Residual แล้วดูการกระจายตัว Scatter ของค่าทั้งสองว่าเป็นอย่างไร
ภาพประกอบ 3 รูปด้านบนเป็นตัวอย่างที่ถูกใช้เยอะที่สุด โดยที่ 2 ภาพแรกแสดงให้เห็นว่า Model มีความเป็น Heteroscedasticity เพราะการกระจายตัวเป็นฟังก์ชั่นของตัวแปร X เช่นเมื่อ X เพิ่มขึ้น y ก็มีค่าเพิ่มขึ้นเหมือนรูปทางซ้ายมือ หรือเมื่อ X เพิ่มขึ้น y มีค่าลดลงเหมือนรูปตรงกลาง ในขณะที่รูปสุดท้าย X และ y มีการกระจายตัวแบบเท่า ๆ กันตลอดช่วงเวลา
Plot fitted value กับ Residual ตามที่ได้เอาไว้ สิ่งเกิดที่คือไม่สามารถสรุปผลได้อย่างชัดว่า Model เป็น Homoscedasticity หรือไม่ แต่มองในมุม Bias อาจสามารถสรุปได้ว่า Model นี้เป็น Homoscedasticity
Residual with time series plot
อีกวิธีหนึ่งคือการ Plot model residual กับ Time period ถ้าเป็นการทำ Linear regression กับชุดข้อมูลที่เป็น Time series การที่ Magnitude ของ Error เพิ่มขึ้นหรือแตกต่างกันในช่วงเวลาที่ต่อเนื่องกัน อาจสันนิษฐานได้ว่า Variance ไม่เป็น Constant เป็นต้น
เช่นเดียวกันค่า Residual ที่ Plot เทียบกับ Time series ก็ตอบได้ยากว่า Magnitude ที่เปลี่ยนผ่านระหว่างเดือนมีค่าคงที่หรือไม่ ดังนั้นเมื่อ Graphical method ไม่สามารถสรุปผลที่ชัดเจนได้ (ส่วนมากจะสรุปไม่ได้) อาจต้องใช้ Statistical method เข้ามาเพื่อนำไปสู่ Conclusion
Statistical method
วิธีการทางสถิติถูกนำมาใช้เพื่อนำไปสู่ข้อสรุปที่ง่ายกว่าเดิม โดยการทดสอบ Heteroscedasticity ใน Linear regression model มี Statistic test ให้เลือกใช้มากมาย แต่สำหรับ Blog ตอนนี้ขอนำเสนอวิธีการที่ได้รับความนิยม 2 วิธีคือ White test และ Breusch-Pagan test
ความแตกต่างของวิธีการทดสอบทั้งสองคือ
- Breusch-Pagan test ตั้งสมมติฐานว่า Heteroscedasticity เป็น Linear function ซึ่งในความเป็นจริงแล้ว อาจไม่ใช้เสมอไป ในขณะที่ White test ไม่ได้มีสมมติฐานตรงนี้
- Breusch-Pagan test เป็นการทดสอบการมีอยู่ของ Heteroscedasticity ในขณะที่ White test ทดสอบ Bias ที่เกิดจาก Heteroscedasticity
Hypothesis testing ของทั้งสอง Tests โดยใช้ค่า p-value และ Alpha คือ
- H0: Homoscedasticity is presented
- H1: Homoscedasticity is not presented
ดังนั้นถ้า
- p-value ≤ alpha: Reject H0 → Homoscedasticity is not presented (Heteroscedasticity)
- p-value > alpha: Failed to reject H0 → Homoscedasticity is presented (No Heteroscedasticity)
White test
ผลลัพธ์ของ White test statistic เป็น Chi-squared distribution ดังนั้นสามารถหา p-value จากค่า Test statistic ได้ (โปรแกรมคำนวณให้แล้ว) หรือใช้ F-Test’s p-value (0.2370) เพื่อเทียบกับ Alpha (0.05) ตรง ๆ ก็ได้เช่นกัน
Lagrange Multiplier statistic: 6.9122
LM test p-value: 0.2273
F-statistic: 1.4066
F-test p-value: 0.2370
Residual errors are homoscedasticity
Breusch-Pagan test
Breusch-Pagan test สามารถใช้ค่า p-value ของ Test ในการสรุปได้ จากตัวอย่างที่ p-value = 0.1278 เมื่อเทียบกับ Alpha ที่ 0.05 สามารถสรุปผลได้ว่า Linear model นี้เป็น Homoscedasticity
Lagrange Multiplier statistic: 4.1140
LM test p-value: 0.1278
F-statistic: 2.0987
F-test p-value: 0.1322
Residual errors are homoscedasticity
Conclusion
เมื่อรู้ผลการทดสอบแล้วว่า Linear model เป็น Homoscedasticity หรือไม่ แน่นอนว่าการแก้ไข Model ที่เป็น Heteroscedasticity ย่อมมีเช่นการ Transform dependence variable ในรูปของ Log-transform หรือ Box-Cox transform หรือการใช้ ML อื่นแทน OLS เช่น GLM หรือ WLS เป็นต้น แต่เนื้อหาของ Blog ตอนนี้อาจยังไม่ได้พูดถึง เพราะ Model ที่หยิบมาผ่านการทดสอบ
สำหรับ Colab notebook ของเนื้อหาทั้งตอนสามารถดูได้ที่ Link ด้านบน