Aan de slagGa gratis aan de slag

R-squared berekenen

Nu je de RMSE van de voorspellingen van je model hebt berekend, ga je onderzoeken hoe goed het model op de data past: met andere woorden, hoeveel variantie het verklaart. Dat kan met \(R^2\).

Stel dat \(y\) de echte uitkomst is, \(p\) de voorspelling van het model, en \(res = y - p\) de residuen van de voorspellingen zijn.

Dan is de total sum of squares \(tss\) ("totale variantie") van de data:

$$ tss = \sum{(y - \overline{y})^2} $$

waarbij \(\overline{y}\) de gemiddelde waarde van \(y\) is.

De residual sum of squared errors van het model, \(rss\), is: $$ rss = \sum{res^2} $$

\(R^2\) (R-squared), de "verklaarde variantie" door het model, is dan:

$$ 1 - \frac{rss}{tss} $$

Nadat je \(R^2\) hebt berekend, vergelijk je jouw uitkomst met de \(R^2\) die wordt gerapporteerd door glance() (docs). glance() geeft een data frame met één rij terug; voor een lineair regressiemodel is een van de kolommen de \(R^2\) van het model op de trainingsdata.

Het unemployment-data frame is voor je geladen en bevat de kolommen predictions en residuals die je in een vorige oefening hebt berekend. Het unemployment_model is ook beschikbaar om te gebruiken.

Deze oefening maakt deel uit van de cursus

Supervised Learning in R: Regressie

Cursus bekijken

Oefeninstructies

  • Bereken het gemiddelde van female_unemployment en ken dit toe aan de variabele fe_mean.
  • Bereken de total sum of squares en ken dit toe aan de variabele tss.
  • Bereken de residual sum of squares en ken dit toe aan de variabele rss.
  • Bereken \(R^2\). Is dit een goede fit (\(R^2\) dicht bij 1)?
  • Gebruik glance() om \(R^2\) uit het model te halen. Is dit hetzelfde als wat jij hebt berekend?

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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 <- ___(___)$___)
Code bewerken en uitvoeren