วิธีใช้ฟังก์ชัน linearhypothesis() ใน r


คุณสามารถใช้ฟังก์ชัน LinearHypothesis() จากแพ็คเกจ รถยนต์ ใน R เพื่อทดสอบสมมติฐานเชิงเส้นในแบบจำลองการถดถอยที่เฉพาะเจาะจง

ฟังก์ชันนี้ใช้ไวยากรณ์พื้นฐานต่อไปนี้:

 linearHypothesis(fit, c(" var1=0 ", " var2=0 "))

ตัวอย่างนี้จะทดสอบว่าค่าสัมประสิทธิ์การถดถอย var1 และ var2 ในแบบจำลองที่เรียกว่า พอดี นั้นรวมกันเท่ากับศูนย์หรือไม่

ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ

ตัวอย่าง: วิธีใช้ฟังก์ชัน LinearHypothesis() ใน R

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

 #create data frame
df <- data.frame(score=c(77, 79, 84, 85, 88, 99, 95, 90, 92, 94),
                 hours=c(1, 1, 2, 3, 2, 4, 4, 2, 3, 3),
                 prac_exams=c(2, 4, 4, 2, 4, 5, 4, 3, 2, 1))

#view data frame
df

   score hours prac_exams
1 77 1 2
2 79 1 4
3 84 2 4
4 85 3 2
5 88 2 4
6 99 4 5
7 95 4 4
8 90 2 3
9 92 3 2
10 94 3 1

ตอนนี้ สมมติว่าเราต้องการปรับโมเดลการถดถอยเชิงเส้นพหุคูณต่อไปนี้ใน R:

คะแนนสอบ = β 0 + β 1 (ชั่วโมง) + β 2 (ข้อสอบภาคปฏิบัติ)

เราสามารถใช้ฟังก์ชัน lm() เพื่อปรับเปลี่ยนโมเดลนี้ได้:

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

#view summary of model
summary(fit)

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

Residuals:
    Min 1Q Median 3Q Max 
-5.8366 -2.0875 0.1381 2.0652 4.6381 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 72.7393 3.9455 18.436 3.42e-07 ***
hours 5.8093 1.1161 5.205 0.00125 ** 
prac_exams 0.3346 0.9369 0.357 0.73150    
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.59 on 7 degrees of freedom
Multiple R-squared: 0.8004, Adjusted R-squared: 0.7434 
F-statistic: 14.03 on 2 and 7 DF, p-value: 0.003553

ตอนนี้ สมมติว่าเราต้องการทดสอบว่าค่าสัมประสิทธิ์ ชั่วโมง และ prac_exams เป็นศูนย์ทั้งคู่หรือไม่

เราสามารถใช้ฟังก์ชัน LinearHypothesis() เพื่อทำสิ่งนี้:

 library (car)

#perform hypothesis test for hours=0 and prac_exams=0
linearHypothesis(fit, c(" hours=0 ", " prac_exams=0 "))

Linear hypothesis testing

Hypothesis:
hours = 0
prac_exams = 0

Model 1: restricted model
Model 2: score ~ hours + prac_exams

  Res.Df RSS Df Sum of Sq F Pr(>F)   
1 9 452.10                                
2 7 90.24 2 361.86 14.035 0.003553 **
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

การทดสอบสมมติฐานจะส่งกลับค่าต่อไปนี้:

  • สถิติการทดสอบ F : 14.035
  • ค่า p : .003553

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

  • H 0 : ค่าสัมประสิทธิ์การถดถอยทั้งสองมีค่าเท่ากับศูนย์
  • H A : อย่างน้อยหนึ่งสัมประสิทธิ์การถดถอยไม่เท่ากับศูนย์

เนื่องจากค่า p ของการทดสอบ (0.003553) น้อยกว่า 0.05 เราจึงปฏิเสธสมมติฐานว่าง

กล่าวอีกนัยหนึ่ง เราไม่มีหลักฐานเพียงพอที่จะบอกว่าค่าสัมประสิทธิ์การถดถอยสำหรับ ชั่วโมง และ prac_exams มีค่าเท่ากับศูนย์ทั้งคู่

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

บทช่วยสอนต่อไปนี้ให้ข้อมูลเพิ่มเติมเกี่ยวกับการถดถอยเชิงเส้นใน R:

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

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

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