如何在 r 中使用 linearhypothesis() 函数
您可以使用 R 中的car包中的LinearHypothesis()函数来测试特定回归模型中的线性假设。
该函数使用以下基本语法:
linearHypothesis(fit, c(" var1=0 ", " var2=0 "))
此特定示例测试名为fit的模型中的回归系数var1和var2是否共同等于 0。
下面的例子展示了如何在实际中使用这个功能。
示例:如何在 R 中使用 LinearHypothesis() 函数
假设我们在 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 :至少有一个回归系数不等于0。
由于检验的 p 值 (0.003553) 小于 0.05,因此我们拒绝原假设。
换句话说,我们没有足够的证据表明hours和prac_exams的回归系数都等于 0。
其他资源
以下教程提供了有关 R 中线性回归的更多信息:
如何解释 R 中的回归输出
如何在 R 中执行简单线性回归
如何在 R 中执行多元线性回归
如何在 R 中执行逻辑回归