在R中计算MSS和RSS:需关注glm模型输出的哪些部分?
嘿,我来帮你理清楚怎么从这个高斯GLM模型里算出MSS(回归平方和)和RSS(残差平方和)~
首先得提一句:你用family=gaussian的GLM,其实和普通线性回归lm()的核心逻辑完全一致,所以计算方法可以直接沿用线性回归的思路,不用搞复杂的广义线性模型特殊处理。
一、直接调用模型组件是最高效的方式
你不用死盯着打印出来的输出,直接提取模型内置的组件就行:
- 残差数组(
model.1$residuals):RSS就是所有残差的平方和,一行代码就能算:sum(model.1$residuals^2)。 - 拟合值数组(
model.1$fitted.values):MSS是拟合值与因变量总均值的差的平方和。先算出因变量的总均值mean(wbw.df$x.percap),然后计算:sum((model.1$fitted.values - mean(wbw.df$x.percap))^2)。
二、打印输出里可以参考的验证点
看你给出的示例输出,有这些地方能帮你验证计算结果:
- Deviance Residuals:这里给出的残差极值(Min/Max/四分位数),其实就是高斯GLM的普通残差(和线性回归残差完全一样),可以快速判断残差的分布范围,不过要计算RSS还是得用完整的残差数组。
- 如果你跑
summary(model.1),还会看到Residual standard error,它的平方乘以残差自由度(样本量减去参数个数)就是RSS,也就是(summary(model.1)$sigma)^2 * summary(model.1)$df.residual,可以用来核对你手动算的RSS对不对。
偷懒小技巧
不想手动计算的话,直接跑anova(model.1)就行!这个方差分析表会直接给出Sum Sq列,其中第一行就是回归平方和(MSS),第二行就是残差平方和(RSS),直接读数值就好,省事儿得很~
内容的提问来源于stack exchange,提问作者Mary
相关产品推荐
相关产品推荐

