R中的lm()回归的summary()中“残余标准误差”的含义是什么?

时间:2019-07-31 12:25:41

标签: r regression lm

当我使用R来运行lm()回归时,我从summary()中获得了“残余标准误差”。为什么每个观察值只有一个残留标准误差值而不是残留标准误差列表?

summary()中显示的该值的含义是什么? summary()中显示的“残留标准误差”是否为每个观察值的残留标准误差列表的平均值?谢谢。

Residual standard error: 0.8498 on 44848 degrees of freedom
  (7940 observations deleted due to missingness)
Multiple R-squared:  0.4377,    Adjusted R-squared:  0.4375

1 个答案:

答案 0 :(得分:7)

残差标准误差是线性模型残差变化的量度。其平方用于F检验的分母,用于评估模型的拟合度。可以使用sigma

直接检索
fm <- lm(mpg ~., mtcars)
sigma(fm)
## [1] 2.650197

或推导如下(假设所有系数都不为NA)

sqrt(deviance(fm) / (nobs(fm) - length(coef(fm))))
## [1] 2.650197

这里deviance(fm)给出残差的平方和:

deviance(fm)
## [1] 147.4944

sum(resid(fm)^2)  # same
## [1] 147.4944

残留标准误差也显示在summary的输出中:

summary(fm)
# ...snip...
## Residual standard error: 2.65 on 21 degrees of freedom
## Multiple R-squared:  0.869,     Adjusted R-squared:  0.8066 
## F-statistic: 13.93 on 10 and 21 DF,  p-value: 3.793e-07

F值

F统计量将拟合值的变异性(在其分子中)与残差的变异性(在其分母中)进行比较。对于残差部分的可变性,它使用残差标准误差sigma(fm)的平方。对于具有截距的模型,可以如下计算。

# F value shown in summary

num <- sum( (fitted(fm) - mean(fitted(fm)))^2 ) / (length(coef(fm)) - 1) 
den <- sigma(fm)^2
num / den
# [1] 13.93246

特殊情况-仅拦截模型

在仅截距模型的特殊情况下,残差标准误差等于残差的标准偏差,但通常它们不相等。

# for intercept only model residual standard error equals sd(residuals)

fm0 <- lm(mpg ~ 1, mtcars)
sigma(fm0)
## [1] 6.026948

sd(resid(fm0))
## [1] 6.026948