Zacznij terazZacznij za darmo

Obliczanie R-kwadrat

Teraz, gdy obliczyłeś(-aś) RMSE dla predykcji swojego modelu, sprawdzisz, jak dobrze model dopasowuje się do danych – innymi słowy, ile wariancji wyjaśnia. Możesz to zrobić za pomocą \(R^2\).

Załóżmy, że \(y\) to prawdziwa wartość wynikowa, \(p\) to predykcja modelu, a \(res = y - p\) to reszty predykcji.

Całkowita suma kwadratów \(tss\) ("całkowita wariancja") danych wynosi:

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

gdzie \(\overline{y}\) to średnia wartość \(y\).

Suma kwadratów reszt modelu, \(rss\), wynosi: $$ rss = \sum{res^2} $$

\(R^2\) (R-kwadrat), czyli "wyjaśniona wariancja" przez model, to:

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

Po obliczeniu \(R^2\) porównasz uzyskany wynik z wartością \(R^2\) zwróconą przez glance() (dokumentacja). Funkcja glance() zwraca ramkę danych z jednym wierszem; dla modelu regresji liniowej jedną z kolumn jest \(R^2\) modelu na danych treningowych.

Ramka danych unemployment została już wczytana i zawiera kolumny predictions oraz residuals obliczone w poprzednim ćwiczeniu. Do dyspozycji masz również unemployment_model.

To ćwiczenie jest częścią kursu

Nadzorowane uczenie maszynowe w R: regresja

Zobacz kurs

Instrukcje do ćwiczenia

  • Oblicz średnią zmiennej female_unemployment i przypisz ją do zmiennej fe_mean.
  • Oblicz całkowitą sumę kwadratów i przypisz ją do zmiennej tss.
  • Oblicz sumę kwadratów reszt i przypisz ją do zmiennej rss.
  • Oblicz \(R^2\). Czy to dobre dopasowanie (\(R^2\) bliskie 1)?
  • Użyj funkcji glance(), aby uzyskać \(R^2\) z modelu. Czy wynik jest taki sam jak obliczony przez ciebie?

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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 <- ___(___)$___)
Edytuj i uruchom kod