Chapitre 0 : Introduction à la manipulation des fichiers et des variables dans Rstudio

read.csv2() View() names() str()

Chargement fichier / Visualisation / Nom des varirables

Affiche le type de varirables du dataframe

smp <- read.csv2("data/smp2.csv") # chargement du fichier
View(smp)
## names(smp)
str(smp) # affiche le type de varirables du dataframe
## 'data.frame':    799 obs. of  26 variables:
##  $ age         : int  31 49 50 47 23 34 24 52 42 45 ...
##  $ prof        : chr  "autre" NA "prof.intermediaire" "ouvrier" ...
##  $ duree       : int  4 NA 5 NA 4 NA NA 5 4 NA ...
##  $ discip      : int  0 0 0 0 1 0 0 0 1 0 ...
##  $ n.enfant    : int  2 7 2 0 1 3 5 2 1 2 ...
##  $ n.fratrie   : int  4 3 2 6 6 2 3 9 12 5 ...
##  $ ecole       : int  1 2 2 1 1 2 1 2 1 2 ...
##  $ separation  : int  0 1 0 1 1 0 1 0 1 0 ...
##  $ juge.enfant : int  0 0 0 0 NA 0 1 0 1 0 ...
##  $ place       : int  0 0 0 1 1 0 1 0 0 0 ...
##  $ abus        : int  0 0 0 0 0 0 0 0 1 1 ...
##  $ grav.cons   : int  1 2 2 1 2 1 5 1 5 5 ...
##  $ dep.cons    : int  0 0 0 0 1 0 1 0 1 0 ...
##  $ ago.cons    : int  1 0 0 0 0 0 0 0 0 0 ...
##  $ ptsd.cons   : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ alc.cons    : int  0 0 0 0 0 0 0 0 1 1 ...
##  $ subst.cons  : int  0 0 0 0 0 0 1 0 1 0 ...
##  $ scz.cons    : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ char        : int  1 1 1 1 1 1 1 1 4 1 ...
##  $ rs          : int  2 2 2 2 2 1 3 2 3 2 ...
##  $ ed          : int  1 2 3 2 2 2 3 2 3 2 ...
##  $ dr          : int  1 1 2 2 2 1 2 2 1 2 ...
##  $ suicide.s   : int  0 0 0 1 0 0 3 0 4 0 ...
##  $ suicide.hr  : int  0 0 0 0 0 0 1 0 1 0 ...
##  $ suicide.past: int  0 0 0 0 1 0 1 0 1 0 ...
##  $ dur.interv  : int  NA 70 NA 105 NA NA 105 84 78 60 ...

summary() - min()

Résumé numerique pour chacune des variales / Résumé sur une seule variable / Ensemble des obs

summary(smp) # resumé numerique pour chacune des variales
##       age           prof               duree           discip     
##  Min.   :19.0   Length:799         Min.   :1.000   Min.   :0.000  
##  1st Qu.:28.0   Class :character   1st Qu.:4.000   1st Qu.:0.000  
##  Median :37.0   Mode  :character   Median :5.000   Median :0.000  
##  Mean   :38.9                      Mean   :4.302   Mean   :0.232  
##  3rd Qu.:48.0                      3rd Qu.:5.000   3rd Qu.:0.000  
##  Max.   :83.0                      Max.   :5.000   Max.   :1.000  
##  NA's   :2                         NA's   :223     NA's   :6      
##     n.enfant        n.fratrie          ecole         separation    
##  Min.   : 0.000   Min.   : 0.000   Min.   :1.000   Min.   :0.0000  
##  1st Qu.: 0.000   1st Qu.: 2.000   1st Qu.:1.000   1st Qu.:0.0000  
##  Median : 1.000   Median : 3.000   Median :2.000   Median :0.0000  
##  Mean   : 1.755   Mean   : 4.287   Mean   :1.866   Mean   :0.4226  
##  3rd Qu.: 3.000   3rd Qu.: 6.000   3rd Qu.:2.000   3rd Qu.:1.0000  
##  Max.   :13.000   Max.   :21.000   Max.   :5.000   Max.   :1.0000  
##  NA's   :26                        NA's   :5       NA's   :11      
##   juge.enfant         place             abus          grav.cons    
##  Min.   :0.0000   Min.   :0.0000   Min.   :0.0000   Min.   :1.000  
##  1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:2.000  
##  Median :0.0000   Median :0.0000   Median :0.0000   Median :4.000  
##  Mean   :0.2771   Mean   :0.2285   Mean   :0.2778   Mean   :3.643  
##  3rd Qu.:1.0000   3rd Qu.:0.0000   3rd Qu.:1.0000   3rd Qu.:5.000  
##  Max.   :1.0000   Max.   :1.0000   Max.   :1.0000   Max.   :7.000  
##  NA's   :5        NA's   :7        NA's   :7        NA's   :4      
##     dep.cons         ago.cons        ptsd.cons         alc.cons     
##  Min.   :0.0000   Min.   :0.0000   Min.   :0.0000   Min.   :0.0000  
##  1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.0000  
##  Median :0.0000   Median :0.0000   Median :0.0000   Median :0.0000  
##  Mean   :0.3967   Mean   :0.1665   Mean   :0.2165   Mean   :0.1865  
##  3rd Qu.:1.0000   3rd Qu.:0.0000   3rd Qu.:0.0000   3rd Qu.:0.0000  
##  Max.   :1.0000   Max.   :1.0000   Max.   :1.0000   Max.   :1.0000  
##                                                                     
##    subst.cons        scz.cons           char             rs       
##  Min.   :0.0000   Min.   :0.0000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:1.000   1st Qu.:1.000  
##  Median :0.0000   Median :0.0000   Median :1.000   Median :2.000  
##  Mean   :0.2653   Mean   :0.0826   Mean   :1.512   Mean   :2.057  
##  3rd Qu.:1.0000   3rd Qu.:0.0000   3rd Qu.:2.000   3rd Qu.:3.000  
##  Max.   :1.0000   Max.   :1.0000   Max.   :4.000   Max.   :3.000  
##                                    NA's   :96      NA's   :103    
##        ed              dr          suicide.s        suicide.hr    
##  Min.   :1.000   Min.   :1.000   Min.   :0.0000   Min.   :0.0000  
##  1st Qu.:1.000   1st Qu.:1.000   1st Qu.:0.0000   1st Qu.:0.0000  
##  Median :2.000   Median :2.000   Median :0.0000   Median :0.0000  
##  Mean   :1.866   Mean   :2.153   Mean   :0.7942   Mean   :0.2013  
##  3rd Qu.:3.000   3rd Qu.:3.000   3rd Qu.:1.0000   3rd Qu.:0.0000  
##  Max.   :3.000   Max.   :3.000   Max.   :5.0000   Max.   :1.0000  
##  NA's   :107     NA's   :111     NA's   :41       NA's   :39      
##   suicide.past      dur.interv    
##  Min.   :0.0000   Min.   :  0.00  
##  1st Qu.:0.0000   1st Qu.: 48.00  
##  Median :0.0000   Median : 60.00  
##  Mean   :0.2841   Mean   : 61.89  
##  3rd Qu.:1.0000   3rd Qu.: 75.00  
##  Max.   :1.0000   Max.   :120.00  
##  NA's   :14       NA's   :50
summary(smp$age) # meme chose mais sur une variable 
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    19.0    28.0    37.0    38.9    48.0    83.0       2
smp$age # ensemble des obs
##   [1] 31 49 50 47 23 34 24 52 42 45 31 NA 21 40 64 67 60 63 NA 28 20 30 32 31 26
##  [26] 42 32 40 41 27 24 38 39 36 29 41 36 41 21 21 46 22 21 35 45 38 19 21 27 40
##  [51] 39 47 24 36 39 22 38 37 29 23 36 42 56 28 36 38 43 29 64 25 51 35 30 37 26
##  [76] 36 58 32 30 26 27 23 24 39 43 39 26 44 37 40 24 46 26 38 37 30 39 36 39 28
## [101] 27 51 48 47 41 35 25 31 44 40 29 34 49 57 33 35 32 34 46 45 31 42 48 34 34
## [126] 64 50 53 49 53 37 42 55 32 33 40 29 32 23 61 39 30 37 30 39 49 44 40 56 43
## [151] 27 21 44 50 50 20 37 42 27 22 25 20 21 19 25 24 49 24 26 35 22 24 23 46 26
## [176] 41 51 20 30 37 49 28 28 51 40 33 25 29 40 43 35 50 44 35 24 43 26 45 42 45
## [201] 48 45 34 31 40 22 42 38 38 40 46 26 29 25 40 43 28 29 32 28 57 31 71 33 24
## [226] 22 25 26 52 33 38 39 41 52 33 39 59 33 50 58 23 41 43 42 22 57 41 30 66 49
## [251] 46 28 59 35 44 83 34 49 60 56 46 62 41 27 53 48 66 66 55 61 43 54 38 51 51
## [276] 50 56 53 49 41 44 64 42 52 72 43 30 32 43 25 27 25 52 39 42 59 46 62 50 24
## [301] 43 32 67 28 44 19 20 23 26 28 31 42 57 30 36 53 33 25 22 42 25 32 23 45 48
## [326] 35 37 38 24 47 61 38 27 27 26 30 47 37 30 41 29 37 28 47 26 50 23 60 37 48
## [351] 41 28 54 61 33 31 25 66 26 29 29 53 24 48 40 47 40 41 54 25 36 44 32 27 31
## [376] 34 34 71 20 54 39 50 36 37 43 28 21 35 36 53 36 38 66 62 38 24 49 21 34 29
## [401] 36 29 33 34 57 65 25 36 31 54 49 42 30 20 23 21 23 39 45 29 21 54 77 23 32
## [426] 58 49 26 40 51 62 45 41 30 52 20 36 34 35 30 46 79 66 19 41 51 26 56 33 39
## [451] 72 45 59 21 41 43 55 26 49 29 26 28 77 61 63 30 49 48 45 32 56 48 64 73 33
## [476] 74 54 27 49 45 27 53 62 54 37 56 60 33 34 32 44 49 46 67 39 59 63 81 38 58
## [501] 42 73 48 41 28 44 45 46 50 27 56 46 42 25 23 26 19 24 24 32 23 24 33 21 33
## [526] 41 24 31 19 25 51 39 22 20 30 34 28 20 20 33 24 32 37 25 24 29 19 37 56 49
## [551] 60 29 22 20 49 33 30 29 25 62 41 33 44 60 24 24 33 27 45 33 44 23 23 35 36
## [576] 28 24 27 27 28 27 40 52 19 31 21 33 23 30 23 31 48 24 24 26 32 29 38 23 50
## [601] 26 47 38 24 24 19 25 31 33 26 38 23 37 19 49 33 30 38 30 26 27 21 31 19 26
## [626] 28 49 35 25 32 27 20 30 25 21 54 27 22 39 21 54 49 23 36 59 50 24 47 42 41
## [651] 33 46 23 19 39 38 40 39 40 44 26 48 47 23 25 20 45 44 57 39 55 19 34 28 33
## [676] 19 33 27 46 47 22 27 26 52 56 44 63 34 41 38 37 58 37 24 60 26 21 52 20 37
## [701] 32 32 58 49 32 37 46 50 44 47 37 38 50 56 30 34 43 55 43 31 55 41 68 45 48
## [726] 42 71 38 46 65 51 57 57 71 40 43 71 48 34 69 43 35 62 34 51 48 36 44 49 74
## [751] 19 56 57 65 52 77 29 37 45 40 72 27 56 35 30 37 30 40 54 26 48 83 32 22 48
## [776] 67 58 37 24 34 39 38 39 56 35 26 70 68 42 41 40 26 50 27 28 44 31 38 71
smp$age[1] 
## [1] 31
smp$age[1:10]
##  [1] 31 49 50 47 23 34 24 52 42 45

Valeur mini pour age ici NA car valeur manquante

head(smp$abus, n=10) # affiche les 10 1eres valeurs

min(smp$age) # valeur mini pour age ici NA car valeur manquante
## [1] NA
min(smp$age, na.rm=TRUE) ## retourne 19 
## [1] 19
smp$abus[1:10] # 
##  [1] 0 0 0 0 0 0 0 0 1 1
unique(smp$abus) 
## [1]  0  1 NA
head(smp$abus, n=10) # affiche les 10 1eres valeurs 
##  [1] 0 0 0 0 0 0 0 0 1 1

Recodage des données

Recodage sur 2 modalités (binaire)

quiz 4

Nous souhaitons associer les étiquettes « Non » et « Oui » aux valeurs 0 et 1, respectivement, d’une variable appelée z

z <- factor(smp$discip, labels=c('Non', 'Oui'))
head(z)
## [1] Non Non Non Non Oui Non
## Levels: Non Oui

Recoder la taille de la fraterie en une variable binaire : - de 5 enf (“<5”) et plus de 5 (“5+”)

factor(smp$n.fratrie>=5, labels=c("<5","5+"))
##   [1] <5 <5 <5 5+ 5+ <5 <5 5+ 5+ 5+ 5+ <5 <5 5+ <5 <5 <5 <5 <5 <5 <5 <5 5+ 5+ <5
##  [26] <5 <5 <5 5+ <5 <5 5+ 5+ <5 <5 <5 <5 <5 <5 <5 5+ <5 5+ 5+ <5 <5 <5 <5 <5 <5
##  [51] <5 <5 <5 5+ <5 5+ 5+ 5+ 5+ <5 <5 <5 <5 <5 5+ <5 5+ 5+ <5 <5 <5 <5 5+ <5 <5
##  [76] 5+ <5 <5 <5 5+ <5 <5 <5 <5 5+ <5 <5 5+ <5 <5 <5 5+ <5 5+ 5+ <5 5+ 5+ 5+ <5
## [101] 5+ 5+ 5+ 5+ <5 5+ 5+ 5+ 5+ 5+ 5+ <5 5+ 5+ 5+ 5+ 5+ 5+ <5 5+ <5 5+ <5 5+ <5
## [126] 5+ <5 <5 <5 <5 5+ <5 5+ 5+ <5 5+ <5 5+ 5+ 5+ 5+ 5+ <5 <5 <5 5+ 5+ 5+ 5+ <5
## [151] 5+ <5 <5 5+ <5 <5 <5 5+ 5+ 5+ 5+ 5+ <5 <5 <5 <5 5+ <5 5+ 5+ 5+ <5 <5 5+ 5+
## [176] 5+ 5+ <5 <5 5+ 5+ 5+ <5 <5 <5 <5 <5 <5 <5 5+ <5 <5 5+ 5+ <5 5+ <5 <5 <5 5+
## [201] <5 <5 <5 <5 5+ 5+ 5+ 5+ <5 <5 5+ 5+ <5 <5 5+ <5 5+ 5+ <5 <5 <5 5+ <5 5+ <5
## [226] <5 <5 <5 <5 <5 5+ <5 5+ 5+ <5 5+ 5+ <5 5+ 5+ <5 5+ 5+ 5+ <5 <5 5+ <5 <5 <5
## [251] 5+ <5 5+ <5 5+ <5 <5 <5 <5 <5 <5 <5 5+ <5 <5 <5 <5 <5 5+ <5 <5 <5 5+ <5 <5
## [276] 5+ <5 <5 <5 <5 5+ 5+ <5 <5 <5 <5 5+ <5 5+ 5+ <5 5+ 5+ 5+ <5 5+ <5 5+ 5+ 5+
## [301] 5+ <5 <5 <5 <5 <5 <5 <5 5+ 5+ 5+ 5+ <5 <5 5+ <5 5+ 5+ <5 5+ <5 5+ 5+ <5 5+
## [326] <5 <5 <5 <5 <5 <5 <5 <5 <5 <5 <5 5+ 5+ <5 5+ <5 <5 <5 <5 <5 <5 <5 <5 <5 <5
## [351] <5 5+ <5 <5 <5 <5 5+ <5 5+ <5 <5 <5 5+ <5 5+ 5+ 5+ 5+ <5 5+ <5 <5 <5 <5 5+
## [376] 5+ <5 <5 5+ <5 5+ <5 <5 <5 5+ <5 <5 <5 5+ 5+ <5 <5 <5 <5 5+ 5+ <5 <5 5+ <5
## [401] 5+ <5 <5 5+ <5 5+ <5 5+ <5 5+ <5 <5 5+ 5+ <5 <5 <5 <5 <5 <5 <5 <5 <5 5+ 5+
## [426] <5 5+ 5+ 5+ <5 <5 5+ <5 5+ <5 <5 <5 <5 <5 <5 <5 5+ <5 <5 5+ <5 <5 <5 5+ 5+
## [451] 5+ <5 <5 <5 <5 5+ <5 5+ <5 <5 <5 <5 <5 <5 <5 <5 5+ 5+ 5+ 5+ 5+ <5 5+ <5 <5
## [476] 5+ <5 5+ <5 <5 5+ <5 5+ 5+ 5+ <5 <5 5+ <5 5+ <5 <5 <5 <5 5+ <5 <5 <5 <5 <5
## [501] <5 <5 5+ 5+ <5 5+ <5 <5 <5 5+ <5 <5 <5 5+ 5+ <5 <5 <5 5+ <5 <5 5+ 5+ <5 5+
## [526] 5+ <5 5+ 5+ <5 5+ 5+ <5 5+ 5+ 5+ 5+ <5 5+ 5+ 5+ 5+ 5+ 5+ 5+ 5+ 5+ 5+ <5 5+
## [551] <5 <5 5+ <5 5+ <5 <5 5+ <5 <5 <5 5+ <5 <5 <5 5+ 5+ <5 5+ <5 <5 <5 5+ 5+ 5+
## [576] 5+ <5 <5 <5 5+ 5+ <5 <5 <5 <5 5+ <5 5+ <5 <5 <5 5+ <5 <5 5+ 5+ 5+ <5 <5 <5
## [601] 5+ <5 5+ <5 5+ 5+ 5+ <5 <5 <5 5+ <5 <5 <5 5+ <5 <5 <5 <5 <5 <5 <5 <5 <5 <5
## [626] 5+ <5 5+ <5 5+ <5 5+ 5+ <5 <5 <5 <5 <5 5+ <5 <5 <5 5+ 5+ <5 5+ <5 5+ <5 <5
## [651] <5 <5 5+ <5 <5 <5 5+ 5+ <5 <5 <5 <5 5+ <5 <5 <5 <5 <5 <5 5+ <5 <5 <5 5+ <5
## [676] <5 5+ <5 5+ 5+ <5 5+ <5 <5 <5 <5 <5 5+ <5 <5 <5 <5 <5 <5 <5 <5 <5 5+ <5 5+
## [701] <5 <5 <5 <5 <5 5+ <5 <5 5+ <5 <5 <5 <5 <5 <5 <5 5+ <5 <5 <5 <5 <5 <5 5+ <5
## [726] <5 5+ <5 <5 <5 <5 <5 <5 <5 <5 5+ <5 <5 <5 <5 5+ <5 <5 5+ <5 5+ 5+ <5 <5 <5
## [751] 5+ <5 <5 <5 <5 <5 5+ 5+ 5+ <5 <5 <5 <5 <5 5+ <5 5+ <5 <5 <5 <5 <5 <5 <5 <5
## [776] <5 <5 <5 <5 5+ <5 5+ <5 5+ <5 5+ 5+ <5 5+ 5+ 5+ <5 5+ <5 <5 5+ 5+ <5 <5
## Levels: <5 5+

Recodage plus de 2 modalités (binaire)

Recoder l’age en 3 intervals de classe dont les bornes intermédiares sont définies par 20 < age < 40

table(cut(smp$age,breaks = c(0,20,40,100),include.lowest = TRUE)) # zéro est inclus dans le 1er interval
## 
##   [0,20]  (20,40] (40,100] 
##       30      441      326

Fonction table()

table(smp$prof) # tableau des effectifs sans NA !
## 
##        agriculteur            artisan              autre              cadre 
##                  6                 90                 31                 24 
##            employe            ouvrier prof.intermediaire        sans emploi 
##                135                227                 58                222
sum(table(smp$prof)) # effectif total observé sans les NA
## [1] 793
table(smp$prof, useNA = "always")
## 
##        agriculteur            artisan              autre              cadre 
##                  6                 90                 31                 24 
##            employe            ouvrier prof.intermediaire        sans emploi 
##                135                227                 58                222 
##               <NA> 
##                  6
table(smp$ecole)
## 
##   1   2   3   4   5 
## 340 301  90  45  18
table(smp$ecole <4)
## 
## FALSE  TRUE 
##    63   731
which(smp$ecole==5)
##  [1]  23  64 151 182 183 304 305 370 371 512 563 639 675 693 694 696 728 736
#str(smp)
table(smp$ecole,smp$abus) # ligne/col
##    
##       0   1
##   1 238 101
##   2 219  81
##   3  65  24
##   4  36   8
##   5  13   5
prop.table(table(smp$ecole,smp$abus), margin = 1) # pour ecole=1 proportion en ligne
##    
##             0         1
##   1 0.7020649 0.2979351
##   2 0.7300000 0.2700000
##   3 0.7303371 0.2696629
##   4 0.8181818 0.1818182
##   5 0.7222222 0.2777778
prop.table(table(smp$ecole,smp$abus), margin = 2) # pour ecole 
##    
##              0          1
##   1 0.41681261 0.46118721
##   2 0.38353765 0.36986301
##   3 0.11383538 0.10958904
##   4 0.06304729 0.03652968
##   5 0.02276708 0.02283105

Chapitre 1 : Définitions

Chapitre 2 : Représentation graphique

  • Données qualitatives
table(smp$prof) # tableau des effectifs sans NA !
## 
##        agriculteur            artisan              autre              cadre 
##                  6                 90                 31                 24 
##            employe            ouvrier prof.intermediaire        sans emploi 
##                135                227                 58                222
sum(table(smp$prof)) # effectif total observé sans les NA
## [1] 793
barplot(table(smp$prof))

pie(table(smp$prof))

  • Données quantitatives

Boxplot = représentation graphique des quartiles donné par summary() !– attention les moustaches inf et sup ne sont par forcément les min et les max –!

boxplot(smp$age, xlab="age")

summary(smp$age)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    19.0    28.0    37.0    38.9    48.0    83.0       2

-Pour repésentater les intervalles de confiance on peut utilsier la fonction plotmeans() package gplots !

Chapitre 3 : Mesures de position, mesures de dispersion

moyenne, médiane, quartiles, écart-type, minimum, maximum

#summary(smp)
 #describe(smp,num.desc=c("mean","sd","median","min","max","valid.n"))
mean(smp$age,na.rm = TRUE)
## [1] 38.89962
sd(smp$age,na.rm = TRUE)
## [1] 13.28098
table(smp$prof, deparse.level = 2, useNA = "always")
## smp$prof
##        agriculteur            artisan              autre              cadre 
##                  6                 90                 31                 24 
##            employe            ouvrier prof.intermediaire        sans emploi 
##                135                227                 58                222 
##               <NA> 
##                  6
#describe(smp$age)

Chapitre 4 : Intervalle de confiance

L’intervalle de confiannce à 95 % est un intervalle de valeur qui a 95 % de chance de contenir la vraie valeur du paramatre estimé.

Distribution normale

Si vous êtes intéressé par un paramètre et que ce paramètre a une distribution normale, si vous disposez d’un échantillon tiré au sort et que sur cet échantillon, vous avez estimé une valeur du paramètre – on va l’appeler “m” – avec son écart type, et bien, l’intervalle de confiance à 95 % du paramètre c’est [m – 1,96x écart-type, m + 1,96xécart-type].

Ditribution binomiale

binom.confint()

library(binom)
binom.confint(3,n=10,method="all") # x=nb succes - n=taille echantillon
##           method x  n      mean      lower     upper
## 1  agresti-coull 3 10 0.3000000 0.10333842 0.6076747
## 2     asymptotic 3 10 0.3000000 0.01597423 0.5840258
## 3          bayes 3 10 0.3181818 0.07454423 0.5794516
## 4        cloglog 3 10 0.3000000 0.07113449 0.5778673
## 5          exact 3 10 0.3000000 0.06673951 0.6524529
## 6          logit 3 10 0.3000000 0.09976832 0.6236819
## 7         probit 3 10 0.3000000 0.08991347 0.6150429
## 8        profile 3 10 0.3000000 0.08470272 0.6065091
## 9            lrt 3 10 0.3000000 0.08458545 0.6065389
## 10     prop.test 3 10 0.3000000 0.08094782 0.6463293
## 11        wilson 3 10 0.3000000 0.10779127 0.6032219

L’étendue de l’intervalle de confiance diminue si le nombre de sujets de l’échantillon augmente.

binom.confint(300,1000,method="all")
##           method   x    n      mean     lower     upper
## 1  agresti-coull 300 1000 0.3000000 0.2723966 0.3291341
## 2     asymptotic 300 1000 0.3000000 0.2715974 0.3284026
## 3          bayes 300 1000 0.3001998 0.2719448 0.3286787
## 4        cloglog 300 1000 0.3000000 0.2718595 0.3285966
## 5          exact 300 1000 0.3000000 0.2717211 0.3294617
## 6          logit 300 1000 0.3000000 0.2723865 0.3291466
## 7         probit 300 1000 0.3000000 0.2722277 0.3289871
## 8        profile 300 1000 0.3000000 0.2721340 0.3288893
## 9            lrt 300 1000 0.3000000 0.2721419 0.3289000
## 10     prop.test 300 1000 0.3000000 0.2719222 0.3296354
## 11        wilson 300 1000 0.3000000 0.2724068 0.3291239

Exercice : sur un groupe de 200 élèves, on compte le nombre de femmes ; on répète l’opération 100 fois. Voici les 100 observations (Données générées avec : rbinom(n=100,size=200,prob=0.43)) :

data<-scan("toto.txt")
binom.confint(89,200, methods = "exact")
##   method  x   n  mean     lower     upper
## 1  exact 89 200 0.445 0.3749011 0.5167537
monx<-sum(data)
binom.confint(monx,20000, methods = "exact")
##   method    x     n   mean     lower     upper
## 1  exact 8696 20000 0.4348 0.4279145 0.4417044

Chapitre 5 : Mesure de la force de liaison entre deux variables

Coefficient de corrélation Pearson

Varirables quantitatives

Pour quantifier la force de l’association entre deux variables aléatoires quantitatives, c’est le coefficient de corrélation de Pearson. (covariance divisée par la racine carrée des variances)

Le coefficient de corrélation est souvent désigné par la lettre r, r varie entre -1 et 1 :

  • 0 : pas de lien (dans le cas de varialbles gaussiennes)
  • 1 : lien très fort dans le même sens (quand l’une augmente l’autre aussi)
  • -1 : lien très fort mais dans des sens différents (qd l’une augmente, l’autre diminue)

Non seulement deux variables peuvent être liées alors que leur corrélation est nulle. C’est par exemple le cas si sur un diagramme en x/y vous avez la relation entre y et x qui prend la forme d’une courbe en “U”, alors la corrélation sera nulle, même si vous avez une courbe tellement précise que vous pouvez déterminer y en fonction de x.

*La hauteur des bonhomme de neige / longueurs des emboutilllages

Si le coefficient de corrélation entre 2 variables qui suivent une loi normale est r=0, cela signifie que les 2 variables sont indépendantes.

cor(smp$age,smp$n.enfant, use = "complete.obs")
## [1] 0.4326039

Risque relatif et odds-ratio

Varirables binaires

Risque relatif (RR)

Le risque relatif, c’est le pourcentage de sujets malades parmi ceux qui ont un facteur de risque, divisé par le pourcentage de sujets malades chez ceux qui n’ont pas le facteur de risque.

Si le coefficient de corrélation entre 2 variables qui suivent une loi normale est r=0, cela signifie que les 2 variables sont indépendantes : a/(a+b) / c/(c+d) Exemple : X = une maladie et Y est un facteur de risque.

##      Xoui Xnon
## Youi    a    b
## Ynon    c    d

Odds-ratio (OR)

OR ne s’interprete difficillement RR s’interprete bien dans cas maladie rare (modalité rare) il faut utiliser OR car RR n’a aucun sens

Avantage : - lié à la régression logistique

Inconvenients :

library(Epi) towby2

chapitre 7 du terminé

Coefficient de corrélation de Spearman

Si la condition de validité du test de Pearson n’est pas vérifié, il faut utiliser le test de Spearman.

Corrélation de spearman :

La corrélation de Spearman porte sur les rangs des sujets et plus sur les observations elles-mêmes. Vous prenez les âges des sujets (x) et vous classez ces âges du plus petit au plus grand, vous prenez les recherches de sensation (y), vous les classez des plus petites aux plus grandes et vous faites la corrélation des rangs de l’âge avec les rangs de la recherche de sensation. Vous avez ici une méthode qui est beaucoup plus robuste (les rangs sont plus stables que les valeurs, par exemple le détenu le plus agé aura toujours le rang max quel que soit son âge).

Exemple :

individu 1 : x=45 y=2

individus 2 : x=37 y=3

individu 3 x=56 y=1

individu 4 x=57 y=2

Pearson : corrélation standra entre les vecteurs (45,37,56, 57) et (2,3,1,2)

Spearman : transforme les données en es classant → rang

ind 1 : rg_x=2, rg_y =2

ind 2 : rg_x = 1 rg_y=4

ind 3 : rg_x =3 rg_y =1

ind 4 : rg_x=4 rg_y= 2

corrélation standard sur les vecteur (2,1,3,4) et (2,4,1,2)

2 inconvénients au test de nullité de la corrélation de Spearman :

-moins puissant (erreur de 2e espèce beta est plus grande)

-gère mal les ex-aequo

Chapitre 6 : Tests statistiques

p-value

“p” p-value c’est la probabilité que le hasard puisse expliquer à lui seul une différence au moins aussi importante que celle observée (efficacité de 2 médicaments).

une p-value très faible (classiquement <5% = p<0.05) indique que le hasard ne peut pas expliquer… ce qu’on a observé est statistiquement significatif (à 5%).

Exemple avec R’mes = seq adn on compte combien fois mot apparaît (p = quelle proba que le hasard puisse expliquer autant d’occurrence d’un mot donné)

Si la taille de l’échantillon augmente la p-value (à tendance) à diminuer

Test d’hypothèse

Formalisation :

H0 = statu quo “profil bas” (A=B)

H1 = ex. médicaments efficacité différente (A=/=B)

2 erreurs :

H0 vraie mais on rejette H0 (on accepte H1) – erreur de type 1, de première espèce, alpha (rejette H0 à tort) : alpha sera comparé au 5% (niveau du test) alpha=P(accepter H1| H0 est vraie)

H1 est vraie (donc H0 est fausse) mais on accepte H0 - erreur de type 2, de seconde espèce, beta

On appelle puissance P d’un test la probabilité de rejeter l’hypothèse nulle alors qu’elle est fausse. On a donc P = 1 – β.

Test de comparaison de deux pourcentages

Test du chi-2

Conditions de validité( vérifier dans R) :

effectif pas trop petit

pourcentages ni trop proche de 0 ni trop proche de 1

les données ne doivent pas etre apparièes

Si donnees aparies utilsier le test de mcNemar (mcnemar.test(debut,fin))

!!! Le test du khi deux s’effectue TOUJOURS sur des effectifs et JAMAIS sur les pourcentages.

smp$ed.b<- ifelse(smp$ed>2,1,0)
#str(smp)
table(smp$ed.b, smp$dep.cons)
##    
##       0   1
##   0 335 135
##   1  96 126
chisq.test(smp$ed.b, smp$dep.cons, correct=FALSE)
## 
##  Pearson's Chi-squared test
## 
## data:  smp$ed.b and smp$dep.cons
## X-squared = 50.442, df = 1, p-value = 1.228e-12

La p-value est égale à 10-12. (très largement inférieur à 5%). On peut donc affirmer avec un haut niveau de certitude, que le hasard à lui tout seul ne pourrait pas expliquer une telle différence de prévalence de dépression entre les détenus à haut/bas niveau d’évitement du danger.

Test Exact de Fisher

fisher.test(smp$ed.b, smp$dep.cons)
## 
##  Fisher's Exact Test for Count Data
## 
## data:  smp$ed.b and smp$dep.cons
## p-value = 2.033e-12
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  2.303664 4.603460
## sample estimates:
## odds ratio 
##   3.250819

Test de comparaison de deux moyennes

Test de Student (ou test “t”)

Conditions de validité :

  • soit au moins 30 sujets par groupe à comparer

  • soit la variable étudiée suit une loi normale

  • variance identique dans les groupes (sinon test t avec approximation de Welch)

Plusieurs méthodes pour vérifier une loi normale, l’histogramme ou la comparaison de quantille.

hist(smp$age)

qqnorm(smp$age,);qqline(smp$age)

Pour comparer les moyennes des deux groupes :

by(smp$age, smp$ed.b, sd, na.rm=TRUE)
## smp$ed.b: 0
## [1] 13.38593
## ------------------------------------------------------------ 
## smp$ed.b: 1
## [1] 13.29636
t.test(smp$age,smp$ed.b,var.equal = TRUE )
## 
##  Two Sample t-test
## 
## data:  smp$age and smp$ed.b
## t = 76.369, df = 1487, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  37.58791 39.56972
## sample estimates:
##  mean of x  mean of y 
## 38.8996236  0.3208092

Les variances des 2 groupes étant assez proches donc on peut utiliser le test de Student.

La p-value est égale à 8.7%. (très largement sup à 5%). Donc la différence d’age n’est pas significative entre les deux groupes

Pour comparer une moyenne à une référence :

t.test(smp$age, mu=24)
## 
##  One Sample t-test
## 
## data:  smp$age
## t = 31.672, df = 796, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 24
## 95 percent confidence interval:
##  37.97618 39.82307
## sample estimates:
## mean of x 
##  38.89962

si données apparièes (2 deux sur les memes individus avant/apres) il faut mettre l’option paired=TRUE dans le t-test

Test de Wilcoxon (=Mann-Whitney)

Le test de Wilcoxon ne compare pas des moyennes. Il compare des rangs d’individus. Il est adapté quand les vairables ne suivent pas une loi normale.

wilcox.test(smp$age~smp$ed.b)
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  smp$age by smp$ed.b
## W = 56770, p-value = 0.06091
## alternative hypothesis: true location shift is not equal to 0

Le test de Wilcoxon est moins puissant que le test de Student.

Test de nullité d’un coefficient de corrélation

H0 : cor(x,y)=0 H1 : cor(x,y) non nul

Conditions de validité :

x ou y doit suivre une loi normale

Exemple : x = age des détenus, y=recherche sensation

cor.test(smp$age, smp$rs)
## 
##  Pearson's product-moment correlation
## 
## data:  smp$age and smp$rs
## t = -6.02, df = 694, p-value = 2.825e-09
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.2922516 -0.1509579
## sample estimates:
##        cor 
## -0.2227744
cor.test(smp$age, smp$rs, method = "spearman")
## 
##  Spearman's rank correlation rho
## 
## data:  smp$age and smp$rs
## S = 68742508, p-value = 2.567e-09
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##        rho 
## -0.2233474

p-value = 10^-9

p-value << 0.05 (5%)

si H0 est vraie, cad x et y non correlées, on devrait avoir une p-value = Proba(que le hasard suffise pour observer ce qu’on a observé)

p<<0.05 → les données ne sont pas le fruit du hasard (H0) → test/p-value significatif → rejeter H0 → x et y sont corrélées

p>5% -> H0 est probable → les données peuvent être le fruit du hasard → pas significatif alors on accèpte H0.

On peut aussi regarder si ma valeur 0 fait partie de l’intervalele de confinace (IC) à 95% du coef de corrélation : si 0 n’appartient pas à l’IC, on a envie de conclure que la corrélation n’est pas égale à 0.

Test de proportion dans le cas de données binaires (biom.test) ???

Test Kruskal & Wallis données ordinales avec >2 échantillons ????

Annexes

Arbre des choix

Alt text

Grille choix test

Exercices

Tests statisques

  1. Quelles sont les conditions de validité d’un test de corrélation de Pearson ?

    1-La distribution d’une des deux variables doit être normale
    2-La distribution des deux variables doit être normale
    3-L’effectif des deux variables doit être supérieur à 30
    4-Aucune condition n’est exigée

  1. La commande pour réaliser un test de corrélation de Pearson entre les variables var 1 et var 2 est :

    1-pearson.test (var1,var2)
    2-cor.test(var1,var2)
    3-cor.pearson(var1,var2)

  1. Quand les conditions de validité d’un test de corrélation de Pearson ne sont pas remplies, on doit réaliser :

    -Un test de Welch
    -Un test de Wilcoxon
    -Un test de corrélation de Spearrman
    -Un test de Fisher

  1. Le test de Spearman pose parfois un problème car :

    -Sa commande est lente à être exécutée avec R
    -Il est peu puissant
    -Il gère de façon ambiguë les ex–aequo
    -Il est biaisé

  1. La commande pour tester si la moyenne d’une variable aléatoire est différente d’une valeur connue est :

    -cor.test(variable,mu=m)
    -t.test(variable,mu=m)
    -cor.test(variable,mu=m, metthod=“compar”)
    -compar(variable,mu=m)

  1. Le test de comparaison de proportions pour deux échantillons appariés est :

    -Le test du Khi² classique
    -Le test de Mac Nemarr
    -Le test de Pearson
    -Le test T de Student

  1. Le test de comparaison de moyennes pour deux échantillons appariés est :

    -Le test tt de Student pour échantillons appariés
    -Le test du chi² pour échantillons appariés
    -Le test de Pearson pour échantillons appariés
    -Impossible à réaliser

  1. Pour réaliser un test t de Student pour échantillons appariés, il faut ajouter dans la commande :

    -appariement=TRUE
    -apparied=TRUE
    -alea=FALSE
    -paired=TRUE

Divers

Récup sur le net

1. Principe des tests statistiques

Les 4 étapes d’un test statistique de la façon suivante :

Déterminer la loi de distribution théorique permettant d'analyser les fluctuations d'échantillonnage et donc vérifier que l'on est dans les conditions de validité de cette loi (taille de l'échantillon, distribution de la variable, ou autres...)

définir une hypothèse à contrôler (H0)

Sous cette hypothèse, calculer la valeur de la variable discriminante (t,ε ou autre).

Porter un jugement en fonction des risques d'erreur admis.

2. les risques d’erreur

2.1. le risque de première espèce ou risque α
  C'est le risque de rejeter l'hypothèse nulle (H0) alors que celle-ci est vraie. 

2.2. le risque β ou risque de deuxième espèce
  C'est la probabilité d'accepter l'hypothèse H0 alors que celle-ci est fausse (c'est à dire que c'est H1 qui est vraie). Le fait d'accepter H0 est en effet la conséquence de ne pas avoir pu mettre en évidence une différence significative entre, par exemple, deux paramètres statistiques obtenus à partir de deux échantillons (deux moyennes ou deux pourcentages). On estime dans ces conditions que la différence observée est due aux fluctuations d'échantillonnage et que les deux échantillons proviennent d'une même population . En réalité cette différence peut exister, et donc les deux échantillons peuvent provenir de deux populations distinctes ; seulement cette différence est trop faible pour être démontrée à l'aide du test utilisé. 

3. Tests statistiques relatifs aux variables quantitatives

  • 3.1. Test de comparaison d’une moyenne à une valeur de référence

  • 3.2. Test de comparaison de deux moyennes

  • 3.3. Elimination des valeurs aberrantes

  • 3.4. Utilité de l’intervalle de confiance lors des conclusions d’un test