Définition L’EAS consiste à prélever (sans remise) n éléments dans une population de taille N, au hasard et de façon indépendante. Chaque élément possède la même probabilité d’être échantillonné et chacun des échantillons possibles de taille n possède la même probabilité d’être constitué.
On s’intéresse aux captures dans une population de \(N=36\) pêcheurs. On choisit au hasard 18 pêcheurs, soit un effort d’échantillonnage \(f=0.5\).
Echantillonnage Débarquement - cours E. Rivot
N <- 36
n <- 18
pecheur_echant <- sample(1:N, size = n, replace =FALSE)
Chaque individu a la même probabilité d’être dans l’échantillon. par exemple pour l’individu \(i=5\).
Expliquer le code suivant :
i <- 5
res <- replicate(400, i %in% sample(1:N, size= n, replace = FALSE))
sum(res) / length(res)
## [1] 0.4775
L’estimateur de la moyenne est ${X}n={i=1}^n{X_i}, $ et l’estimateur de la variance est \(S^2 =\frac{1}{n-1} \sum_{i=1}^n(X_i -\bar{X}_n)^2\).
Alors \[Var(\bar{X}_n)= (1-f) \frac{\hat{\sigma}^2}{n}\]
La variance vient du fait qu’on n’échantillonne pas complètement la population.
L’estimateur de la somme est ${X}n^+= {i=1}^n {X_i} = N {X}_n, $ Alors \[Var({X}_n^+)= \frac{N^2}{n} (1-f) {\hat{\sigma}^2}\]
Sur une zone de 10 km\(^2\), 30 traits de chalut sont réalisés.
Chacun balaie une surface de 20m x 5000m = 100 000 m\(^2\) = 1/10 de km\(^2\) soit 1/100 de la surface totale.
Données : \(\bar{x} = 1000\),\(\hat{\sigma}^2 = 10000,\)
Il est souhaitable d’avoir une bonne précision mais pas à n’importe quel prix !! et l’échantillonnage coute cher !
Si on veut une précision de 10\(\%\) quelle taille d’echantillon faut-il choisir ?
Le coefficient de variation est défini par \[CV_{\bar{X}_n} =\frac{\sqrt{Var(\bar{X}_n)}}{E(\bar{X}_n)}\] En déduire la valeur de \(n\) minimale pour avoir un CV estimé de 10\(\%\).
## age length sexe site
## Min. : 1.00 Min. :12.73 f:292 Site1:181
## 1st Qu.: 6.00 1st Qu.:22.72 m:208 Site2:319
## Median :11.00 Median :26.51
## Mean :13.78 Mean :26.19
## 3rd Qu.:20.00 3rd Qu.:29.68
## Max. :40.00 Max. :40.32
Supposons que le jeu de données large_growth_data
contient l’ensemble d’une population d’intérêt.
Echantillonner avec \(f = 0.2\) et estimer la taille moyenne.
Repliquer cette opération plusieurs fois et représenter la loi de l’estimateur de la moyenne ainsi que la vraie valeur.
load('data/large_growthdataset.Rdata')
N <- nrow(large_growth_data)
f <- 0.2
n <- round( f * N )
L <- 100
estimates_EAS <-replicate(L, {
echant <- sample(1 : N, size = n, replace = FALSE)
dplyr::slice(large_growth_data, echant) %>% dplyr::select(length) %>% colMeans()
}) %>% as.data.frame() %>% select(mean = '.')
ggplot(estimates_EAS, aes(x=mean)) + geom_histogram(fill = 'darkgreen', alpha = 0.6, bins = 10) +
geom_vline(xintercept = mean(large_growth_data$length)) + xlim(c(24, 28))
## Warning: Removed 1 rows containing missing values (geom_bar).
La variance de l’estimateur calculé sur 100 réalisations vaut 0.5443348.
Les propriétés des estimateurs sont sympathiques
peu efficace pour estimer des différences au sein d’une population,
L’échantillonnage stratifié à subdiviser une population hétérogène en sous populations ou « strates » plus homogènes, mutuellement exclusives et collectivement exhaustives.
La population hétérogène de taille N est ainsi divisée en S strates (\(s = 1,\ldots, S\)) plus homogènes d’effectif \(N_s\) telles que \(N = \sum_{s=1}^{S}N_s\).
Un échantillon est prélevé dans chacune des strates en appliquant un plan d’échantillonnage. La solution la plus simple et la plus classique est d’appliquer un EAS dans chaque strate (mais on peut appliquer un autre plan).
La variance provient uniquement de l’échantillonnage intre strate, pas de variance d’estimation inter strate puisque toutes les strates sont vues !
Plus efficace qu’un EAS
Re prendre le jeu de données large_growth_data
et proposer un échantillonnage stratifié.
Estimer la taille moyenne de la population.
On peut choisir de stratifier par couple (sexe x site). On imagine connu les effectifs de chaque classe et on veut échantillonner avec un taux \(f_h=0.2\) comme dans le cas de l’EAS.
Le code qui suit propose une solution utilisant largement le potentiel du package dplyr
.
fh <- 0.2
strates <- large_growth_data %>%
group_by(sexe, site) %>%
summarise(no_rows = length(length))
Il est possible de calculer els moyennes au sein de chaque strate et de les combiner dans une moyenne pondérée
estimated_pop_mean_1 <- large_growth_data %>%
group_by(sexe, site) %>% sample_frac(size = fh) %>% # on groupe par sexe x site et on échantillonne
group_by(sexe, site) %>% summarise(estimated_means = mean(length)) %>% # groupe par sexe x site et calcule de moyenne
inner_join(strates) %>% ungroup() %>% # concatenation avec la table strate et on degroupe
summarise( p_mean = weighted.mean(estimated_means, w=no_rows) ) # calcul de la moyenne pondérée
## Joining, by = c("sexe", "site")
Ou plus directement on calcule la moeyenne des individus échantillonnés
estimated_pop_mean_2 <- large_growth_data %>%
group_by(sexe, site) %>% sample_frac(size = fh) %>% # on groupe par sexe x site et on échantillonne
group_by(sexe, site) %>% ungroup() %>% summarise(p_mean = mean(length))
Pour visualiser la distribution de l’échantillonnage
estimates_ES <- data.frame( mean =
replicate(L, {
estimated_pop_mean_1 <- large_growth_data %>%
group_by(sexe, site) %>% sample_frac(size = fh) %>% dplyr::summarise(pmean = mean(length)) %>% # groupe par sexe x site et calcule de moyenne
inner_join(strates) %>% ungroup() %>% # concatenation avec la table strate et on degroupe
dplyr::summarise( p_mean = weighted.mean(pmean, w=no_rows) ) %>% # calcul de la moyenne pondérée
as.numeric()
}) )
ggplot(estimates_ES, aes(x=mean)) + geom_histogram(fill = 'darkgreen', alpha = 0.6, bins = 10) +
geom_vline(xintercept = mean(large_growth_data$length))+ xlim(c(24, 28))
La variance de l’estimateur calculé sur 100 réalisations vaut 0.4146318.
Attention dans la réalité, on ne connait pas le poids de chaque strate.
On va sur échantillonner une strate. Cele ci sera donc sur représentée dans l’échantillon et l’estimateur ainsi construit sera biaisé.
On peut utiliser des données d’années précédentes, la littérature ou construire un EAS pour estimer le poids de chaque strate.
L’ES est d’autant plus intéressant que : - La variance inter-strates est grande (pas de var. inter-strates dans la variance d’estimation) ; - La variance intra-strate est réduite (seule source de variance d’estimation).
A condition que les strates soient bien définies, en rapport avec la variable d’intérêt dans la population.
l’ES fournit des estimateurs sans biais et procure un gain de précision important par rapport à l’EAS.
Une erreur d’appréciation du poids des strates \(w_s\) peut entraîner un biais important dans les estimateurs de la moyenne \(\mu\) et du total \(\Sigma\).
Le CCAMLR est en charge entre autre du suivi des stocks de légine en Antarctique. De nombreuses sources de données sont utilisées mais une information clé repose sur la déterminaition d’une relation de von Bertalanffy entre age et longueur.
Les individus jeunes sont plus nombreux dans la population mais l’ajustement de la courbe requiert aussi des observations sur des dinvidus plus âgés.
Décrire le protocole d’écahntillonnage utilisé dans le papier de Candy, S.G., A.J. Constable, T. Lamb and R. Williams