Vous êtes sur la page 1sur 11

Exercices corrigés de l’Ethème 2 - Techniques de Sondages

Exercice 1 : On considère une population de N = 5 individus, pour lesquels on connaît les valeurs de la
variable y : y1 = 3, y2 = 1, y3 = 0, y4 = 1, y5 = 5. On choisit un plan SI avec une taille d’échantillon
n = 3.
1. Donner les valeurs de la moyenne, de la médiane et de la variance de la variable y dans la popula-
tion. Lister tous les échantillons possibles de taille n = 3. Quelle est la probabilité de sélection de
chaque échantillon ?
2. Pour un échantillon donné, on estime la moyenne (respectivement la médiane) de la population.
Calculer les valeurs de ces estimateurs pour chaque échantillon et en déduire que l’estimateur de
la moyenne est sans biais alors que l’estimateur de la médiane est biaisé.
2 de S 2 et en déduire que cet estimateur est sans
3. Pour chaque échantillon, calculer l’estimateur Sys yU
biais.

Corrigé :
1. La valeur de la moyenne dans la population est

y U = (3 + 1 + 0 + 1 + 5)/5 = 2

et la médiane est :
medU (y) = 1.
Les échantillons possibles de taille 3 sont les 10 échantillons suivants :

1 1 2 3
2 2 3 4
3 3 4 5
4 1 2 4
5 1 2 5
.
6 1 3 4
7 1 3 5
8 1 4 5
9 2 4 5
10 2 3 5
Puisque les échantillons sont équiprobables, la probabilité de chaque échantillon s est p(s) =
1/10.
2. On calcule la moyenne et la médiane de chaque échantillon i = 1, . . . , 10 qui estiment respective-
ment la moyenne et la médiane de la population et on obtient les résultats suivants :
i y s meds (y)
1 1.33 1
2 .67 1
3 2 1
4 1.67 1
5 3 3
6 1.33 1
7 2.67 3
8 3 3
9 2.33 1
10 2 1

1
Si on calcule la moyenne arithmétique des y s , on obtient :

E(y s ) = (1.33 + .67 + 2 + 1.67 + 3 + 1.33 + 2.67 + 3 + 2.33 + 2)/10


= 20/10
= 2
E(y s ) = y U

donc l’estimateur est sans biais.


Si on calcule la moyenne arithmétique des meds (y), on obtient :

E(meds (y)) = (1 + 1 + 1 + 1 + 3 + 1 + 3 + 3 + 1 + 1)/10


= 16/10
= 1.6
E(meds (y)) 6= medU (y)

et donc l’estimateur est biaisé.


2 . Par exemple, pour le premier échantillon {1,2,3}, on a :
3. Pour chaque échantillon, on calcule Sys
 
2 3 1 2
Sy1 = × (3 + 12 + 02 ) − 1.332
2 3

Les résultats sont récapitulés dans le tableau suivant :


i 2
Sys
1 2.33
2 0.33
3 7
4 1.33
5 4
6 2.33
7 6.33
8 4
9 5.33
10 7
2 , on obtient :
Si on calcule la moyenne arithmétique des Sys
2
E(Sys ) = (2.33 + 0.33 + 7 + 1.33 + 4 + 2.33 + 6.33 + 4 + 5.33 + 7)/10
= 40/10
= 4

Or,
 
2 5 1 2
SyU = × (3 + 12 + 02 + 12 + 52 ) − 22
4 5
= 4

2 est sans biais.


donc l’estimateur Sys

2
Exercices 2 et 3 :
Utiliser le logiciel SAS ou R pour tirer dans le fichier Rec99htegne un échantillon de 50 communes
1. (a) selon le plan SI
(b) selon le plan PEAR
2. On considère le fichier de l’enquête emploi (et pas le fichier du Recensement comme cela a été
indiqué par erreur dans l’ennoncé !) et dans ce fichier, uniquement les individus ayant une activité
(on enlève les individus pour lesquels la variable nomenclature d’activité française est sans objet
ou non renseignée). Pour un échantillon de taille n = 100 tiré selon un plan SI.
(a) Estimer la proportion d’agriculteurs.
(b) Comparer à la vraie valeur de cette proportion.
(c) Estimer la variance de cet estimateur sans tenir compte de la correction de population finie et
en tenant compte.

Corrigé :
Avec le logiciel SAS : on utilise les proc surveyselect et surveymeans. Le fichier docsas.pdf contient
une présentation succinte de ces 2 procédures. Mais l’aide détaillée se trouve sans difficulté sur Internet
(chercher “proc surveyselect” ou “proc surveymeans” avec le moteur de recherche Google par exemple).
1. Pour tirer un échantillon, on utilise la proc surveyselect.
(a) Pour le plan SI, taper le programme suivant.
/* Tirage de 50 communes dans la base Rec99htegne */
/* selon un plan SI */

title1 ’Fichier Rec99htegne : tirage selon un plan simple’;


proc surveyselect data=Sondages.rec99htegne method=srs n=50 stats
seed=47279 out=Sondages.logsi;
run;
L’option
data= précise le fichier de données sur lequel on applique la proc surveyselect.
method= definit le plan de sondages. Par défaut, il s’agit du plan SI (méthode srs pour
simple random sampling).
n= fixe la taille de l’échantillon. On peut, au lieu de fixer n, préciser le taux de sondages
f par l’option samprate= (ou l’abréviation rate=). L’option sampsize= est équiva-
lente à l’option n=.
stats précise que l’on souhaite que le fichier résultat contienne la variable probabilité
d’inclusion et la variable poids de sondage (inverse de la probabilité d’inclusion). Si les
probabilités d’inclusion différent selon les individus (voir E-thème 3), ces deux variables
sont données par défaut mais dans le cas du plan SI, ces variables étant des constantes, il
faut préciser l’option stats pour les récupérer. Remarquons que si l’objectif est d’estimer
une moyenne, ces variables ne sont pas utiles mais que l’on en a besoin pour estimer un
total.
seed= fixe la graine du générateur de nombres aléatoires. Cela signifie que le tirage de
l’échantillon se fait à l’identique à chaque fois que l’on lance la procédure. Au contraire,
si la graine n’est pas précisée, SAS utilise une graine aléatoire basée sur l’horloge interne
de l’ordinateur et les tirages sont différents à chaque lancement.

3
out= permet de définir un fichier résultat qui contient, pour les communes échantillon-
nées, les variables du fichier de données initial et éventuellement des variables supplémen-
taires comme la probabilité d’inclusion (variable SelectionProb avec le label Probabi-
lity selection) et le poids de sondage (variable SamplingWeight avec le label Sampling
Weight) dans le cas du plan SI
Exécuter le programme ci-dessus. L’output contient les informations suivantes rappelant les
différentes options utilisées (tirage de n = 50 communes selon un plan SI avec la graine
47279 dans la base Rec99htegne avec sauvegarde des résultats dans la base Logsi) et pré-
cisant la probabilité d’inclusion πk = n/N = 50/554 = 0.090253 et le poids de sondage
1/πk = 11.08.

The SURVEYSELECT Procedure

Selection Method Simple Random Sampling

Input Data Set REC99HTEGNE


Random Number Seed 47279
Sample Size 50
Selection Probability 0.090253
Sampling Weight 11.08
Output Data Set LOGSI

Ouvrir la base Logsi pour vérifier qu’elle contient bien, pour 50 communes, les variables
initiales ainsi que la probabilité d’inclusion et le poids de sondages.
Relancer plusieurs fois le programme pour vérifier que le tirage est toujours le même.
Relancer plusieurs fois le programme en enlevant l’option seed= et vérifier que les tirages
diffèrent à chaque fois.
Relancer le programme en enlevant l’option stats et vérifier que le fichier Logsi ne
contient plus les deux dernières variables.
Relancer le programme en enlevant l’option n= et en ajoutant l’option rate=.1 qui cor-
respond à un taux de sondage de 10% (samprate=.1 et rate=10 sont des options équi-
valentes). Vérifier que le nombre de communes tirées est alors n = 56 ce qui correspond à
10% N = 10% 554 = 55.4 arrondi à l’entier supérieur.
Relancer le programme avec les options de départ.
(b) Pour le plan PEAR, taper le programme suivant
title1 ’Fichier Rec99htegne : tirage selon un plan PEAR’;
proc surveyselect data=Sondages.rec99htegne method=urs n=50 stats
seed=47279 out=Sondages.logpear;
run;

Remarquer que seule l’option method= a été modifiée.


Visualiser le fichier résultat logpear. On remarque que l’on a toujours le poids de sondage
(Sampling weight) qui permet de faire les estimations de totaux ou de moyennes dans la po-
pulation. On a aussi la variable Number of Hits qui donne le nombre de fois qu’un indi-
vidu a été tiré (puisque le tirage est avec remise) et la variable Expected Number of Hits
qui correspond à n/N . Dans l’exemple précédent, on voit que toutes les communes ont été
tirée une seule fois sauf une (31123 à la 2ème ligne) qui a été tirée 2 fois (le fichier résultat
contient 49 lignes). Toutefois, même si la commune 31123 a été tirée 2 fois, elle n’apparaît
qu’une fois dans le fichier résultat ce qui va compliquer les procédures d’estimation. L’option

4
OutHits permet de dupliquer les individus dans le fichier résultat autant de fois qu’ils ont
été tirés. Essayer cette option et vérifier que le fichier résultat contient bien 50 lignes avec
duplication de la commune 31123.
2. (a) Taper et exécuter le programme suivant.
/* Tirage de 100 individus dans la base agri */
/* selon un plan SI */
title1 ’Fichier agri : tirage selon un plan simple SI’;
proc surveyselect data=Sondages.agri n=100
seed=5667 out=Sondages.agrisi;
run;
Taper et exécuter le programme suivant.
title1 ’Agriculteurs’;
title2 ’Estimation proportion pour plan SI’;
proc surveymeans data=Sondages.agrisi total=7104;
var agri;
run;
(b) La proportion est estimée par 1%. On a donc une sous-estimation de la vraie proportion. Mais
on ne peut tirer aucune clonclusion générale car nous n’avons qu’un seul échantillon.
q
(c) L’écart-type de l’estimateur de la proportion est (1 − f )SyU 2 /n = 0.0053 et l’estimation

de cet écart-type à partir de l’échantillon tiré est 0.0099. On a sur-estimation de l’écart-type


sur cet exemple. Mais aucune conclusion générale ne peut être tirée car nous n’avons qu’un
seul échantillon. Pour avoir une estimation de la variance sans tenir compte de la taille de
population finie, il suffit d’enlever l’option total=7104 et d’exécuter le même programme.

Avec le logiciel R : On charge le Workspace pour les sondages constitué au TP précédent (utiliser le nom
que vous avez choisi précédemment), ici c’est : sondages.RData . Le chargement se fait par le menu
File/Load workspace... ou par une commande

[frame=lines, fontsize=\scriptsize]
> load("D:/Yves/Sondages/DESS_texte/FOAD/TP_R/sondages.RData")

On vérifie le contenu du workspace chargé, le nom des variables de rec99 et si nécessaire le type de
rec99, comme ci-dessous :

[frame=lines, fontsize=\small]

> ls()
[1] "a" "fpempl01" "last.warning" "q" "rec99"
[6] "vin"

> dimnames(rec99)[[2]]
[1] "CODE.N" "COMMUNE" "BVQ.N" "POPSDC99" "LOG" "LOGVAC"
"STRATLOG"

> is.data.frame(rec99)
[1] TRUE

5
Le package sondages ayant quelques erreurs, on ne le charge pas mais on utilise le code R corrigé,
libsondy.R (à télécharger) qu’il faut d’abord sourcer.
Menu File/ Source R code...
et on indique le répertoire où on a stocké ce code.
1. (a) Pour tirer les échantillons on utilise la fonction surveyselect.
Tirage d’un echantillon de taille 50, plan SI (=SRS= Simple Random Sampling)
[ fontsize=\small]
logsi <- surveyselect(rec99,50,rep=1,methode="SRS",nomstrat=NULL,
nompps=NULL)"
ou en donnant une graine ( ici, un nombre entier) pour pouvoir recommencer des simulations
suivant le même mécanisme :
[ fontsize=\small]
logsi2 <-surveyselect(rec99,n=50,rep=5,methode="SRS",magraine=255)"
On obtient
[ fontsize=\small]

_______________________________________

ECHANTILLONNAGE DE LA TABLE : rec99

Données rec99
Méthode de sélection SRS
Taille de l’échantillon 50
Nombre de réplication 1
Taille de la table en sortie 50

_______________________________________

Remarque. Si on lance plusieurs fois :


[ fontsize=\small]
surveyselect(rec99,50,rep=1,methode="SRS",nomstrat=NULL,nompps=NULL)
on n’obtient jamais le même résultat, alors qu’avec
[ fontsize=\small]
surveyselect(rec99,n=70,rep=5,methode="SRS",magraine=255)
où on donne à magraine une valeur entière on obtient la même série de simulations tant
qu’on donne à magraine une même valeur.

La composition de logsi2 est obtenue par la fonction : summary(logsi2).


On obtient :
[frame=lines, fontsize=\small]
Length Class Mode
echantillon 8 data.frame list
Donnees 1 -none- character
N 1 -none- numeric
Selection 1 -none- character
Replic 1 -none- numeric

6
Pi 50 -none- numeric
Poids 50 -none- numeric
Taille.Ech 1 -none- numeric
Taille.Output 1 -none- numeric
PPS 1 -none- character
VarAux 0 -none- NULL
Stratification 1 -none- character
VarStrat 0 -none- NULL

Pour lister à l’écran l’échantillon on tape :


logsi2\$echantillon
Fabrication d’un échantillon de taux de sondage donné :
[frame=lines, fontsize=\small]

srs2 <- surveyselect(rec99,taux=10,rep=1,methode="SRS",


nomstrat=NULL,nompps=NULL,magraine=918742)
_______________________________________

ECHANTILLONNAGE DE LA TABLE : rec99

Données rec99
Méthode de sélection SRS
Taille de l’échantillon 56
Nombre de réplication 1
Taille de la table en sortie 56

_______________________________________

(b) Tirage d’un échantillon de taille 50 par un plan à probabilités égales avec remise :
[frame=lines, fontsize=\small]

logpear <- surveyselect(rec99,n=50,rep=1,methode="URS",


nomstrat=NULL,nompps=NULL,magraine=18174)
_______________________________________

ECHANTILLONNAGE DE LA TABLE : rec99

Données rec99
Méthode de sélection URS
Taille de l’échantillon 50
Nombre de réplication 1
Taille de la table en sortie 50

_______________________________________

Contrairement à ce qui se passe dans SAS, on ne dispose pas du nombre d’apparitions d’une
même unité statistique, mais on peut visualiser les répétitions :

7
ech <- logpear$echantillon
> code <- ech$CODE.N
> un <- unique(code)

un contient les codes différents et sa longueur est < 50, le plus souvent.
2. Fabrication de la data frame agri. Elle contient uniquement les individus dont la variable NAFG16
est renseignée. On définit agri1 qui vaut 1 si un individu est agriculteur, 0 sinon.
[fontsize=\small]
a <- fpempl01$NAFG16
anm <- a[a != ""]
nbnm <- NROW(anm)
nbnm
# agriculteur
agri <- a[a == "EA"]
agri1 <- matrix(0,ncol=1,nrow=nbnm)
agri1[(anm == "EA"),] <- 1
nbagri <- NROW(agri)
fp.agri <- cbind(fpempl01[anm,],agri1)

nbagri = 299
et la base contient NROW(fp.agri) , 7104 personnes. La proportion d’agriculteurs dans la base est :
nbagri/nbnm soit 0.04208896.
Tirage d’un échantillon et estimation de la proportion d’agriculteurs. La proportion à estimer est
la moyenne de agri1.
[fontsize=\small]
> sagri <- surveyselect(fp.agri,n=100,rep=1,methode="SRS",
nomstrat=NULL,nompps=NULL,magraine=92315)

_______________________________________

ECHANTILLONNAGE DE LA TABLE : fp.agri

Données fp.agri
Méthode de sélection SRS
Taille de l’échantillon 100
Nombre de réplication 1
Taille de la table en sortie 100

_______________________________________

> # estimation de la proportion dans l’agriculture


> #
> propagri <- surveymeans(objet=sagri,var="agri1",est="moyenne",methode="SRS

_______________________________________

ESTIMATIONS - SYNTHESE

8
Echantillon sagri
Variable estimée agri1
Type d’estimation moyenne
Nombre d’estimations 1
Moyenne des estimations 0.07
C.V. moyen des estimations 0.364

_______________________________________

> propagri
num.ech estim.moyenne SDEV.estim.moyenne ICinf ICsup CV
1 1 0.07 0.02546212 0.02009517 0.1199048 0.3637445
>

Vérification du calcul de variance.


[fontsize=\small]
> varverif <- (1/sagri$Taille.Ech - 1/sagri$N)* var(sagri$echantillon$agri1
> varverif
[1] 0.0006483193
> etypverif <- varverif^(.5)
> etypverif
[1] 0.02546212

Ecart-type exact de l’estimateur.


[fontsize=\small]
> # ecart type exact de l’estimateur
> etypex <- ((1/sagri$Taille.Ech - 1/sagri$N) * var(agri1))^(.5)
> etypex
[,1]
[1,] 0.01993879

Marges d’erreur et intervalle de confiance.


[fontsize=\small]
> ic <- c((propagri$estim.moyenne-1.96*propagri$SDEV.estim.moyenne),
(propagri$estim.moyenne+1.96*propagri$SDEV.estim.moyenne))
> ic
[1] 0.02009425 0.11990575
> # coefficient de variation
> cv <- propagri$SDEV.estim.moyenne/propagri$estim.moyenne
> cv
[1] 0.3637445
> # marge d’erreur absolue :
> 1.96*propagri$SDEV.estim.moyenne
[1] 0.04990575
> # marge d’erreur relative
> 1.96*cv

9
[1] 0.7129392

Exercice 4 :
Un club de photographes amateurs a 1800 membres. On veut estimer le nombre moyen de pellicules
utilisées par an par membre. On sait que par le passé, la moyenne et l’écart-type du nombre de pellicules
étaient respectivement 6 et 4. On choisit un niveau de confiance de 95%. Quelle taille d’échantillon faut-
il prendre pour estimer (1) le nombre moyen de pellicules avec une marge d’erreur relative de 7% ? (2)
le nombre total de pellicules avec une erreur absolue de 400.

Corrigé :
2
Pour (1), on applique la formule du cours et on a : n ≥ 1.962 (4/6)
.072
= 348.44 arrondi à 349. Pour
2
(2), on a n ≥ (1800 × 1.96 × 4/400) = 77.79. En prenant un échantillon de 78 membres on estimera
le nombre total de pellicules utilisées avec une marge d’erreur de moins de 400 pellicules, à 95%.

Exercice 5 :
Un quartier dans une certaine ville est formé de 3000 ménages rassemblant 10 000 personnes. Pour
étudier l’intérêt d’installer un dispensaire médical dans le quartier, on veut estimer le nombre total de
consultations qu’ont eu les personnes de ce quartier l’an dernier. On veut un résultat à 10% maximum,
de la vraie valeur, avec un niveau de confiance de 95%. Un sondage préliminaire portant sur 10 ménages
donne les résultats rassemblés dans le tableau ci-dessous. Déterminer la taille d’échantillon nécessaire
pour faire l’étude avec la précision requise.

Ménage Nombre de per- Nombre de consultations


sonnes dans le par personne durant l’an-
ménage née précédente
1 3 4.0
2 6 4.5
3 2 8.0
4 5 3.4
5 2 0.5
6 3 7.0
7 4 8.5
8 2 6.0
9 6 4.0
10 4 7.5

Indications. Le sondage porte sur des ménages et non sur des personnes. Exprimer d’abord le total
qu’on doit estimer en fonction des données qu’on peut collecter. On peut introduire : zk et vk , nombre
de personnes et nombre de consultations par personnes, dans le ménage k et yk = zk vk le nombre de
consultations dans le ménage k, U désigne la population des ménages et s l’échantillon.
X X X
Corrigé : On doit estimer ty = yk . Les données permettent d’estimer R = yk / zk .
U U U
C’est un ratio qu’on estime par R
b = y s /z s = 19.4/3.7 = 5.243243, d’où, S 2
b = 77.94555. De plus
y−Rz

b ' (1/n − 1/3000)(1/3.72 )S 2


var(R) b = (1/n − 1/3000)5.693612
y−Rz
X X
Notons M le nombre total de personnes : M = zk , t y = nk zk = M R, et b ty = M R.b La
q q U U
marge d’erreur relative est z var(b
ty )/ty = z var(R)/R,
b où z = 1.96 est le quantile d’ordre 0.975

10
d’une N(0,1). On doit prendre n tel que
p
1.96 (1/n − 1/3000)5.693612 /5.243243 ≤ 0.10.

On trouve n ≥ 77.505. On prendra donc une taille n = 78.


Compléments.
Observons qu’on n’a pas utilisé le nombre total de personnes car on s’est intéressé à une marge d’erreur
relative.
On peut aussi estimer directement ty , sans envisager qu’il y a une relation entre le nombre de consulta-
tions et la taille d’un ménage. On trouve n ≥ 95.78234. Ne pas prendre en compte la variable nombre
de personnes dans le ménage entraîne une perte de précision.

11

Vous aimerez peut-être aussi