当我使用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
答案 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统计量将拟合值的变异性(在其分子中)与残差的变异性(在其分母中)进行比较。对于残差部分的可变性,它使用残差标准误差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