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 jey ) 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 = Σ(ŷ jey ) 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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *