library(questionr)
library(tidyverse)
Dans cette partie nous allons utiliser un jeu de données hdv2003 inclus direcetement dans la librarie questionr de R . Le jeu de données est un extrait de l’enquête __histoire de vie_ réalisée par l’INSEE en 2003. Il contient 2000 individus et 20 variables parmi lesquelles : d’une part des variables décrivant les caractéristiques socio-démographiques des individus (age, sexe, nivetud, etc.), et d’autre part des variables décrivant leurs pratiques de loisirs (hard.rock, lecture.bd, peche.chasse, etc.)
Cette enquête part du postulat de départ que pour comprendre comment un individu s’intègre dans la société, il faut disposer à la fois d’informations objectives (situation professionnelle, situation familiale, état de santé, centres d’intérêts,etc.) mais aussi tenir compte d’éléments plus subjectifs. Pour pus d’information regarder la site :
http://www.insee.fr/fr/themes/detail.asp?ref_id=fd-HDV03
Pour charger les données de l’enquête hdv2003, il suffit d’utiliser la fonction data(),
data(hdv2003)
Ensuite, pour voir les données taper sur la console la commande View(hdv2003).
Visualisation des données
glimpse(hdv2003)
## Observations: 2,000
## Variables: 20
## $ id <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 1...
## $ age <int> 28, 23, 59, 34, 71, 35, 60, 47, 20, 28, 65, 47, ...
## $ sexe <fct> Femme, Femme, Homme, Homme, Femme, Femme, Femme,...
## $ nivetud <fct> "Enseignement superieur y compris technique supe...
## $ poids <dbl> 2634.3982, 9738.3958, 3994.1025, 5731.6615, 4329...
## $ occup <fct> "Exerce une profession", "Etudiant, eleve", "Exe...
## $ qualif <fct> Employe, NA, Technicien, Technicien, Employe, Em...
## $ freres.soeurs <int> 8, 2, 2, 1, 0, 5, 1, 5, 4, 2, 3, 4, 1, 5, 2, 3, ...
## $ clso <fct> Oui, Oui, Non, Non, Oui, Non, Oui, Non, Oui, Non...
## $ relig <fct> Ni croyance ni appartenance, Ni croyance ni appa...
## $ trav.imp <fct> Peu important, NA, Aussi important que le reste,...
## $ trav.satisf <fct> Insatisfaction, NA, Equilibre, Satisfaction, NA,...
## $ hard.rock <fct> Non, Non, Non, Non, Non, Non, Non, Non, Non, Non...
## $ lecture.bd <fct> Non, Non, Non, Non, Non, Non, Non, Non, Non, Non...
## $ peche.chasse <fct> Non, Non, Non, Non, Non, Non, Oui, Oui, Non, Non...
## $ cuisine <fct> Oui, Non, Non, Oui, Non, Non, Oui, Oui, Non, Non...
## $ bricol <fct> Non, Non, Non, Oui, Non, Non, Non, Oui, Non, Non...
## $ cinema <fct> Non, Oui, Non, Oui, Non, Oui, Non, Non, Oui, Oui...
## $ sport <fct> Non, Oui, Oui, Oui, Non, Oui, Non, Non, Non, Oui...
## $ heures.tv <dbl> 0.0, 1.0, 0.0, 2.0, 3.0, 2.0, 2.9, 1.0, 2.0, 2.0...
summary(hdv2003)
## id age sexe
## Min. : 1.0 Min. :18.00 Homme: 899
## 1st Qu.: 500.8 1st Qu.:35.00 Femme:1101
## Median :1000.5 Median :48.00
## Mean :1000.5 Mean :48.16
## 3rd Qu.:1500.2 3rd Qu.:60.00
## Max. :2000.0 Max. :97.00
##
## nivetud
## Enseignement technique ou professionnel court :463
## Enseignement superieur y compris technique superieur:441
## Derniere annee d'etudes primaires :341
## 1er cycle :204
## 2eme cycle :183
## (Other) :256
## NA's :112
## poids occup
## Min. : 78.08 Exerce une profession:1049
## 1st Qu.: 2221.82 Chomeur : 134
## Median : 4631.19 Etudiant, eleve : 94
## Mean : 5535.61 Retraite : 392
## 3rd Qu.: 7626.53 Retire des affaires : 77
## Max. :31092.14 Au foyer : 171
## Autre inactif : 83
## qualif freres.soeurs clso
## Employe :594 Min. : 0.000 Oui : 936
## Ouvrier qualifie :292 1st Qu.: 1.000 Non :1037
## Cadre :260 Median : 2.000 Ne sait pas: 27
## Ouvrier specialise :203 Mean : 3.283
## Profession intermediaire:160 3rd Qu.: 5.000
## (Other) :144 Max. :22.000
## NA's :347
## relig trav.imp
## Pratiquant regulier :266 Le plus important : 29
## Pratiquant occasionnel :442 Aussi important que le reste:259
## Appartenance sans pratique :760 Moins important que le reste:708
## Ni croyance ni appartenance:399 Peu important : 52
## Rejet : 93 NA's :952
## NSP ou NVPR : 40
##
## trav.satisf hard.rock lecture.bd peche.chasse cuisine
## Satisfaction :480 Non:1986 Non:1953 Non:1776 Non:1119
## Insatisfaction:117 Oui: 14 Oui: 47 Oui: 224 Oui: 881
## Equilibre :451
## NA's :952
##
##
##
## bricol cinema sport heures.tv
## Non:1147 Non:1174 Non:1277 Min. : 0.000
## Oui: 853 Oui: 826 Oui: 723 1st Qu.: 1.000
## Median : 2.000
## Mean : 2.247
## 3rd Qu.: 3.000
## Max. :12.000
## NA's :5
hdv2003 %>% filter(nivetud=="Enseignement technique ou professionnel court") %>%
summarise(moy=mean(age))
## moy
## 1 45.21814
Calculer l’age moyen selon le niveau d’étude.
Affichez le nombre de femmes par niveau d’étude.
Résumés numeriques avec summarise
hdv2003_occup_count <- hdv2003 %>% group_by(occup) %>% count()
hdv2003_occup_count
## # A tibble: 7 x 2
## # Groups: occup [7]
## occup n
## <fct> <int>
## 1 Exerce une profession 1049
## 2 Chomeur 134
## 3 Etudiant, eleve 94
## 4 Retraite 392
## 5 Retire des affaires 77
## 6 Au foyer 171
## 7 Autre inactif 83
hdv2003_occup_count_Homme <- hdv2003 %>%
group_by(occup) %>%
filter(sexe == "Homme") %>%
count()
hdv2003_occup_count_Homme
## # A tibble: 6 x 2
## # Groups: occup [6]
## occup n
## <fct> <int>
## 1 Exerce une profession 520
## 2 Chomeur 54
## 3 Etudiant, eleve 48
## 4 Retraite 208
## 5 Retire des affaires 39
## 6 Autre inactif 30
knitr::kable(hdv2003 %>% group_by(occup) %>%
summarise(NbHomme = sum(sexe == "Homme"),
NbFemme = sum(sexe == "Femme")))
occup | NbHomme | NbFemme |
---|---|---|
Exerce une profession | 520 | 529 |
Chomeur | 54 | 80 |
Etudiant, eleve | 48 | 46 |
Retraite | 208 | 184 |
Retire des affaires | 39 | 38 |
Au foyer | 0 | 171 |
Autre inactif | 30 | 53 |
knitr::kable(hdv2003 %>% group_by(occup,sexe) %>%
summarise(age.min = min(age),
age.max = max(age),
Moyenneheure.tv = mean(heures.tv)))
occup | sexe | age.min | age.max | Moyenneheure.tv |
---|---|---|---|---|
Exerce une profession | Homme | 18 | 63 | NA |
Exerce une profession | Femme | 18 | 67 | 1.724953 |
Chomeur | Homme | 18 | 63 | NA |
Chomeur | Femme | 18 | 63 | NA |
Etudiant, eleve | Homme | 18 | 34 | 1.400000 |
Etudiant, eleve | Femme | 18 | 35 | 1.256522 |
Retraite | Homme | 48 | 92 | 2.826442 |
Retraite | Femme | 41 | 96 | 2.877174 |
Retire des affaires | Homme | 57 | 91 | 2.410256 |
Retire des affaires | Femme | 57 | 93 | 2.844737 |
Au foyer | Femme | 22 | 90 | 2.822222 |
Autre inactif | Homme | 39 | 71 | 3.133333 |
Autre inactif | Femme | 19 | 97 | 3.339623 |
knitr::kable(hdv2003 %>% group_by(occup,sexe) %>%
summarise(age.min = min(age),
age.max = max(age),
Moyenneheure.tv = mean(heures.tv,na.rm=TRUE)))
occup | sexe | age.min | age.max | Moyenneheure.tv |
---|---|---|---|---|
Exerce une profession | Homme | 18 | 63 | 1.920463 |
Exerce une profession | Femme | 18 | 67 | 1.724953 |
Chomeur | Homme | 18 | 63 | 2.853846 |
Chomeur | Femme | 18 | 63 | 2.888608 |
Etudiant, eleve | Homme | 18 | 34 | 1.400000 |
Etudiant, eleve | Femme | 18 | 35 | 1.256522 |
Retraite | Homme | 48 | 92 | 2.826442 |
Retraite | Femme | 41 | 96 | 2.877174 |
Retire des affaires | Homme | 57 | 91 | 2.410256 |
Retire des affaires | Femme | 57 | 93 | 2.844737 |
Au foyer | Femme | 22 | 90 | 2.822222 |
Autre inactif | Homme | 39 | 71 | 3.133333 |
Autre inactif | Femme | 19 | 97 | 3.339623 |
Regroupement des modalités d’une variable qualitative
Regarder les modalités de la variable nivetud
levels(hdv2003$nivetud)
## [1] "N'a jamais fait d'etudes"
## [2] "A arrete ses etudes, avant la derniere annee d'etudes primaires"
## [3] "Derniere annee d'etudes primaires"
## [4] "1er cycle"
## [5] "2eme cycle"
## [6] "Enseignement technique ou professionnel court"
## [7] "Enseignement technique ou professionnel long"
## [8] "Enseignement superieur y compris technique superieur"
Il est important de remarquer que la variable nivetud est détaillée en pas moins de huit modalités dont certaines sont peu représentées (seulement 39 individus soit 2 % n’ont jamais fait d’études par exemple). Voir la commande ci-dessous.
hdv2003 %>% group_by(nivetud) %>% count()
## # A tibble: 9 x 2
## # Groups: nivetud [9]
## nivetud n
## <fct> <int>
## 1 N'a jamais fait d'etudes 39
## 2 A arrete ses etudes, avant la derniere annee d'etudes primaires 86
## 3 Derniere annee d'etudes primaires 341
## 4 1er cycle 204
## 5 2eme cycle 183
## 6 Enseignement technique ou professionnel court 463
## 7 Enseignement technique ou professionnel long 131
## 8 Enseignement superieur y compris technique superieur 441
## 9 <NA> 112
old_levels <- levels(hdv2003$nivetud)
tmp <- hdv2003 %>% mutate(nivetud2 = fct_collapse(nivetud, Pas=old_levels[1:2]))
tmp %>% group_by(nivetud2) %>% count()
## # A tibble: 8 x 2
## # Groups: nivetud2 [8]
## nivetud2 n
## <fct> <int>
## 1 Pas 125
## 2 Derniere annee d'etudes primaires 341
## 3 1er cycle 204
## 4 2eme cycle 183
## 5 Enseignement technique ou professionnel court 463
## 6 Enseignement technique ou professionnel long 131
## 7 Enseignement superieur y compris technique superieur 441
## 8 <NA> 112
tmp <- hdv2003 %>% mutate(nivetud2 = nivetud %>% fct_collapse( Pas=old_levels[1:2]) %>% fct_explicit_na())
tmp %>% group_by(nivetud2) %>% count()
## # A tibble: 8 x 2
## # Groups: nivetud2 [8]
## nivetud2 n
## <fct> <int>
## 1 Pas 125
## 2 Derniere annee d'etudes primaires 341
## 3 1er cycle 204
## 4 2eme cycle 183
## 5 Enseignement technique ou professionnel court 463
## 6 Enseignement technique ou professionnel long 131
## 7 Enseignement superieur y compris technique superieur 441
## 8 (Missing) 112
tmp %>% group_by(nivetud2) %>% count()
## # A tibble: 8 x 2
## # Groups: nivetud2 [8]
## nivetud2 n
## <fct> <int>
## 1 Pas 125
## 2 Derniere annee d'etudes primaires 341
## 3 1er cycle 204
## 4 2eme cycle 183
## 5 Enseignement technique ou professionnel court 463
## 6 Enseignement technique ou professionnel long 131
## 7 Enseignement superieur y compris technique superieur 441
## 8 (Missing) 112
tmp <- hdv2003 %>% mutate(nivetud2 = nivetud %>% fct_collapse( Pas=old_levels[1:2]) %>% fct_explicit_na(na_level = "Manquante"))
tmp %>% group_by(nivetud2) %>% count()
## # A tibble: 8 x 2
## # Groups: nivetud2 [8]
## nivetud2 n
## <fct> <int>
## 1 Pas 125
## 2 Derniere annee d'etudes primaires 341
## 3 1er cycle 204
## 4 2eme cycle 183
## 5 Enseignement technique ou professionnel court 463
## 6 Enseignement technique ou professionnel long 131
## 7 Enseignement superieur y compris technique superieur 441
## 8 Manquante 112
On peut avoir envie de changer le nom des modalités et ensuite utiliser la fonction fct_collapse
pour faire le regroupement. Par exemple.
levels(hdv2003$nivetud)<-c(rep("Primaire",3),rep("Secondaire",2),
rep("Technique/Professionnel",2),"Supéreur")
A vous de joer ! Voir par exemple la site :
https://forcats.tidyverse.org/reference/lvls.html
Quelques graphiques
tab1 <- table(hdv2003$qualif,hdv2003$sexe)
tab1
##
## Homme Femme
## Ouvrier specialise 96 107
## Ouvrier qualifie 229 63
## Technicien 66 20
## Profession intermediaire 88 72
## Cadre 145 115
## Employe 96 498
## Autre 21 37
chisq.test(tab1)
##
## Pearson's Chi-squared test
##
## data: tab1
## X-squared = 387.56, df = 6, p-value < 2.2e-16
tab2 <- table(hdv2003$sport, hdv2003$qualif)
tab2
##
## Ouvrier specialise Ouvrier qualifie Technicien
## Non 166 215 44
## Oui 37 77 42
##
## Profession intermediaire Cadre Employe Autre
## Non 83 117 401 38
## Oui 77 143 193 20
chisq.test(tab2)
##
## Pearson's Chi-squared test
##
## data: tab2
## X-squared = 100.27, df = 6, p-value < 2.2e-16