Cet exemple est tiré de “Weight, Shape, and Body Image” de David C. Howell basé sur un article de Geller, Johnston, and Madsen (1997). Pour plus d’information, se référer à la site

https://www.uvm.edu/~dhowell/StatPages/More_Stuff/Geller.html

Dans cet article, le but des auteurs était de montrer chez les femmes que la variable SAWBS (Shape And Weight Based Self-esteem inventory) a un rôle dans la prévision d’un dérèglement du comportement de l’alimention, rôle indépendant des variables traditionnellement mises en cause dans ce comportement telles que la dépression, l’estime de soi.

Il est important de remarque que certaines données confidentielles ont été simulées et de ce fait, certaines observations tombent en dehors des échelles décrites précédemment.

  1. Télécharger le fichier “image-corp orelle.sta”. Ensuite, lire les données à l’aide des commande suivantes.
library(tidyverse)
library(haven)

geller <- read_sav("geller.sav") 

geller<- geller %>%
  select(SAWBS, WTPERCEP, SHPERCEP, HIQ, EDICOMP, RSES, BDI, BMI,
         SES, SOCDESIR)

Pour 5 individus tirés au hassard on a les résultats suivants :

SAWBS WTPERCEP SHPERCEP HIQ EDICOMP RSES BDI BMI SES SOCDESIR
26.76321 3.238264 4.406230 22.02026 37.214992 24.81287 15.46956 24.24569 3.862902 4.595422
98.63641 2.889606 4.084519 26.14838 27.709866 39.50574 12.44680 25.15674 3.661930 5.499366
24.68410 3.916215 6.976841 4.76363 1.388529 40.47917 3.25423 17.52358 3.375245 4.044148
18.53903 2.082626 3.648452 23.96958 28.854626 19.78713 19.82254 20.69638 2.993534 4.928578
45.58275 2.694655 3.191208 21.43159 35.749118 34.85283 17.77867 22.20774 1.983610 6.872226
  1. Quel est le problème métier (donner votre point de vu) ? Expliquer le problème.

  2. Faire un résumé statistique des variables.

  3. Determiner la matrice de correlation. Indiquer pour quels couples de variables la corrélation linéaire observée est la plus forte, la plus faible.

cor(geller)
##               SAWBS     WTPERCEP    SHPERCEP        HIQ    EDICOMP
## SAWBS     1.0000000 -0.392986544 -0.38554609  0.6148989  0.6148040
## WTPERCEP -0.3929865  1.000000000  0.55918217 -0.5647282 -0.6058690
## SHPERCEP -0.3855461  0.559182173  1.00000000 -0.5545290 -0.6666236
## HIQ       0.6148989 -0.564728178 -0.55452896  1.0000000  0.8573033
## EDICOMP   0.6148040 -0.605869002 -0.66662361  0.8573033  1.0000000
## RSES     -0.3782735  0.384069363  0.41730498 -0.6091755 -0.6811723
## BDI       0.4237300 -0.451311721 -0.47321606  0.6561389  0.7112063
## BMI       0.1655860 -0.613539081 -0.32381777  0.2187979  0.2373463
## SES      -0.1337776  0.003998554  0.14444842 -0.1787942 -0.1794239
## SOCDESIR -0.1259327  0.229403840 -0.06756414 -0.3564030 -0.1663819
##                 RSES         BDI          BMI          SES     SOCDESIR
## SAWBS    -0.37827350  0.42372999  0.165586026 -0.133777562 -0.125932665
## WTPERCEP  0.38406936 -0.45131172 -0.613539081  0.003998554  0.229403840
## SHPERCEP  0.41730498 -0.47321606 -0.323817774  0.144448419 -0.067564140
## HIQ      -0.60917554  0.65613891  0.218797947 -0.178794161 -0.356402996
## EDICOMP  -0.68117229  0.71120626  0.237346335 -0.179423939 -0.166381903
## RSES      1.00000000 -0.79451666 -0.059890388  0.176216673  0.260726530
## BDI      -0.79451666  1.00000000  0.085142060 -0.250702543 -0.329993486
## BMI      -0.05989039  0.08514206  1.000000000  0.015114471 -0.004806435
## SES       0.17621667 -0.25070254  0.015114471  1.000000000  0.157404480
## SOCDESIR  0.26072653 -0.32999349 -0.004806435  0.157404480  1.000000000
  1. Que peut-on dire de la corrélation linéaire entre EDICOMP et SOCDESIR ? Faire un test d’independence entre les variables (sans oublier d’ecrires les hypothèses du test H0 et H1) Que peut-t-on conclure au risque 5% ?

  2. Pour répondre au problème initial, que peut-on choisir comme VI et VD ?

  3. Ajuster des modèles de régression linéaire multiple expliquant EDICOMP (ou HIQ) en fonction des autres variables.

Dans la suite on va prendre comme variable dépendente la variable EDICOMP.

modele_complet <- lm(EDICOMP ~., data = geller)

coef(modele_complet)
## (Intercept)       SAWBS    WTPERCEP    SHPERCEP         HIQ        RSES 
## 31.45042840  0.03654563 -3.34338430 -2.11656722  1.00807400 -0.32658088 
##         BDI         BMI         SES    SOCDESIR 
##  0.29130837 -0.23129150 -0.25985114  1.18243392
summary(modele_complet)
## 
## Call:
## lm(formula = EDICOMP ~ ., data = geller)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -17.8953  -4.4565   0.4495   4.3600  14.2528 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 31.45043   15.80991   1.989   0.0504 .  
## SAWBS        0.03655    0.02201   1.660   0.1011    
## WTPERCEP    -3.34338    1.90500  -1.755   0.0834 .  
## SHPERCEP    -2.11657    0.95126  -2.225   0.0291 *  
## HIQ          1.00807    0.15330   6.576 6.01e-09 ***
## RSES        -0.32658    0.16357  -1.997   0.0496 *  
## BDI          0.29131    0.20441   1.425   0.1583    
## BMI         -0.23129    0.34195  -0.676   0.5009    
## SES         -0.25985    0.84497  -0.308   0.7593    
## SOCDESIR     1.18243    0.48111   2.458   0.0163 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.254 on 74 degrees of freedom
## Multiple R-squared:  0.8468, Adjusted R-squared:  0.8282 
## F-statistic: 45.45 on 9 and 74 DF,  p-value: < 2.2e-16
  1. Enlever la variable SES et faire une régression. Que peut-t-on dire ?
modele1 <- lm(EDICOMP ~. - SES, data = geller)
summary(modele1)
## 
## Call:
## lm(formula = EDICOMP ~ . - SES, data = geller)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -18.0067  -4.4936   0.1742   4.3825  14.5075 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 30.39181   15.33718   1.982   0.0512 .  
## SAWBS        0.03688    0.02185   1.688   0.0956 .  
## WTPERCEP    -3.23102    1.85831  -1.739   0.0862 .  
## SHPERCEP    -2.15309    0.93810  -2.295   0.0245 *  
## HIQ          1.00832    0.15237   6.617  4.8e-09 ***
## RSES        -0.32447    0.16244  -1.998   0.0494 *  
## BDI          0.30110    0.20070   1.500   0.1377    
## BMI         -0.22421    0.33911  -0.661   0.5105    
## SOCDESIR     1.16228    0.47374   2.453   0.0165 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.21 on 75 degrees of freedom
## Multiple R-squared:  0.8466, Adjusted R-squared:  0.8303 
## F-statistic: 51.75 on 8 and 75 DF,  p-value: < 2.2e-16
  1. Faire un Anova et comparer les modeles. Le quel on choisi au risque 5% ?
anova(modele_complet, modele1)
## Analysis of Variance Table
## 
## Model 1: EDICOMP ~ SAWBS + WTPERCEP + SHPERCEP + HIQ + RSES + BDI + BMI + 
##     SES + SOCDESIR
## Model 2: EDICOMP ~ (SAWBS + WTPERCEP + SHPERCEP + HIQ + RSES + BDI + BMI + 
##     SES + SOCDESIR) - SES
##   Res.Df    RSS Df Sum of Sq      F Pr(>F)
## 1     74 3893.9                           
## 2     75 3898.9 -1   -4.9765 0.0946 0.7593
  1. Faire la selection de modèles (type pas à pas avec un critère AIC) . Choisir un “bon” modèle.
library(MASS) 
## 
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
## 
##     select
selection <- stepAIC(modele_complet,direction="backward")
## Start:  AIC=342.25
## EDICOMP ~ SAWBS + WTPERCEP + SHPERCEP + HIQ + RSES + BDI + BMI + 
##     SES + SOCDESIR
## 
##            Df Sum of Sq    RSS    AIC
## - SES       1      4.98 3898.9 340.36
## - BMI       1     24.07 3918.0 340.77
## <none>                  3893.9 342.25
## - BDI       1    106.87 4000.8 342.53
## - SAWBS     1    145.08 4039.0 343.33
## - WTPERCEP  1    162.08 4056.0 343.68
## - RSES      1    209.76 4103.7 344.66
## - SHPERCEP  1    260.51 4154.4 345.69
## - SOCDESIR  1    317.85 4211.8 346.85
## - HIQ       1   2275.25 6169.2 378.91
## 
## Step:  AIC=340.36
## EDICOMP ~ SAWBS + WTPERCEP + SHPERCEP + HIQ + RSES + BDI + BMI + 
##     SOCDESIR
## 
##            Df Sum of Sq    RSS    AIC
## - BMI       1     22.73 3921.6 338.85
## <none>                  3898.9 340.36
## - BDI       1    117.01 4015.9 340.85
## - SAWBS     1    148.07 4047.0 341.49
## - WTPERCEP  1    157.15 4056.1 341.68
## - RSES      1    207.42 4106.3 342.72
## - SHPERCEP  1    273.85 4172.7 344.06
## - SOCDESIR  1    312.91 4211.8 344.85
## - HIQ       1   2276.43 6175.3 376.99
## 
## Step:  AIC=338.85
## EDICOMP ~ SAWBS + WTPERCEP + SHPERCEP + HIQ + RSES + BDI + SOCDESIR
## 
##            Df Sum of Sq    RSS    AIC
## <none>                  3921.6 338.85
## - BDI       1    130.51 4052.1 339.60
## - WTPERCEP  1    145.32 4066.9 339.91
## - SAWBS     1    149.63 4071.3 339.99
## - RSES      1    215.16 4136.8 341.34
## - SHPERCEP  1    269.03 4190.7 342.42
## - SOCDESIR  1    300.74 4222.4 343.06
## - HIQ       1   2291.35 6213.0 375.50
summary(selection)
## 
## Call:
## lm(formula = EDICOMP ~ SAWBS + WTPERCEP + SHPERCEP + HIQ + RSES + 
##     BDI + SOCDESIR, data = geller)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -18.1804  -4.4922   0.1072   4.6953  14.3712 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 23.23209   10.82117   2.147   0.0350 *  
## SAWBS        0.03707    0.02177   1.703   0.0927 .  
## WTPERCEP    -2.50313    1.49158  -1.678   0.0974 .  
## SHPERCEP    -2.13293    0.93413  -2.283   0.0252 *  
## HIQ          1.01121    0.15175   6.664 3.75e-09 ***
## RSES        -0.33002    0.16162  -2.042   0.0446 *  
## BDI          0.31599    0.19869   1.590   0.1159    
## SOCDESIR     1.13518    0.47021   2.414   0.0182 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.183 on 76 degrees of freedom
## Multiple R-squared:  0.8457, Adjusted R-squared:  0.8315 
## F-statistic: 59.52 on 7 and 76 DF,  p-value: < 2.2e-16
library("ggfortify") #autoplot (graphiques des residus)

autoplot(selection,2:3)

  1. Installer la librarie leaps. Taper les commandes suivantes. Commenter les graphiques
library(leaps) # Selection de modeles
## Warning: package 'leaps' was built under R version 3.5.3
selection <- regsubsets(EDICOMP ~ ., data = geller)
plot(selection,scale="bic")

plot(selection,scale="adjr2")