Comment simuler l'écart type
Je voudrais simuler des données basées sur des données réelles capturées. Les données réelles capturées sont 15 observations. La simulation basée sur les données existantes est de 100 observations. J'ai une moyenne et un écart-type pour les 15 observations, mais comment simuler l'écart-type pour un plus grand échantillon (100 observations) sur la base des données réelles plus petites? L'écart type devrait généralement diminuer avec une augmentation de la taille de l'échantillon, mais à quel rythme?
Réponses
L' erreur standard diminue à mesure que la taille de l'échantillon augmente. L'écart type est un concept connexe mais peut-être pas assez lié pour justifier une terminologie similaire qui déroute tous ceux qui commencent à apprendre les statistiques.
Une distribution d'échantillonnage est la distribution des valeurs que vous obtiendriez si vous échantillonniez à plusieurs reprises une population et calculiez une statistique, disons la moyenne, à chaque fois. L'écart type de cette distribution d'échantillonnage est l'erreur type. Pour l'erreur standard de la moyenne, elle diminue de$\sqrt{n}$, alors $s/\sqrt{n}$ comme une estimation de l'erreur standard (où $s$ est l'écart type de l'échantillon).
L'écart type d'une distribution est quel qu'il soit, et peu importe la taille d'un échantillon que vous tirez ou même si vous échantillonnez du tout.
Il semble que vous souhaitiez simuler des données à partir d'une distribution avec la moyenne et l'écart type que vous avez calculés à partir de l'échantillon de $15$, alors fais ça. Si vous êtes prêt à supposer une distribution normale, la commande R est rnorm et la commande Python est numpy.random.normal.
L'écart type ne diminue pas avec la taille de l'échantillon. Plus votre échantillon est grand, plus l'écart type doit être proche de l'écart type de la population. Ce qui suit, avec une plus grande taille d'échantillon, la dispersion des écarts-types estimés sur des échantillons plus grands par rapport à des échantillons plus petits diminuerait, car sur la base d'échantillons plus grands, nous obtiendrions plus de précision.
Ci-dessous, vous pouvez voir un exemple numérique dans R pour cela, où nous simulons des tirages à partir de la distribution normale standard (avec sd = 1) pour 15 et 100 échantillons, puis estimons les écarts-types pour eux.
> summary(replicate(100000, sd(rnorm(15))))
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.3039 0.8515 0.9762 0.9824 1.1061 1.8886
> summary(replicate(100000, sd(rnorm(100))))
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.6916 0.9498 0.9971 0.9980 1.0451 1.3089
Vous posez spécifiquement des questions sur la simulation. Suite à la réponse de @ Dave (+1), voici quelques simulations dans R.
Supposons que je prenne un million d'échantillons de taille $n = 16$ d'une population répartie en $\mathsf{Gamma}(\mathrm{shape} = 4,\, \mathrm{rate}=.1),$ de sorte que la moyenne de la population soit $\mu = 40$ la variance de la population est $\sigma^2 = 400,$ et $\sigma = 20.$
Ensuite, l'échantillon signifie (moyennes) $A =\bar X_{15}$ avoir $E(A) = 40$ et erreurs standard $SD(A)= \sigma/\sqrt{n} = 5.$ Avec un million d'échantillons, les résultats de la simulation devraient être précis à environ trois chiffres significatifs.
set.seed(904)
a = replicate(10^6, mean(rgamma(16, 4, .1)))
mean(a); sd(a)
[1] 40.00176 # aprx 40
[1] 4.996061 # aprx 5
En revanche, faisons une simulation similaire d'un million d'échantillons de taille $n = 100$de la même population. Maintenant$E(\bar X_{100}) = 40$ et $SD(\bar X_{100}) = \sigma/\sqrt{n} = 20/\sqrt{100} = 2.$
set.seed(2020)
a = replicate(10^6, mean(rgamma(100, 4, .1)))
mean(a); sd(a)
[1] 40.0014 # aprx 40
[1] 2.001084 # aprx 20/10 = 2