TP 3 : Estimation de paramètres complexes
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.
- 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.
- 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
- 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)
- 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)
- 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\) où \(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)}}\)).
- 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
- 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)
- 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,"]")