Calculer le R au carré (R-squared)
Maintenant que vous avez calculé la RMSE des prédictions de votre modèle, vous allez examiner la qualité de l'ajustement du modèle aux données : autrement dit, quelle part de la variance il explique. Vous pouvez le faire avec \(R^2\).
Supposons que \(y\) soit la valeur réelle, que \(p\) soit 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 valeur moyenne de \(y\).
La somme résiduelle des carrés d'erreurs du modèle, \(rss\), est : $$ rss = \sum{res^2} $$
\(R^2\) (R au carré), 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\) fourni par glance() (docs). glance() renvoie un tableau de données d'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 tableau de données 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 aussi disponible pour votre usage.
Cette activité fait partie du cours
Apprentissage supervisé en R : régression
Instructions de l’exercice
- Calculez la moyenne de
female_unemploymentet assignez-la à la variablefe_mean. - Calculez la somme totale des carrés et assignez-la à la variable
tss. - Calculez la somme des carrés des résidus et assignez-la à la variable
rss. - Calculez \(R^2\). L'ajustement est-il bon (\(R^2\) près de 1) ?
- Utilisez
glance()pour obtenir le \(R^2\) à partir du modèle. Est-ce identique à votre 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 <- ___(___)$___)