如何从r中的lm()函数中提取残差
fit$residuals
此示例假设我们使用lm()函数来拟合线性回归模型并将结果命名为fit 。
以下示例展示了如何在实践中使用此语法。
示例:如何从 R 中的 lm() 中提取残差
假设我们在 R 中有以下数据框,其中包含有关 10 名篮球运动员的上场时间、犯规总数和总得分的信息:
#create data frame df <- data. frame (minutes=c(5, 10, 13, 14, 20, 22, 26, 34, 38, 40), fouls=c(5, 5, 3, 4, 2, 1, 3, 2, 1, 1), points=c(6, 8, 8, 7, 14, 10, 22, 24, 28, 30)) #view data frame df minutes fouls points 1 5 5 6 2 10 5 8 3 13 3 8 4 14 4 7 5 20 2 14 6 22 1 10 7 26 3 22 8 34 2 24 9 38 1 28 10 40 1 30
假设我们要拟合以下多元线性回归模型:
积分 = β 0 + β 1 (分钟)+ β 2 (犯规)
我们可以使用lm()函数来拟合这个回归模型:
#fit multiple linear regression model
fit <- lm(points ~ minutes + fouls, data=df)
然后我们可以输入fit$residuals从模型中提取残差:
#extract residuals from model
fit$residuals
1 2 3 4 5 6 7
2.0888729 -0.7982137 0.6371041 -3.5240982 1.9789676 -1.7920822 1.9306786
8 9 10
-1.7048752 0.5692404 0.6144057
由于我们的数据库中总共有 10 个观测值,因此有 10 个残差——每个观测值一个。
例如:
- 第一个观测值的残差为2,089 。
- 第二个观测值的残差为-0.798 。
- 第三个观测值的残差为0.637 。
等等。
如果我们愿意,我们可以根据拟合值创建残差图:
#store residuals in variable
res <- fit$residuals
#produce residual vs. fitted plot
plot(fitted(fit), res)
#add a horizontal line at 0
abline(0,0)
x 轴显示拟合值,y 轴显示残差。
理想情况下,残差应随机分散在零附近,没有明确的模式,以确保满足同方差假设。
在上面的残差图中,我们可以看到残差似乎随机分散在零附近,没有明确的模式,这意味着很可能满足同方差性假设。
其他资源
以下教程解释了如何在 R 中执行其他常见任务: