Как получить значение среднеквадратичной ошибки в линейной регрессии в R


20

Пусть модель линейной регрессии, полученная функцией R lm, хотела бы знать, можно ли ее получить с помощью команды Mean Squared Error.

У меня был СЛЕДУЮЩИЙ вывод примера

> 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-квадрат»

Ответы:


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])). То есть из предпоследнего ряда вы зачитали и58 1 + 18.17358 df и в последней строке подсчитываете количество параметров ( ), давая1+18.1732×58/(1+1+58)=64.57

6
Antepenultimate это отличное слово.
февраля

1
Как обычно, гораздо более аккуратный способ написатьmse <- function(sm) mean(sm$residuals^2)
Мариус Хоферт

4
> Разве это не означает, что среднеквадратическая ошибка определяется остатками ^ 2 / ошибкой df из таблицы ANOVA вместо среднего (остатки ^ 2). Последнее является средним квадратом ошибки предсказания. Не уверен, что мне не хватает понимания. Извините, у меня недостаточно очков репутации, чтобы оставить комментарий.
SrikanthRaja

1
Но я согласен с тем, что сказал пользователь 45409. Согласно тому, что я узнал, MSE = остатки ^ 2 / ошибка df.
Втшен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.