La formule est assez simple si tous les sous-échantillons ont la même taille d'échantillon. Si vous aviez sous-échantillons de taille k (pour un total de g k échantillons), alors la variance de l'échantillon combiné dépend de la moyenne E j et de la variance V j de chaque sous-échantillon:
V a r ( X 1 , … , X g k ) = k - 1gkgkEjVjoù parVar(Ej)signifie la variance des moyennes de l'échantillon.
Var(X1,…,Xgk)=k−1gk−1(∑j=1gVj+k(g−1)k−1Var(Ej)),
Var(Ej)
Une démonstration en R:
> x <- rnorm(100)
> g <- gl(10,10)
> mns <- tapply(x, g, mean)
> vs <- tapply(x, g, var)
> 9/99*(sum(vs) + 10*var(mns))
[1] 1.033749
> var(x)
[1] 1.033749
Si les tailles d'échantillon ne sont pas égales, la formule n'est pas si agréable.
EDIT: formule pour des tailles d'échantillon inégales
S'il y a sous-échantillons, chacun avec k j , j = 1 , … , g éléments pour un total de n = ∑ k j valeurs, alors
V a r ( X 1 , … , X n ) = 1gkj,j=1,…,gn=∑kj
où ˉ X =(∑ g j = 1 kj ˉ X
Var(X1,…,Xn)=1n−1(∑j=1g(kj−1)Vj+∑j=1gkj(X¯j−X¯)2),
est la moyenne pondérée de toutes les moyennes (et égale à la moyenne de toutes les valeurs).
X¯=(∑gj=1kjX¯j)/n
Encore une fois, une démonstration:
> k <- rpois(10, lambda=10)
> n <- sum(k)
> g <- factor(rep(1:10, k))
> x <- rnorm(n)
> mns <- tapply(x, g, mean)
> vs <- tapply(x, g, var)
> 1/(n-1)*(sum((k-1)*vs) + sum(k*(mns-weighted.mean(mns,k))^2))
[1] 1.108966
> var(x)
[1] 1.108966
(Xji−X¯)2X¯j[(Xji−X¯j)−(X¯j−X¯)]2