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>Instructions de l’exercice
- Calculez la moyenne de
female_unemploymentet affectez-la à la variablefe_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 <- ___(___)$___)