Introduction

Le tirage d’échantillon est la phase éssentielle qui suit le calcul de la taille minimale. Les plans de sondage abordés ici sont le tirage aléatoire simple (tas), tirage stratifié (ts) et tirage à deux dégrès (tdd). Le plan par grappes est un cas particulier du tirage à deux degrés et le plan à plusieurs degrès se généralisent ainsément.

La base de données est un répartoire fictif des entreprises du Sénégal composée de 300 000 entreprises sur un fichier excel.

## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.3.6      ✔ purrr   0.3.4 
## ✔ tibble  3.1.8      ✔ dplyr   1.0.10
## ✔ tidyr   1.2.1      ✔ stringr 1.4.1 
## ✔ readr   2.1.2      ✔ forcats 0.5.2 
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()

Pour identifier les unités, une variable itératif est créée: ID

# Identification des unités avec un entier
base$ID <- 1:220565

Une extraction de la base est illustrée ci-après:

# Affrichage de sept premières lignes
knitr::kable(base[1:7, c(20,1:7)], format = "html", caption = "LISTE")
LISTE
ID REG DEPT CCRCA COD TEL CUIE ACTIVITE
1 TAMBACOUNDA KOUMPENTOUM PAYAR 05420204 32:663:68 24 T9D0Y0H7 Commerce
2 THIES TIVAOUANE TIVAOUANE 07310200 76/844:88/47 V8P6Q4I6 Transport
3 DAKAR PIKINE MBAO 01230135 78/377:48/21 B1A6V0J6 Agriculture
4 KOLDA VELINGARA MEDINA GOUNASS 10220103 30/559/48 29 K5M8L4C4 Agriculture
5 DAKAR PIKINE DALIFORD 01230124 77 230:26 84 A2R1I9W1 Agriculture
6 DIOURBEL BAMBEY NGOYE 03120303 77/448:32/79 Z2N9X1C7 Autres Services
7 FATICK FOUNDIOUGNE KARANG POSTE 09210400 30/551:20/90 M1Z5L7F5 Agriculture

Tirage aléatoire simple

Le code suivant permet de tirer un échantillon de 2000 entreprise suivant un tirage aléatoire simple sans remise.

# Tirage aléatoire simple
tas <- base[sample(nrow(base), 2000, replace = FALSE), ]
knitr::kable(tas[1:7, c(20,1:6)], format = "html")
ID REG DEPT CCRCA COD TEL CUIE
167640 TAMBACOUNDA TAMBACOUNDA MISSIRAH 05220302 76/416/76 29 P8C4Z4W1
128555 SAINT-LOUIS DAGANA RONKH 04120203 77/691/43/11 M0H3U1D6
207389 SAINT-LOUIS PODOR DEMETTE 04210600 76:425:20/90 I5Z3Y6K1
31541 KOLDA MEDINA YORO FOULAH MEDINA YORO FOULAH 10310100 30/849/59 10 C7R7P1K7
113777 SAINT-LOUIS DAGANA GAE 04110500 30/349:57/15 C4T0Z3T4
139473 DAKAR DAKAR MEDINA 01130113 30/138/98/91 H8T0D4P0
70645 TAMBACOUNDA BAKEL GABOU 05120302 33/902:11/57 E0M3P0R5

Les valeurs de ID ne sont plus successives, montrant ainsi le choix aléatoire des lignes. Les fonction sample_n(), sample_frac() permettent aussi de tirer un échantillon.

tas_i <- base[sample.int(nrow(base), 2000, replace = FALSE), ]
tas_n <- sample_n(base, size = 2000, replace = FALSE)
tas_f <- sample_frac(base, size = 0.01, replace = FALSE)

Il y a la fonction Strata() du package DescTools qui permet de réaliser un tirage avec les méthodes suivantes:
- tirage aléatoire simple sans remplacement (“srswor”); - tirage aléatoire simple avec remplacement (“srswr”); - tirage simple avec algorithme de Poisson (“poisson”); - tirage systématique (“systematic”).

# Tirage systématique à probilité égales
base$GR <- 1
tas_s <- Strata(base, stratanames = "GR", method = "systematic", size = 2000)
tas_s <- arrange(tas_s, ID)
knitr::kable(tas_s[2:7, 1:7], format = "html")
GR REG DEPT CCRCA COD TEL CUIE
1.415 1 THIES MBOUR NGUEKOKH 07110300 33:299:64/25 J3S3I3H6
1.485 1 KOLDA VELINGARA KANDIA 10220301 76/153/58 58 X4L2N2J1
1.508 1 DAKAR RUFISQUE BAMBILOR 01320102 77:593:75 42 D1W6J8I0
1.658 1 DAKAR DAKAR MEDINA 01130113 77:795:73 27 A7I8Y2D5
1.911 1 THIES MBOUR FISSEL 07120101 30 655 34 45 I6N2Y5I6
1.1154 1 LOUGA LOUGA NGUEUNE SARR 08320402 77:229:37/75 R9G5K4R6

Tirage stratifié

Nous allons considérer l’activité comme variable de stratification.

knitr::kable(table(base$ACTIVITE))
Var1 Freq
Agriculture 64560
Autres Services 37829
BTP 13007
Commerce 61744
Industrie 10647
Transport 32778

Le tirage est réalisé comme suit avec un total de 333 dans chacune des quatre secteurs d’activités. (n = 6x333 = 1998).

# Tirage stratifié
ts <- sample_n(group_by(base, ACTIVITE), size = 333)
knitr::kable(addmargins(table(ts$ACTIVITE), FUN = sum))
Var1 Freq
Agriculture 333
Autres Services 333
BTP 333
Commerce 333
Industrie 333
Transport 333
sum 1998

Il est possible de préciser plusieurs variables de stratification:

# Tirage stratifié
ts_t <- sample_n(group_by(base, SEXE, ACTIVITE), size = 166)
addmargins(table(ts_t$ACTIVITE, ts_t$SEXE))
##                  
##                   Femme Homme  Sum
##   Agriculture       166   166  332
##   Autres Services   166   166  332
##   BTP               166   166  332
##   Commerce          166   166  332
##   Industrie         166   166  332
##   Transport         166   166  332
##   Sum               996   996 1992

Avec la fonction Strata(), il est possible de différencier la taille des strates:

ts_d <- Strata(base, c("SEXE", "ACTIVITE"), 
               size = c(100,120,140,160,180,200,190,170,150,130,110,90))
addmargins(table(ts_d$ACTIVITE, ts_d$SEXE))
##                  
##                   Femme Homme  Sum
##   Agriculture       100   120  220
##   Autres Services   140   160  300
##   BTP               180   200  380
##   Commerce          190   170  360
##   Industrie         150   130  280
##   Transport         110    90  200
##   Sum               870   870 1740

Tirage à deux degrés

Pour cette méthode, les UP seront des communes avec comme probabilité le nombre d’employés. Les US seront les entreprises dans les communes tirées. La base des 552 UP est formée ci-après.

# Base des 552 communes uniques par ligne
UP <- mutate(group_by(base, COD), POIDS = sum(EMPLOI))
UP <- UP[!duplicated(UP$COD), c("COD", "CCRCA", "POIDS")]

L’échantillon des UP tiré est précisé dans le bloc de commandes suivant.

# Tirage des UP
ECH_UP <- UP[sample(nrow(UP), 52, replace = FALSE, prob = UP$EMPLOI), ]
## Warning: Unknown or uninitialised column: `EMPLOI`.
US <- merge(ECH_UP, base, by = c("COD", "COD"), all.y = FALSE)
ECH_US <- sample_frac(US, size = 0.09, replace = FALSE)

Conclusion

Les quelques lignes présentées ici permettent de faciliser la procédure d’échantillonnage dans une enquête par sondage. Les plans à plus de deux degrés se déduisent aisement de la procédure de tirage à deux degrés présentée ci-haut. Le tirage par grappes est un tirage à deux degrès pour lequel lorsqu’un Up est tiré, tous ses US sont pris en compte.