วิธีทำการทดสอบ goldfeld-quandt ใน r
การทดสอบ Goldfeld-Quandt ใช้เพื่อพิจารณาว่า มีภาวะเฮเทอโรสเคดา สติกในแบบจำลองการถดถอยหรือไม่
Heteroskedasticity หมายถึงการกระจายตัวของ สารตกค้าง ที่ไม่สม่ำเสมอในระดับต่างๆ ของ ตัวแปรตอบสนอง ในแบบจำลองการถดถอย
หากมีความต่างกันเกิดขึ้น จะเป็นการฝ่าฝืน สมมติฐานหลักข้อใดข้อหนึ่งของการถดถอยเชิงเส้น ที่ว่าส่วนที่เหลือจะกระจายเท่ากันในแต่ละระดับของตัวแปรตอบสนอง
บทช่วยสอนนี้ให้ตัวอย่างทีละขั้นตอนของวิธีดำเนินการทดสอบ Goldfeld-Quandt ใน R เพื่อพิจารณาว่ามีภาวะเฮเทอโรสซิดาสติกในแบบจำลองการถดถอยที่กำหนดหรือไม่
ขั้นตอนที่ 1: สร้างแบบจำลองการถดถอย
ขั้นแรก เราจะสร้าง โมเดลการถดถอยเชิงเส้นหลายตัว โดยใช้ชุดข้อมูล mtcars ที่สร้างไว้ใน R:
#fit a regression model model <- lm(mpg~disp+hp, data=mtcars) #view model summary summary(model) Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 30.735904 1.331566 23.083 < 2nd-16 *** available -0.030346 0.007405 -4.098 0.000306 *** hp -0.024840 0.013385 -1.856 0.073679 . --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 3.127 on 29 degrees of freedom Multiple R-squared: 0.7482, Adjusted R-squared: 0.7309 F-statistic: 43.09 on 2 and 29 DF, p-value: 2.062e-09
ขั้นตอนที่ 2: ทำการทดสอบ Goldfeld-Quandt
ต่อไป เราจะใช้ฟังก์ชัน gqtest() จากแพ็คเกจ lmtest เพื่อทำการทดสอบ Goldfeld-Quandt เพื่อตรวจสอบว่ามีความต่างกันหรือไม่
ฟังก์ชันนี้ใช้ไวยากรณ์ต่อไปนี้:
gqtest(โมเดล, order.by, ข้อมูล, เศษส่วน)
ทอง:
- model: โมเดลการถดถอยเชิงเส้นที่สร้างโดยคำสั่ง lm()
- order.by: ตัวแปรทำนายของโมเดล
- data: ชื่อของชุดข้อมูล
- เศษส่วน*: จำนวนการสังเกตส่วนกลางที่จะลบออกจากชุดข้อมูล
*การทดสอบ Goldfeld-Quandt ทำงานโดยลบข้อสังเกตจำนวนหนึ่งที่อยู่ตรงกลางชุดข้อมูลออก แล้วทดสอบเพื่อดูว่าการกระจายตัวของส่วนที่เหลือแตกต่างจากชุดข้อมูลผลลัพธ์สองชุดที่อยู่ด้านใดด้านหนึ่งของชุดข้อมูลหรือไม่ การสังเกตจากส่วนกลาง
โดยทั่วไป เราเลือกที่จะลบการสังเกตประมาณ 20% ของการสังเกตทั้งหมด ในกรณีนี้ mtcars มีการสังเกตทั้งหมด 32 รายการ ดังนั้นเราจึงสามารถเลือกที่จะลบการสังเกตส่วนกลาง 7 รายการออก:
#load lmtest library library(lmtest) #perform the Goldfeld Quandt test gqtest(model, order.by = ~disp+hp, data = mtcars, fraction = 7) Goldfeld-Quandt test data: model GQ = 1.0316, df1 = 10, df2 = 9, p-value = 0.486 alternative hypothesis: variance increases from segment 1 to 2
ต่อไปนี้เป็นวิธีการตีความผลลัพธ์:
- สถิติการทดสอบคือ 1.0316
- ค่า p ที่สอดคล้องกันคือ 0.486
การทดสอบ Goldfeld-Quandt ใช้สมมติฐานว่างและทางเลือกต่อไปนี้:
- Null (H 0 ) : มี Homoskedasticity อยู่
- ทางเลือกอื่น ( HA ): มี Heteroskedasticity อยู่
เนื่องจากค่า p ไม่น้อยกว่า 0.05 เราจึงไม่สามารถปฏิเสธสมมติฐานว่างได้ เราไม่มีหลักฐานเพียงพอที่จะอ้างว่ามีความต่างกันในแบบจำลองการถดถอย
จะทำอย่างไรต่อไป
หากคุณล้มเหลวในการปฏิเสธสมมติฐานว่างของการทดสอบ Goldfeld-Quandt จะไม่มีภาวะเฮเทอโรสเคดาสติก และคุณสามารถดำเนินการตีความผลลัพธ์ของการถดถอยดั้งเดิมได้
อย่างไรก็ตาม หากคุณปฏิเสธสมมติฐานว่าง นั่นหมายความว่าข้อมูลมีความต่างกันออกไป ในกรณีนี้ ข้อผิดพลาดมาตรฐานที่แสดงในตารางผลลัพธ์การถดถอยอาจไม่น่าเชื่อถือ
มีวิธีทั่วไปหลายวิธีในการแก้ไขปัญหานี้ ได้แก่:
1. แปลงตัวแปรการตอบสนอง
คุณสามารถลองทำการแปลงตัวแปรตอบกลับได้ เช่น นำ บันทึก รากที่สอง หรือรากที่สาม ของตัวแปรตอบกลับ โดยทั่วไปสิ่งนี้อาจทำให้ความต่างกันหายไปได้
2. ใช้การถดถอยแบบถ่วงน้ำหนัก
การถดถอยแบบถ่วงน้ำหนักจะกำหนดน้ำหนักให้กับจุดข้อมูลแต่ละจุดโดยพิจารณาจากความแปรปรวนของค่าที่พอดี โดยพื้นฐานแล้ว สิ่งนี้จะให้น้ำหนักที่ต่ำแก่จุดข้อมูลที่มีความแปรปรวนสูงกว่า ช่วยลดกำลังสองที่เหลือ
เมื่อใช้ตุ้มน้ำหนักที่เหมาะสม การถดถอยแบบถ่วงน้ำหนักสามารถขจัดปัญหาการเกิดเฮเทอโรสซิดาสติกซิตีได้
แหล่งข้อมูลเพิ่มเติม
วิธีดำเนินการถดถอยเชิงเส้นพหุคูณใน R
วิธีทำการทดสอบของ White ใน R
วิธีทำการทดสอบ Breusch-Pagan ใน R