วิธีทำการทดสอบ breusch-pagan ใน python
ในการวิเคราะห์การถดถอย เฮเท อโรสเคดาสติซิ ตีหมายถึงการกระจายตัวของสารตกค้างที่ไม่สม่ำเสมอ ที่แม่นยำยิ่งขึ้นคือกรณีที่มีการเปลี่ยนแปลงอย่างเป็นระบบในการกระจายของสารตกค้างในช่วงของค่าที่วัดได้
ความเป็นเฮเทอโรสซิดาสติกเป็นปัญหาเนื่องจากการถดถอยกำลังสองน้อยที่สุดสามัญ (OLS) ถือว่าส่วนที่เหลือมาจากประชากรที่มี ภาวะโฮโมสซิดาสติก ซึ่งหมายถึงความแปรปรวนคงที่
เมื่อมีภาวะเฮเทอโรสซิดาสติกในการวิเคราะห์การถดถอย ผลลัพธ์ของการวิเคราะห์จึงเป็นเรื่องยากที่จะเชื่อได้
วิธีหนึ่งในการพิจารณาว่ามีภาวะเฮเทอโรสเคดา สติ กใน การวิเคราะห์การถดถอย หรือไม่คือการใช้ การทดสอบ Breusch-Pagan
บทช่วยสอนนี้จะอธิบายวิธีดำเนินการทดสอบ Breusch-Pagan ใน Python
ตัวอย่าง: การทดสอบ Breusch-Pagan ใน Python
สำหรับตัวอย่างนี้ เราจะใช้ชุดข้อมูลต่อไปนี้ที่อธิบายคุณสมบัติของผู้เล่นบาสเก็ตบอล 10 คน:
import numpy as np import pandas as pd #create dataset df = pd.DataFrame({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86], 'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19], 'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5], 'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]}) #view dataset df rating points assists rebounds 0 90 25 5 11 1 85 20 7 8 2 82 14 7 10 3 88 16 8 6 4 94 27 5 6 5 90 20 7 9 6 76 12 6 6 7 75 15 9 10 8 87 14 9 10 9 86 19 5 7
เราจะปรับโมเดลการถดถอยเชิงเส้นหลายตัวโดยใช้การให้คะแนนเป็นตัวแปรตอบสนองและคะแนน แอสซิสต์และการรีบาวด์เป็นตัวแปรอธิบาย ต่อไป เราจะทำการทดสอบ Breusch-Pagan เพื่อตรวจสอบว่ามีการถดถอยแบบเฮเทอโรสเคดาสติกหรือไม่
ขั้นตอนที่ 1: ติดตั้งโมเดลการถดถอยเชิงเส้นพหุคูณ
อันดับแรก เราจะใส่โมเดลการถดถอยเชิงเส้นพหุคูณ:
import statsmodels.formula.api as smf #fit regression model fit = smf.ols('rating ~ points+assists+rebounds', data=df). fit () #view model summary print (fit.summary())
ขั้นตอนที่ 2: ทำการทดสอบ Breusch-Pagan
ต่อไป เราจะทำการทดสอบ Breusch-Pagan เพื่อตรวจสอบว่ามีความต่างกันหรือไม่
from statsmodels.compat import lzip import statsmodels.stats.api as sms #perform Bresuch-Pagan test names = ['Lagrange multiplier statistic', 'p-value', 'f-value', 'f p-value'] test = sms.het_breuschpagan(fit.resid, fit.model.exog) lzip(names, test) [('Lagrange multiply statistic', 6.003951995818433), ('p-value', 0.11141811013399583), ('f-value', 3.004944880309618), ('f p-value', 0.11663863538255281)]
การทดสอบ Breusch-Pagan ใช้สมมติฐานว่างและทางเลือกต่อไปนี้:
สมมติฐานว่าง (H 0 ): มี Homoscedasticity อยู่
สมมติฐานทางเลือก: (ฮา): ไม่มี ภาวะโฮโมสเคดาสติก (เช่น มีเฮเทอโรสเคดาสติก)
ในตัวอย่างนี้ สถิติตัวคูณลากรองจ์สำหรับการทดสอบคือ 6.004 และค่า p ที่สอดคล้องกันคือ 0.1114 เนื่องจากค่า p นี้ไม่น้อยกว่า 0.05 เราจึงไม่สามารถปฏิเสธสมมติฐานว่างได้ เราไม่มีหลักฐานเพียงพอที่จะอ้างว่ามีความต่างกันในแบบจำลองการถดถอย
วิธีแก้ไข Heteroscedasticity
ในตัวอย่างก่อนหน้านี้ เราเห็นว่าไม่มีความต่างกันในแบบจำลองการถดถอย
อย่างไรก็ตาม เมื่อมีความต่างขั้วเกิดขึ้นจริง มีวิธีทั่วไปสามวิธีในการแก้ไขสถานการณ์:
1. แปลงตัวแปรตาม วิธีหนึ่งในการแก้ไขความแตกต่างแบบเฮเทอโรสเคดาสติกคือการแปลงตัวแปรตามด้วยวิธีใดวิธีหนึ่ง การแปลงทั่วไปคือเพียงนำบันทึกของตัวแปรตามมา
2. กำหนดตัวแปรตามใหม่ อีกวิธีหนึ่งในการแก้ไขความแตกต่างคือการกำหนดตัวแปรตามใหม่ วิธีทั่วไปในการทำเช่นนี้คือการใช้ อัตรา สำหรับตัวแปรตาม แทนที่จะเป็นค่าดิบ
3. ใช้การถดถอยแบบถ่วงน้ำหนัก อีกวิธีหนึ่งในการแก้ไขความแตกต่างแบบเฮเทอโรสซีดาสติกคือการใช้การถดถอยแบบถ่วงน้ำหนัก การถดถอยประเภทนี้จะกำหนดน้ำหนักให้กับจุดข้อมูลแต่ละจุดโดยพิจารณาจากความแปรปรวนของค่าที่พอดี เมื่อใช้ตุ้มน้ำหนักที่เหมาะสม สิ่งนี้สามารถขจัดปัญหาเรื่องความแตกต่างได้
อ่านรายละเอียดเพิ่มเติมเกี่ยวกับแต่ละวิธีทั้งสามวิธีใน บทความนี้