如何从r中的lm()函数中提取残差


您可以使用以下语法从 R 中的lm()函数中提取残差

 fit$residuals

此示例假设我们使用lm()函数来拟合线性回归模型并将结果命名为fit

以下示例展示了如何在实践中使用此语法。

相关: 如何从 R 中的 lm() 函数中提取 R 平方

示例:如何从 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 中执行其他常见任务:

如何在 R 中执行简单线性回归
如何在 R 中执行多元线性回归
如何在 R 中创建残差图

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注