19 votos

Cómo calcular la varianza de una partición de las variables

Estoy corriendo un experimento en el que estoy recolectando (independiente) muestras en paralelo, puedo calcular la varianza de cada grupo de muestras y ahora quiero combinar, a continuación, para encontrar la varianza total de todas las muestras.

Estoy teniendo un tiempo difícil encontrar una derivación de esto, ya no estoy seguro de la terminología. Pienso en ella como una partición de un RV.

Así que quiero encontrar a $Var(X)$ a partir de $Var(X_1)$, $Var(X_2)$, ..., y $Var(X_n)$, donde $X$ = $[X_1, X_2, \dots, X_n]$.

EDIT: Las particiones no son del mismo tamaño/cardinalidad, pero la suma de los tamaños de las particiones igual al número de muestras en el conjunto de la muestra.

EDIT 2: no Hay una fórmula para una computación paralela de aquí, pero solo cubre el caso de una partición en dos conjuntos, no $n$ conjuntos.

26voto

John with waffle Puntos 3472

La fórmula es bastante sencilla si todas las sub-muestras tienen el mismo tamaño de muestra. Si tuvieras $g$ sub-muestras de tamaño $k$ (para un total de $gk$ de las muestras), entonces la varianza de la muestra combinada depende de la media de $E_j$ y la varianza $V_j$ de cada sub-muestra: $$ Var(X_1,\ldots,X_{gk}) = \frac{k-1}{gk-1}(\sum_{j=1}^g V_j + \frac{k(g-1)}{k-1} Var(E_j)),$$ where by $Var(E_j)$ means the variance of the sample means.

A demonstration in 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

If the sample sizes are not equal, the formula is not so nice.

EDIT: formula for unequal sample sizes

If there are $g$ sub-samples, each with $k_j, j=1,\ldots,g$ elements for a total of $n=\sum{k_j}$ valores, entonces $$ Var(X_1,\ldots,X_{n}) = \frac{1}{n-1}\left(\sum_{j=1}^g (k_j-1) V_j + \sum_{j=1}^g k_j (\bar{X}_j - \bar{X})^2\right), $$ donde $\bar{X} = (\sum_{j=1}^gk_j\bar{X}_j)/n$ es el promedio ponderado de todos los medios (y es igual a la media de todos los valores).

De nuevo, una demostración:

> 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

Por cierto, estas fórmulas son fáciles de derivar por escrito deseada de la varianza como la ampliación de la suma de $(X_{ji}-\bar{X})^2$, luego introducir el $\bar{X}_j$: $[(X_{ji}-\bar{X}_j)-(\bar{X}_j-\bar{X})]^2$, utilizando el cuadrado de la diferencia de la fórmula, y la simplificación.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X