Jak uzyskać wartość średniego błędu kwadratu w regresji liniowej w R.

20

Niech model regresji liniowej uzyskany przez funkcję R lm chciałby wiedzieć, czy można to uzyskać za pomocą polecenia Mean Squared Error.

Miałem następujący wynik w przykładzie

> 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

Wiele kwadratów R to błąd sumy kwadratów? jeśli odpowiedź brzmi „nie”, można wyjaśnić znaczenie wielokrotnego kwadratu R i wielokrotnego kwadratu R.

Cyberguille
źródło

Odpowiedzi:

25

Wielokrotność kwadratu R zgłoszonego przez R jest współczynnikiem determinacji podanym we wzorze

R2)=1-S.S.resS.S.brzdąc.

Suma błędów do kwadratu jest podawana (dzięki poprzedniej odpowiedzi ) przez sum(sm$residuals^2).

Średni błąd kwadratowy jest podawany przez mean(sm$residuals^2). Możesz napisać funkcję do obliczenia tego, np .:

mse <- function(sm) 
    mean(sm$residuals^2)
fbt
źródło
5
+1. Innym rozwiązaniem, opartym tylko na tym, co widać na wydruku , jest sm$sigma^2 * sm$fstatistic[3]/(1+sum(sm$fstatistic[2:3])). Oznacza to, że z wiersza przedwiecznego odczytujesz i df, aw ostatnim rzędzie policz liczbę parametrów ( ), dając . 58 1 + 1 8,133 2 × 58 / ( 1 + 1 + 58 ) = 64,578,133581+18,1332)×58/(1+1+58)=64,57
whuber
6
Antepenultimate to świetne słowo.
fbt
1
Jak zwykle, znacznie ładniejszym sposobem jest pisaniemse <- function(sm) mean(sm$residuals^2)
Marius Hofert
4
> Czy nie oznacza to, że średni błąd kwadratowy jest podawany przez reszty ^ 2 / błąd df z tabeli ANOVA zamiast średniej (reszty ^ 2). Ta ostatnia jest średnim kwadratem błędu prognozowania. Nie jestem pewien, czy brakuje mi zrozumienia. Niestety nie mam wystarczającej liczby punktów reputacji, aby opublikować komentarz.
SrikanthRaja
1
Ale zgadzam się z tym, co powiedział użytkownik45409. Zgodnie z tym, czego się nauczyłem, MSE = resztki ^ 2 / błąd df.
vtshen