วิธีดำเนินการถดถอยกำลังสองน้อยที่สุดแบบถ่วงน้ำหนักใน r


ข้อสันนิษฐานสำคัญประการหนึ่งของการถดถอยเชิงเส้น คือ ส่วนที่เหลือ จะถูกกระจายด้วยความแปรปรวนเท่ากันในแต่ละระดับของตัวแปรทำนาย สมมติฐานนี้เรียกว่า การรักร่วมเพศ

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

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

บทช่วยสอนนี้ให้ตัวอย่างทีละขั้นตอนของวิธีการถดถอยกำลังสองน้อยที่สุดแบบถ่วงน้ำหนักใน R

ขั้นตอนที่ 1: สร้างข้อมูล

รหัสต่อไปนี้จะสร้างกรอบข้อมูลที่ประกอบด้วยจำนวนชั่วโมงเรียนและคะแนนสอบที่สอดคล้องกันสำหรับนักเรียน 16 คน:

 df <- data.frame(hours=c(1, 1, 2, 2, 2, 3, 4, 4, 4, 5, 5, 5, 6, 6, 7, 8),
                 score=c(48, 78, 72, 70, 66, 92, 93, 75, 75, 80, 95, 97, 90, 96, 99, 99))

ขั้นตอนที่ 2: ดำเนินการการถดถอยเชิงเส้น

ต่อไป เราจะใช้ฟังก์ชัน lm() เพื่อให้พอดีกับ โมเดลการถดถอยเชิงเส้นอย่างง่าย ที่ใช้ชั่วโมงเป็นตัวแปรทำนายและใช้คะแนนเป็น ตัวแปรตอบสนอง :

 #fit simple linear regression model
model <- lm(score ~ hours, data = df)

#view summary of model
summary(model)

Call:
lm(formula = score ~ hours, data = df)

Residuals:
    Min 1Q Median 3Q Max 
-17,967 -5,970 -0.719 7,531 15,032 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 60,467 5,128 11,791 1.17e-08 ***
hours 5,500 1,127 4,879 0.000244 ***
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 9.224 on 14 degrees of freedom
Multiple R-squared: 0.6296, Adjusted R-squared: 0.6032 
F-statistic: 23.8 on 1 and 14 DF, p-value: 0.0002438

ขั้นตอนที่ 3: ทดสอบความต่างกัน

ต่อไป เราจะสร้างพล็อตของค่าคงเหลือและค่าที่ติดตั้งเพื่อตรวจสอบความต่างกันด้วยสายตา:

 #create residual vs. fitted plot
plot( fitted (model), resid (model), xlab=' Fitted Values ', ylab=' Residuals ')

#add a horizontal line at 0 
abline(0,0) 

จากกราฟเราจะเห็นได้ว่าส่วนที่เหลือมีรูปร่าง “กรวย” ซึ่งไม่ได้กระจายด้วยความแปรปรวนเท่ากันตลอดทั้งกราฟ

หากต้องการทดสอบความแตกต่างอย่างเป็นทางการ เราสามารถทำการทดสอบ Breusch-Pagan ได้:

 #load lmtest package
library (lmtest)

#perform Breusch-Pagan test
bptest(model)

	studentized Breusch-Pagan test

data: model
BP = 3.9597, df = 1, p-value = 0.0466

การทดสอบ Breusch-Pagan ใช้ สมมติฐาน ว่างและทางเลือกต่อไปนี้ :

  • สมมติฐานว่าง (H 0 ): มีสภาวะโฮโมสซีดาสติก (ส่วนที่เหลือถูกกระจายโดยมีความแปรปรวนเท่ากัน)
  • สมมติฐานทางเลือก ( HA ): มีภาวะเฮเทอโรสซิดาสติก (ส่วนที่เหลือไม่กระจายด้วยความแปรปรวนเท่ากัน)

เนื่องจากค่า p ของการทดสอบคือ 0.0466 เราจะปฏิเสธสมมติฐานว่างและสรุปว่าความแตกต่างเป็นปัญหาในแบบจำลองนี้

ขั้นตอนที่ 4: ดำเนินการถดถอยกำลังสองน้อยที่สุดแบบถ่วงน้ำหนัก

เนื่องจากปัจจุบันมีความแปรปรวนต่างกัน เราจะทำการถ่วงน้ำหนักกำลังสองน้อยที่สุดโดยการตั้งค่าน้ำหนักเพื่อให้การสังเกตที่มีความแปรปรวนต่ำกว่าจะได้รับน้ำหนักมากขึ้น:

 #define weights to use
wt <- 1 / lm( abs (model$residuals) ~ model$fitted. values )$fitted. values ^2

#perform weighted least squares regression
wls_model <- lm(score ~ hours, data = df, weights=wt)

#view summary of model
summary(wls_model)

Call:
lm(formula = score ~ hours, data = df, weights = wt)

Weighted Residuals:
    Min 1Q Median 3Q Max 
-2.0167 -0.9263 -0.2589 0.9873 1.6977 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 63.9689 5.1587 12.400 6.13e-09 ***
hours 4.7091 0.8709 5.407 9.24e-05 ***
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.199 on 14 degrees of freedom
Multiple R-squared: 0.6762, Adjusted R-squared: 0.6531 
F-statistic: 29.24 on 1 and 14 DF, p-value: 9.236e-05

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

แบบจำลองกำลังสองน้อยที่สุดแบบถ่วงน้ำหนักมีข้อผิดพลาดมาตรฐานคงเหลือ 1.199 เทียบกับ 9.224 ในแบบจำลองการถดถอยเชิงเส้นแบบง่ายดั้งเดิม

สิ่งนี้บ่งชี้ว่าค่าที่ทำนายที่สร้างโดยแบบจำลองกำลังสองน้อยที่สุดแบบถ่วงน้ำหนักนั้นใกล้เคียงกับการสังเกตจริงมากกว่ามาก เมื่อเปรียบเทียบกับค่าที่ทำนายที่สร้างโดยแบบจำลองการถดถอยเชิงเส้นอย่างง่าย

โมเดลกำลังสองน้อยที่สุดแบบถ่วงน้ำหนักยังมี R-กำลังสองเป็น 0.6762 เทียบกับ 0.6296 ในโมเดลการถดถอยเชิงเส้นแบบง่ายดั้งเดิม

สิ่งนี้บ่งชี้ว่าแบบจำลองกำลังสองน้อยที่สุดแบบถ่วงน้ำหนักสามารถอธิบายความแปรปรวนของคะแนนสอบได้มากกว่าแบบจำลองการถดถอยเชิงเส้นแบบธรรมดา

การวัดเหล่านี้บ่งชี้ว่าแบบจำลองกำลังสองน้อยที่สุดที่ถ่วงน้ำหนักให้เหมาะสมกับข้อมูลได้ดีกว่าเมื่อเปรียบเทียบกับแบบจำลองการถดถอยเชิงเส้นแบบธรรมดา

แหล่งข้อมูลเพิ่มเติม

วิธีดำเนินการถดถอยเชิงเส้นอย่างง่ายใน R
วิธีดำเนินการถดถอยเชิงเส้นพหุคูณใน R
วิธีดำเนินการถดถอยเชิงปริมาณใน R

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *