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).

Une brève inspection des données

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
  1. Sélectionnez les lignes correspondant aux niveau d’étude niveau d’étude “Enseignement technique ou professionnel court” et calculer l’age moyenne.
hdv2003 %>% filter(nivetud=="Enseignement technique ou professionnel court")  %>%
  summarise(moy=mean(age))
##        moy
## 1 45.21814
  1. Calculer l’age moyen selon le niveau d’étude.

  2. 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

Croisement de deux variables qualitatives et test d’indépendence

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