Beräkna R-kvadrat
Nu när du har beräknat RMSE för modellens förutsägelser ska du undersöka hur väl modellen passar data – det vill säga hur mycket varians den förklarar. Det gör du med hjälp av \(R^2\).
Anta att \(y\) är det verkliga utfallet, \(p\) är modellens förutsägelse och \(res = y - p\) är förutsägelsernas residualer.
Den totala kvadratsumman \(tss\) ("total varians") för data är:
$$ tss = \sum{(y - \overline{y})^2} $$
där \(\overline{y}\) är medelvärdet av \(y\).
Modellens residuala kvadratsumma \(rss\) är: $$ rss = \sum{res^2} $$
\(R^2\) (R-kvadrat), den varians som förklaras av modellen, beräknas sedan som:
$$ 1 - \frac{rss}{tss} $$
När du har beräknat \(R^2\) jämför du ditt resultat med det \(R^2\)-värde som glance() rapporterar (docs). glance() returnerar en dataram med en rad; för en linjär regressionsmodell är en av kolumnerna modellens \(R^2\) på träningsdata.
Dataramen unemployment är inläst och innehåller kolumnerna predictions och residuals som du beräknade i en tidigare övning. unemployment_model är också tillgänglig att använda.
Den här övningen är en del av kursen
Övervakad inlärning i R: Regression
Övningsinstruktioner
- Beräkna medelvärdet för
female_unemploymentoch tilldela det till variabelnfe_mean. - Beräkna den totala kvadratsumman och tilldela den till variabeln
tss. - Beräkna den residuala kvadratsumman och tilldela den till variabeln
rss. - Beräkna \(R^2\). Är det en bra anpassning (\(R^2\) nära 1)?
- Använd
glance()för att hämta \(R^2\) från modellen. Stämmer det överens med ditt beräknade värde?
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# unemployment is available
summary(unemployment)
# unemployment_model is available
summary(unemployment_model)
# Calculate and print the mean female_unemployment: fe_mean
(fe_mean <- ___)
# Calculate and print the total sum of squares: tss
(tss <- ___((___ - ___)^2))
# Calculate and print residual sum of squares: rss
(rss <- ___)
# Calculate and print the R-squared: rsq
(rsq <- ___)
# Get R-squared from glance and print it
(rsq_glance <- ___(___)$___)