如何在R的线性回归中获得均方误差的值


20

让由R函数lm获得的线性回归模型想知道是否可以通过均方误差命令获得。

我有一个示例的以下输出

> lm <- lm(MuscleMAss~Age,data)
> sm<-summary(lm)
> sm

Call:
lm(formula = MuscleMAss ~ Age, data = data)

Residuals:
     Min       1Q   Median       3Q      Max 
-16.1368  -6.1968  -0.5969   6.7607  23.4731 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 156.3466     5.5123   28.36   <2e-16 ***
Age          -1.1900     0.0902  -13.19   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Residual standard error: 8.173 on 58 degrees of freedom
Multiple R-squared:  0.7501,    Adjusted R-squared:  0.7458 
F-statistic: 174.1 on 1 and 58 DF,  p-value: < 2.2e-16

多个R平方和是平方和误差吗?如果答案为否,则可以解释“多重R平方”和“多重R平方”的含义

Answers:


25

R报告的多个R平方是确定系数,由公式给出

R2=1SSresSStot.

平方误差的总和由给出(由于先前的答案sum(sm$residuals^2)

均方误差由给出mean(sm$residuals^2)。您可以编写一个函数来计算此值,例如:

mse <- function(sm) 
    mean(sm$residuals^2)

5
+1。仅基于输出中可见的另一种解决方案是sm$sigma^2 * sm$fstatistic[3]/(1+sum(sm$fstatistic[2:3]))。也就是说,从行中读取和 df,并在最后一行中计数参数的数量(),。8.173581+18.1732×58/(1+1+58)=64.57
ub

6
倒数第二个是一个好词。
fbt

1
像往常一样,更整洁的方式是写作mse <- function(sm) mean(sm$residuals^2)
Marius Hofert

4
>不是由ANOVA表中的残差^ 2 /误差df给出均方误差,而不是均值(残差^ 2)。后者是平均预测误差平方。不知道我是否缺少一些了解。抱歉,我没有足够的声誉积分来发表评论。
SrikanthRaja

1
但是我同意user45409所说的。据我了解,MSE =残差^ 2 /误差df。
vtshen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.