J'exécute une expérience où je collecte des échantillons (indépendants) en parallèle, je calcule la variance de chaque groupe d'échantillons et maintenant je veux combiner ensuite tout pour trouver la variance totale de tous les échantillons.
J'ai du mal à trouver une dérivation pour cela car je ne suis pas sûr de la terminologie. Je pense à cela comme une partition d'un VR.
Je veux donc trouver partir de , , ..., et , où = .
EDIT: les partitions ne sont pas de la même taille / cardinalité, mais la somme des tailles de partition est égale au nombre d'échantillons dans l'ensemble d'échantillons global.
EDIT 2: Il existe une formule pour un calcul parallèle ici , mais elle ne couvre que le cas d'une partition en deux ensembles, pas ensembles.
Réponses:
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 - 1g k gk Ej Vj où parVar(Ej)signifie la variance des moyennes de l'échantillon.
Une démonstration en R:
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 ) = 1g kj,j=1,…,g n=∑kj
où ˉ X =(∑ g j = 1 kj ˉ X
Encore une fois, une démonstration:
la source
Il s'agit simplement d'un complément à la réponse d'aniko avec un aperçu approximatif de la dérivation et du code python, donc tous les crédits vont à aniko.
dérivation
python code
The following python function works for arrays that have been splitted along the first dimension and implements the "more complex" formula for differently sized parts.
It can be used as follows:
la source