IniziaInizia gratis

Calcolare R-squared

Ora che hai calcolato l'RMSE delle previsioni del tuo modello, verificherai quanto bene il modello si adatta ai dati: in altre parole, quanta varianza spiega. Puoi farlo usando \(R^2\).

Supponiamo che \(y\) sia il valore reale dell'output, \(p\) la previsione del modello e \(res = y - p\) i residui delle previsioni.

Allora la somma totale dei quadrati \(tss\) ("varianza totale") dei dati è:

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

dove \(\overline{y}\) è il valore medio di \(y\).

La somma dei quadrati dei residui del modello, \(rss\), è: $$ rss = \sum{res^2} $$

\(R^2\) (R-squared), la "varianza spiegata" dal modello, è quindi:

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

Dopo aver calcolato \(R^2\), confronterai il valore ottenuto con l'\(R^2\) riportato da glance() (docs). glance() restituisce un data frame con una sola riga; per un modello di regressione lineare, una delle colonne restituite è l'\(R^2\) del modello sui dati di training.

Il data frame unemployment è stato caricato per te e contiene le colonne predictions e residuals che hai calcolato in un esercizio precedente. Anche unemployment_model è a tua disposizione.

Questo esercizio fa parte del corso

Supervised Learning in R: Regression

Visualizza il corso

Istruzioni dell'esercizio

  • Calcola la media di female_unemployment e assegnala alla variabile fe_mean.
  • Calcola la somma totale dei quadrati e assegnala alla variabile tss.
  • Calcola la somma dei quadrati dei residui e assegnala alla variabile rss.
  • Calcola \(R^2\). È un buon fit (con \(R^2\) vicino a 1)?
  • Usa glance() per ottenere l'\(R^2\) dal modello. È uguale a quello che hai calcolato tu?

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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 <- ___(___)$___)
Modifica ed esegui il codice