Le bootstrapping est-il approprié pour ces données continues?

11

Je suis un débutant complet :)

Je fais une étude avec un échantillon de 10 000 sur une population d'environ 745 000. Chaque échantillon représente un "pourcentage de similitude". La grande majorité des échantillons se situe autour de 97% -98% mais quelques-uns se situent entre 60% et 90%, c'est-à-dire que la distribution est fortement biaisée négativement. Environ 0,6% des résultats sont à 0%, mais ceux-ci seront traités séparément de l'échantillon.

La moyenne de tous les 10 000 échantillons est de 97,7%, et juste dans Excel, le StdDev est de 3,20. Je comprends que le StdDev n'est pas vraiment applicable ici parce que les résultats ne sont pas normalement distribués (et parce que le +3,20 vous mettrait au-dessus de 100%!).

Mes questions sont:

  1. Le bootstrap (un nouveau concept pour moi) est-il approprié?
  2. Suis-je bootstrapping correctement :)
  3. Qu'est-ce qu'une taille d'échantillon suffisante?

Ce que je fais, c'est rééchantillonner (avec remplacement) mes 10 000 résultats et calculer une nouvelle moyenne. Je fais cela quelques milliers de fois et stocke chaque moyenne dans un tableau. Je calcule ensuite la "moyenne des moyennes" et voici mon résultat statistique. Pour calculer l'IC à 99%, je choisis la valeur de 0,5% et la valeur de 99,5%, ce qui produit une plage très étroite: 97,4% - 98,0%. Est-ce un résultat valide ou est-ce que je fais quelque chose de mal?

Quant à la taille de l'échantillon, je n'échantillonne qu'environ 1,3% de la population - je ne sais pas si c'est "suffisant". Comment savoir si mon échantillon est représentatif de la population? Idéalement, je voudrais être sûr à 99% d'une moyenne de +/- 0,50% (soit 97,2% - 98,2%).

Merci d'avance pour des conseils!

Glenn W
la source

Réponses:

19

L'écart type est aussi applicable ici qu'ailleurs: il donne des informations utiles sur la dispersion des données. En particulier, le sd divisé par la racine carrée de la taille de l'échantillon est une erreur standard: il estime la dispersion de la distribution d'échantillonnage de la moyenne. Calculons:

3.2%/10000=0.032%=0.00032.

C'est minuscule - bien plus petit que la précision vous recherchez.±0.50%

Bien que les données ne soient pas distribuées normalement, la moyenne de l'échantillon est extrêmement proche de la distribution normale parce que la taille de l'échantillon est si grande. Voici, par exemple, l'histogramme d'un échantillon avec les mêmes caractéristiques que le vôtre et, à sa droite, l'histogramme de la moyenne de mille échantillons supplémentaires de la même population.

Figure 1

Cela semble très proche de Normal, n'est-ce pas?

Ainsi, bien qu'il semble que vous démarriez correctement, le démarrage n'est pas nécessaire: un intervalle de confiance symétrique pour la moyenne est obtenu, comme d'habitude, en multipliant l'erreur standard par un centile approprié de la distribution normale standard (à esprit, ) et en déplaçant cette distance de chaque côté de la moyenne. Dans votre cas, , donc l' intervalle de confiance de est100α%Z1α/200Z1α/200=2.575899%

(0.9772.5758(0.032)/10000, 0.977+2.5758(0.032)/10000)=(97.62%,97.78%).

Une taille d'échantillon suffisante peut être trouvée en inversant cette relation pour résoudre la taille de l'échantillon. Ici, il nous dit que vous avez besoin d'un échantillon de taille

(3.2%/(0.5%/Z1α/200))2272.

Ceci est suffisamment petit pour que nous puissions revérifier la conclusion que la distribution d'échantillonnage de la moyenne est normale. J'ai prélevé un échantillon de dans ma population et amorcé sa moyenne (pour itérations):2729999

Figure 2

Effectivement, il semble normal. En fait, l'intervalle de confiance amorcé de est presque identique à l'IC de la théorie normale de .(97.16%,98.21%)(97.19%,98.24%)

Comme le montrent ces exemples, la taille absolue de l'échantillon détermine l'exactitude des estimations plutôt que la proportion de la taille de la population. (Un exemple extrême mais intuitif est qu'une seule goutte d'eau de mer peut fournir une estimation précise de la concentration de sel dans l'océan, même si cette goutte est une fraction infime de toute l'eau de mer.) Pour vos objectifs déclarés, obtenir un échantillon de (ce qui nécessite plus de fois plus de travail qu'un échantillon de ) est excessif.1000036272


RLe code pour effectuer ces analyses et tracer ces graphiques suit. Il échantillonne à partir d'une population ayant une distribution bêta avec une moyenne de et SD de .0.9770.032

set.seed(17)
#
# Study a sample of 10,000.
#
Sample <- rbeta(10^4, 20.4626, 0.4817)
hist(Sample)
hist(replicate(10^3, mean(rbeta(10^4, 20.4626, 0.4817))),xlab="%",main="1000 Sample Means")
#
# Analyze a sample designed to achieve a CI of width 1%.
#
(n.sample <- ceiling((0.032 / (0.005 / qnorm(1-0.005)))^2))
Sample <- rbeta(n.sample, 20.4626, 0.4817)
cat(round(mean(Sample), 3), round(sd(Sample), 3)) # Sample statistics
se.mean <- sd(Sample) / sqrt(length(Sample))      # Standard error of the mean
cat("CL: ", round(mean(Sample) + qnorm(0.005)*c(1,-1)*se.mean, 5)) # Normal CI
#
# Compare the bootstrapped CI of this sample.
#
Bootstrapped.means <- replicate(9999, mean(sample(Sample, length(Sample), replace=TRUE)))
hist(Bootstrapped.means)
cat("Bootstrap CL:", round(quantile(Bootstrapped.means, c(0.005, 1-0.005)), 5))
whuber
la source
2
Je sais que ce message est assez ancien mais il est extrêmement utile. Merci de partager vos connaissances.
RDizzl3