Comment calculer SST, SSR et SSE dans R
Nous utilisons souvent trois valeurs de somme des carrés différentes pour mesurer dans quelle mesure une droite de régression s’adapte réellement à un ensemble de données :
1. Somme des carrés totaux (SST) – La somme des carrés des différences entre les points de données individuels (y i ) et la moyenne de la variable de réponse ( y ).
- SST = Σ(y je – y ) 2
2. Régression de la somme des carrés (SSR) – La somme des carrés des différences entre les points de données prédits (ŷ i ) et la moyenne de la variable de réponse ( y ).
- SSR = Σ(ŷ je – y ) 2
3. Erreur de somme des carrés (SSE) – La somme des carrés des différences entre les points de données prédits (ŷ i ) et les points de données observés (y i ).
- SSE = Σ(ŷ je – y je ) 2
L’exemple étape par étape suivant montre comment calculer chacune de ces métriques pour un modèle de régression donné dans R.
Étape 1 : Créer les données
Tout d’abord, créons un ensemble de données contenant le nombre d’heures étudiées et les résultats des examens obtenus pour 20 étudiants différents dans un collège donné :
#create data frame df <- data.frame(hours=c(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 6, 7, 7, 8), score=c(68, 76, 74, 80, 76, 78, 81, 84, 86, 83, 88, 85, 89, 94, 93, 94, 96, 89, 92, 97)) #view first six rows of data frame head(df) hours score 1 1 68 2 1 76 3 1 74 4 2 80 5 2 76 6 2 78
Étape 2 : Ajuster un modèle de régression
Ensuite, nous utiliserons la fonction lm() pour ajuster un modèle de régression linéaire simple en utilisant le score comme variable de réponse et les heures comme variable prédictive :
#fit regression model model <- lm(score ~ hours, data = df) #view model summary summary(model) Call: lm(formula = score ~ hours, data = df) Residuals: Min 1Q Median 3Q Max -8.6970 -2.5156 -0.0737 3.1100 7.5495 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 73.4459 1.9147 38.360 < 2e-16 *** hours 3.2512 0.4603 7.063 1.38e-06 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 4.289 on 18 degrees of freedom Multiple R-squared: 0.7348, Adjusted R-squared: 0.7201 F-statistic: 49.88 on 1 and 18 DF, p-value: 1.378e-06
Étape 3 : Calculez SST, SSR et SSE
Nous pouvons utiliser la syntaxe suivante pour calculer SST, SSR et SSE :
#find sse sse <- sum((fitted(model) - df$score)^2) sse [1] 331.0749 #find ssr ssr <- sum((fitted(model) - mean(df$score))^2) ssr [1] 917.4751 #find sst sst <- ssr + sse sst [1] 1248.55
Les métriques s’avèrent être :
- Somme des carrés total (SST) : 1248,55
- Régression de la somme des carrés (SSR) : 917,4751
- Erreur de somme des carrés (SSE) : 331,0749
On peut vérifier que SST = SSR + SSE :
- SST = SSR + SSE
- 1248,55 = 917,4751 + 331,0749
Nous pouvons également calculer manuellement le R au carré du modèle de régression :
- R au carré = SSR / SST
- R au carré = 917,4751 / 1248,55
- R au carré = 0,7348
Cela nous indique que 73,48 % de la variation des résultats aux examens peut s’expliquer par le nombre d’heures étudiées.
Ressources additionnelles
Vous pouvez utiliser les calculatrices suivantes pour calculer automatiquement SST, SSR et SSE pour n’importe quelle ligne de régression linéaire simple :
Calculateur SST
Calculateur RSS
Calculateur ESS