TP 3 : Estimation de paramètres complexes

Auteur·rice

Paul Géhin

Date de publication

20 mars 2026

Exercice 1 : estimation d’une évolution

Le dirigeant d’un pays imaginaire Imagiland souhaite connaître l’évolution des dépenses totales des 100 000 habitants de sa contrée entre l’année \({t^{(1)}}\) et \({t^{(2)}}\). Pour faire cela, il recrute un statisticien ayant suivi un cours de sondage : le spécialiste décide de réaliser un sondage aléatoire simple de taille 10 000.

Vous trouverez le fichier echantillon.csv contenant les résultats de la collecte :

  • t1 : correspond aux dépenses \(d_{t^{(1)}}\) à l’année \(t^{(1)}\) en euros.
  • t2 : correspond aux dépenses \(d_{t^{(2)}}\) à l’année \(t^{(2)}\) en euros.

Dans cette partie, on souhaite estimer le total de la variable t1.

  1. Décrivez la population, la variable d’intérêt et la fonction d’intérêt. Dans la suite, nous noterons \(\mathcal{U}\), la population.

La population est l’ensemble des individus de Imagiland, la variable d’intérêt est la dépense annuelle et la fonction d’intérêt est la dépense totale annuelle des habitants du pays.

  1. Proposez un estimateur sans biais du total des dépenses pour l’année \(t_1\) des individus d’Imagiland.

Compte tenu du plan de sondage, il vient que pour individu \(k \in \mathcal{U} ~~ \pi_k > 0\) : l’estimateur du total d’Horvitz-Thompson \(\displaystyle \hat{t}_{d_{t^{(1)}}, \text{HT}} = \sum_{k \in s} \frac{y_k}{\pi_k}\) est donc un estimateur sans biais du total \(\displaystyle t_{d_{t^{(1)}}} = \sum_{k \in \mathcal{U}} y_k\).

library("sampling")
library("data.table")

donnees <- read.csv("https://sondages.cours.gehin.net/TP/TP%203/data/echantillon.csv")

n <- nrow(donnees)
N <- 100000
  1. Proposez une estimation associée à cet estimateur.
total_t1 <- sampling::HTestimator(y = donnees$t1, pik = rep(n/N, n))

cat("Le total des dépenses estimés à l'aide de l'estimateur de 'Horvitz-Thompson est ", total_t1)
  1. Proposez un estimateur de la variance de l’estimateur proposé à la question 2.

Ici, le plan de sondage est un SRS qui est de taille fixe : nous pouvons utiliser l’estimateur de la variance d’Horvitz-Thompson ou l’estimateur de Sen-Yates-Grundy.

De plus, ces deux estimateurs sont égaux dans le cas du SRS.

#Matrice des probabilités d'inclusion double

mat_pik <- matrix((n*(n-1))/(N*(N-1)), nrow = n, ncol = n)
diag(mat_pik) <- n/N


var_t1 <- sampling::varHT(donnees$t1, mat_pik)

cat("La variance estimée est donnée par ", var_t1)
  1. Donnez un intervalle de confiance asymptotique au niveau 0.90 du total. Calculez une réalisation de cet intervalle.
alpha <- 0.1
q <- qnorm(1-(alpha/2))

borne_inf <- total_t1 - q*sqrt(var_t1)
borne_sup <- total_t1 + q*sqrt(var_t1)

cat("La réalisation d'un intervalle de confiance asymptotique au niveau 0.90 du total est donnée par [", borne_inf,";", borne_sup,"]")

On aimerait connaître l’évolution relative des dépenses totales \(p_{d_{t^{(1)}} \to d_{t^{(1)}}}\) entre \(t_1\) et \(t_2\)\(p_{d_{t^{(1)}} \to d_{t^{(2)}}} = \frac{d_{t^{(2)}} - d_{t^{(1)}}}{d_{t^{(1)}}}\). Afin d’estimer cette évolution, nous allons utiliser les résultats de la collecte.

On note \(\hat{t}_{d_{t^{(1)}},\text{HT}}\) (resp. \(\hat{t}_{d_{t^{(2)}},\text{HT}}\)), l’estimateur d’Horvitz-Thompson du total de \(d_{t^{(1)}}\) (resp \(d_{t^{(2)}}\)).

  1. Proposez un estimateur de \(\hat{p}_{d_{t^{(1)}} \to d_{t^{(2)}}}\) de \({p}_{d_{t^{(1)}} \to d_{t^{(2)}}} = \frac{d_{t^{(2)}} - d_{t^{(1)}}}{d_{t^{(1)}}}\) basé sur \(\hat{t}_{t_1,\text{HT}}\) et \(\hat{t}_{t_2,\text{HT}}\).
total_t2 <- sampling::HTestimator(y = donnees$t2, pik = rep(n/N, n))

p_t1_t2 <- (total_t2 - total_t1)/total_t1
  1. Proposez une estimation de la variance de cet estimateur. Pour cette question, on utilisera le principe de linéarisation.
u <- (donnees$t2 - unlist(p_t1_t2)[1,1] * donnees$t1)/total_t1[1,1]


mat_pik <- matrix((n*(n-1))/(N*(N-1)), nrow = n, ncol = n)
diag(mat_pik) <- n/N


var_p <- sampling::varHT(u, mat_pik)
  1. Donnez un intervalle de confiance asymptotique au niveau 0.90 du total. Calculez une réalisation de cet intervalle.
alpha <- 0.1
q <- qnorm(1-(alpha/2))

borne_inf_p <- p_t1_t2 - q*sqrt(var_p)
borne_sup_p <- p_t1_t2 + q*sqrt(var_p)

cat("La réalisation d'un intervalle de confiance asymptotique au niveau 0.90 du total est donnée par [", borne_inf_p,";", borne_sup_p,"]")