Para caracterizar la cantidad de dispersión 2D alrededor del centroide, sólo se quiere la distancia media cuadrática (raíz),
$$\hat\sigma=\text{RMS} = \sqrt{\frac{1}{n}\sum_i\left((x_i - \bar{x})^2 + (y_i - \bar{y})^2\right)}.$$
En esta fórmula, $(x_i, y_i), i=1, 2, \ldots, n$ son las coordenadas de los puntos y su centroide (punto de media) es $(\bar{x}, \bar{y}).$
En la pregunta se pide el distribución de las distancias. Cuando las bolas tienen una distribución normal bivariante isotrópica en torno a su centroide -que es una suposición estándar y físicamente razonable- la distancia al cuadrado es proporcional a una distribución chi-cuadrado con dos grados de libertad (uno para cada coordenada). Esto es una consecuencia directa de una definición de la distribución chi-cuadrado como una suma de cuadrados de variables normales estándar independientes, porque $$x_i - \bar{x} = \frac{n-1}{n}x_i - \sum_{j\ne i}\frac{1}{n}x_j$$ es una combinación lineal de variantes normales independientes con expectativa $$\mathbb{E}[x_i - \bar{x}] = \frac{n-1}{n}\mathbb{E}[x_i] -\sum_{j\ne i}\frac{1}{n}\mathbb{E}[x_j] = 0.$$ Escribir la varianza común del $x_i$ como $\sigma^2$ , $$\mathbb{E}[\left(x_i -\bar{x}\right)^2]=\text{Var}(x_i - \bar{x}) = \left(\frac{n-1}{n}\right)^2\text{Var}(x_i) + \sum_{j\ne i}\left(\frac{1}{n}\right)^2\text{Var}(x_j) = \frac{n-1}{n}\sigma^2.$$ La hipótesis de la anisotropía es que el $y_j$ tienen la misma distribución que el $x_i$ y son independientes de ellas, por lo que un resultado idéntico es válido para la distribución de $(y_j - \bar{y})^2$ . Esto establece la constante de proporcionalidad: los cuadrados de las distancias tienen una distribución chi-cuadrado con dos grados de libertad, escalada por $\frac{n-1}{n}\sigma^2$ .
La prueba más severa de estas ecuaciones es el caso $n=2$ pues entonces la fracción $\frac{n-1}{n}$ es la que más se diferencia de $1$ . Mediante la simulación del experimento, tanto para $n=2$ y $n=40$ y sobretrazando los histogramas de las distancias al cuadrado con las distribuciones chi-cuadrado escaladas (en rojo), podemos verificar esta teoría.
Cada fila muestra los mismos datos: a la izquierda el eje x es logarítmico; a la derecha muestra la distancia real al cuadrado. El valor real de $\sigma$ para estas simulaciones se fijó en $1$ .
Estos resultados son para 100.000 iteraciones con $n=2$ y 50.000 iteraciones con $n=40$ . Los acuerdos entre los histogramas y las densidades de chi-cuadrado son excelentes.
Aunque $\sigma^2$ se desconoce, se puede estimar de varias maneras. Por ejemplo, la distancia media al cuadrado debe ser $\frac{n-1}{n}\sigma^2$ veces la media de $\chi^2_2$ que es $2$ . Con $n=40$ por ejemplo, estimar $\sigma^2$ como $\frac{40}{39}/2$ veces la distancia media al cuadrado. Por lo tanto, una estimación de $\sigma$ sería $\sqrt{40/78}$ veces la distancia RMS. Utilizando los valores de la $\chi^2_2$ distribución podemos entonces decir que:
-
Aproximadamente el 39% de las distancias serán inferiores a $\sqrt{39/40}\hat\sigma$ porque el 39% de un $\chi^2_2$ distribución es menor que $1$ .
-
Aproximadamente el 78% de las distancias serán inferiores a $\sqrt{3}$ veces $\sqrt{39/40}\hat\sigma$ porque el 78% de un $\chi^2_2$ distribución es menor que $3$ .
Y así sucesivamente, para cualquier múltiplo que desee utilizar en lugar de $1$ ou $3$ . Como comprobación, en las simulaciones para $n=40$ trazados anteriormente, las proporciones reales de distancias al cuadrado inferiores a $1, 2, \ldots, 10$ veces $\frac{n-1}{n}\hat\sigma^2$ fueron
0.3932 0.6320 0.7767 0.8647 0.9178 0.9504 0.9700 0.9818 0.9890 0.9933
Las proporciones teóricas son
0.3935 0.6321 0.7769 0.8647 0.9179 0.9502 0.9698 0.9817 0.9889 0.9933
El acuerdo es excelente.
Aquí está R
para realizar y analizar las simulaciones.
f <- function(n, n.iter, x.min=0, x.max=Inf, plot=TRUE) {
#
# Generate `n.iter` experiments in which `n` locations are generated using
# standard normal variates for their coordinates.
#
xy <- array(rnorm(n*2*n.iter), c(n.iter,2,n))
#
# Compute the squared distances to the centers for each experiment.
#
xy.center <- apply(xy, c(1,2), mean)
xy.distances2 <- apply(xy-array(xy.center, c(n.iter,2,n)), c(1,3),
function(z) sum(z^2))
#
# Optionally plot histograms.
#
if(plot) {
xy.plot <- xy.distances2[xy.distances2 >= x.min & xy.distances2 <= x.max]
hist(log(xy.plot), prob=TRUE, breaks=30,
main=paste("Histogram of log squared distance, n=", n),
xlab="Log squared distance")
curve(dchisq(n/(n-1) * exp(x), df=2) * exp(x) * n/(n-1),
from=log(min(xy.plot)), to=log(max(xy.plot)),
n=513, add=TRUE, col="Red", lwd=2)
hist(xy.plot, prob=TRUE, breaks=30,
main=paste("Histogram of squared distance, n=", n),
xlab="Squared distance")
curve(n/(n-1) * dchisq(n/(n-1) * x, df=2),
from=min(xy.plot), to=max(xy.plot),
n=513, add=TRUE, col="Red", lwd=2)
}
return(xy.distances2)
}
#
# Plot the histograms and compare to scaled chi-squared distributions.
#
par(mfrow=c(2,2))
set.seed(17)
xy.distances2 <- f(2, 10^5, exp(-6), 6)
xy.distances2 <- f(n <- 40, n.iter <- 50000, exp(-6), 12)
#
# Compare the last simulation to cumulative chi-squared distributions.
#
sigma.hat <- sqrt((n / (2*(n-1)) * mean(xy.distances2)))
print(cumsum(tabulate(cut(xy.distances2,
(0:10) * (n-1)/n * sigma.hat^2))) / (n*n.iter), digits=4)
print(pchisq(1:10, df=2), digits=4)