Hitung R-squared
Sekarang setelah Anda menghitung RMSE dari prediksi model Anda, Anda akan menilai seberapa baik model menyesuaikan data: yaitu, seberapa besar ragam yang dijelaskan model. Anda dapat melakukannya menggunakan \(R^2\).
Misalkan \(y\) adalah nilai keluaran sebenarnya, \(p\) adalah prediksi dari model, dan \(res = y - p\) adalah residual dari prediksi.
Kemudian jumlah kuadrat total \(tss\) ("total variance") dari data adalah:
$$ tss = \sum{(y - \overline{y})^2} $$
di mana \(\overline{y}\) adalah nilai rata-rata dari \(y\).
Jumlah kuadrat galat residual model, \(rss\) adalah: $$ rss = \sum{res^2} $$
\(R^2\) (R-squared), yaitu "ragam yang dijelaskan" oleh model, adalah:
$$ 1 - \frac{rss}{tss} $$
Setelah Anda menghitung \(R^2\), Anda akan membandingkan hasil perhitungan Anda dengan \(R^2\) yang dilaporkan oleh glance() (docs). glance() mengembalikan data frame satu baris; untuk model regresi linear, salah satu kolom yang dikembalikan adalah \(R^2\) model pada data pelatihan.
Data frame unemployment telah dimuat untuk Anda, dan berisi kolom predictions dan residuals yang Anda hitung pada latihan sebelumnya. unemployment_model juga tersedia untuk Anda gunakan.
Latihan ini adalah bagian dari kursus
Supervised Learning di R: Regresi
Petunjuk latihan
- Hitung rata-rata
female_unemploymentdan tetapkan ke variabelfe_mean. - Hitung jumlah kuadrat total dan tetapkan ke variabel
tss. - Hitung jumlah kuadrat residual dan tetapkan ke variabel
rss. - Hitung \(R^2\). Apakah modelnya sesuai dengan baik (\(R^2\) mendekati 1)?
- Gunakan
glance()untuk mendapatkan \(R^2\) dari model. Apakah sama dengan yang Anda hitung?
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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 <- ___(___)$___)