Bestimme R-squared
Nachdem du den RMSE der Vorhersagen deines Modells berechnet hast, untersuchst du nun, wie gut das Modell zu den Daten passt – also wie viel Varianz es erklärt. Das kannst du mit \(R^2\) machen.
Angenommen, \(y\) ist das wahre Ergebnis, \(p\) die Vorhersage des Modells und \(res = y - p\) die Residuen der Vorhersagen.
Dann ist die totale Quadratsumme \(tss\) (‚Gesamtvarianz‘) der Daten:
$$ tss = \sum{(y - \overline{y})^2} $$
wobei \(\overline{y}\) der Mittelwert von \(y\) ist.
Die Residuen-Quadratsumme des Modells, \(rss\), ist: $$ rss = \sum{res^2} $$
\(R^2\) (R-squared), die vom Modell erklärte Varianz, ist dann:
$$ 1 - \frac{rss}{tss} $$
Nachdem du \(R^2\) berechnet hast, vergleichst du deinen Wert mit dem von glance() gemeldeten \(R^2\) (Docs). glance() gibt einen Data Frame mit einer Zeile zurück; für ein lineares Regressionsmodell enthält eine der Spalten das \(R^2\) des Modells auf den Trainingsdaten.
Der Data Frame unemployment wurde für dich geladen und enthält die Spalten predictions und residuals, die du in einer vorherigen Übung berechnet hast. Das unemployment_model steht dir ebenfalls zur Verfügung.
Diese Übung ist Teil des Kurses
<Kurs>Überwachtes Lernen in R: Regression</Kurs>Übungsanweisungen
- Berechne den Mittelwert von
female_unemploymentund weise ihn der Variablenfe_meanzu. - Berechne die totale Quadratsumme und weise sie der Variablen
tsszu. - Berechne die Residuen-Quadratsumme und weise sie der Variablen
rsszu. - Berechne \(R^2\). Ist es ein guter Fit (\(R^2\) nahe 1)?
- Verwende
glance(), um das \(R^2\) aus dem Modell zu erhalten. Ist es dasselbe wie deine Berechnung?
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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 <- ___(___)$___)