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(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
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+
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
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
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))
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 !
#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)
L’intervalle de confiannce à 95 % est un intervalle de valeur qui a 95 % de chance de contenir la vraie valeur du paramatre estimé.
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].
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
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 :
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
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
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é
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
“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
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 – β.
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.
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
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
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.
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.
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