CommencerCommencez gratuitement

Calculer R-squared

Maintenant que vous avez calculé la RMSE des prédictions de votre modèle, vous allez examiner la qualité de l’ajustement : autrement dit, quelle part de la variance est expliquée par le modèle. Vous pouvez le faire avec \(R^2\).

Supposons que \(y\) soit la valeur réelle, \(p\) la prédiction du modèle, et que \(res = y - p\) soient les résidus des prédictions.

La somme totale des carrés \(tss\) (« variance totale ») des données est :

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

où \(\overline{y}\) est la moyenne de \(y\).

La somme des carrés des erreurs résiduelles du modèle, \(rss\), est : $$ rss = \sum{res^2} $$

\(R^2\) (R-squared), la « variance expliquée » par le modèle, est alors :

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

Après avoir calculé \(R^2\), vous comparerez votre résultat avec le \(R^2\) reporté par glance() (docs). glance() renvoie un data frame à une seule ligne ; pour un modèle de régression linéaire, l’une des colonnes retournées est le \(R^2\) du modèle sur les données d’entraînement.

Le data frame unemployment a été chargé pour vous et contient les colonnes predictions et residuals que vous avez calculées dans un exercice précédent. L’objet unemployment_model est également disponible.

Cet exercice fait partie du cours

<cours>Apprentissage supervisé en R : Régression</cours>
Voir le cours

Instructions de l’exercice

  • Calculez la moyenne de female_unemployment et affectez-la à la variable fe_mean.
  • Calculez la somme totale des carrés et affectez-la à la variable tss.
  • Calculez la somme des carrés des résidus et affectez-la à la variable rss.
  • Calculez \(R^2\). L’ajustement est-il bon (\(R^2\) proche de 1) ?
  • Utilisez glance() pour obtenir le \(R^2\) du modèle. Est-il identique à celui que vous avez calculé ?

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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 <- ___(___)$___)
Modifier et exécuter le code