Estou executando um experimento em que estou coletando amostras (independentes) em paralelo, calculo a variação de cada grupo de amostras e agora quero combinar tudo para encontrar a variação total de todas as amostras.
Estou tendo dificuldade em encontrar uma derivação para isso, pois não tenho certeza da terminologia. Eu penso nisso como uma partição de um RV.
Então, eu quero encontrar de V a r ( X 1 ) , V a r ( X 2 ) , ... e V a r ( X n ) , onde X = [ X 1 , X 2 , … , X n ] .
EDIT: As partições não têm o mesmo tamanho / cardinalidade, mas a soma dos tamanhos das partições é igual ao número de amostras no conjunto geral de amostras.
EDIT 2: Existe uma fórmula para uma computação paralela aqui , mas cobre apenas o caso de uma partição em dois conjuntos, não em conjuntos.
Respostas:
A fórmula é bastante direta se todas as subamostras tiverem o mesmo tamanho de amostra. Se tivesse sub-amostras de tamanho k (para um total de g k amostras), em seguida a variância da amostra combinada depende da média E j e variância V j de cada sub-amostra: V uma r ( X 1 , … , X g k ) = k - 1g k gk Ej Vj onde porVar(Ej)significa a variação da média da amostra.
Uma demonstração em R:
Se os tamanhos das amostras não forem iguais, a fórmula não será tão boa.
EDIT: fórmula para tamanhos de amostra desiguais
Mais uma vez, uma demonstração:
fonte
Isso é simplesmente um complemento para a resposta do aniko com um esboço da derivação e algum código python, para que todos os créditos sejam do aniko.
derivação
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:
fonte