Per caratterizzare la quantità di dispersione 2D attorno al centroide, vuoi solo la distanza quadrata media (radice),
σ^=RMS=1n∑i((xi−x¯)2+(yi−y¯)2)−−−−−−−−−−−−−−−−−−−−−−−√.
In questa formula, sono le coordinate del punto e il loro centroide (punto delle medie) è( ˉ x , ˉ y ) .( xio, yio) , i = 1 , 2 , … , n( x¯, y¯) .
La domanda richiede la distribuzione delle distanze. Quando le palle hanno una bivariata isotropica. Distribuzione normale attorno al loro centroide - che è un presupposto standard e fisicamente ragionevole - la distanza al quadrato è proporzionale a una distribuzione chi-quadrata con due gradi di libertà (una per ogni coordinata). Questa è una conseguenza diretta di una definizione della distribuzione chi-quadrato come somma di quadrati di variabili normali standard indipendenti, perché è una combinazione lineare di variate normali indipendenti con aspettativa Scrivere la varianza comune diE [ x i - ˉ x ] = n - 1
Xio- x¯= n - 1nXio- ∑j ≠ i1nXj
xiσ2E[(xi- ˉ x )2]E [ xio- x¯] = n - 1nE [ xio] - ∑j ≠ i1nE [ xj] = 0.
Xiocome , Il presupposto dell'anisotropia è che abbia la stessa distribuzione di e siano indipendenti da loro, quindi un risultato identico vale per la distribuzione di . Ciò stabilisce la costante di proporzionalità:
i quadrati delle distanze hanno una distribuzione chi-quadrata con due gradi di libertà, ridimensionati da .σ2yjxiE [ ( xio- x¯)2] = Var ( xio- x¯) = ( n - 1n)2Var ( xio) + ∑j ≠ i( 1n)2Var ( xj) = n - 1nσ2.
yjXion - 1( yj- y¯)2n - 1nσ2
Il test più severo di queste equazioni è il caso , poiché la frazione differisce di più da . Simulando l'esperimento, sia per che , e sovrapponendo gli istogrammi delle distanze al quadrato con le distribuzioni ridimensionate del chi-quadrato (in rosso), possiamo verificare questa teoria.n - 1n = 2n - 1nn = 2 n = 401n = 2n = 40
Ogni riga mostra gli stessi dati: a sinistra l'asse x è logaritmico; a destra mostra l'attuale distanza al quadrato. Il vero valore di per queste simulazioni è stato impostato su .1σ1
Questi risultati sono per 100.000 iterazioni con e 50.000 iterazioni con . Gli accordi tra gli istogrammi e le densità chi-quadrate sono eccellenti.n = 40n = 2n = 40
Sebbene sia sconosciuto, può essere stimato in vari modi. Ad esempio, la distanza quadrata media dovrebbe essere volte la media di , che è . Con , ad esempio, stimare come volte la distanza media al quadrato. Quindi una stima di sarebbe volte la distanza RMS. Usando i valori della possiamo quindi dire che:n - 1σ2χ 2 2n - 1nσ2χ22n = 40 σ 2 402n=40σ2σ√4039/2σ40/78−−−−−√χ22
Circa il 39% delle distanze sarà inferiore a , poiché il 39% di una distribuzione è inferiore a .39/40−−−−−√σ^χ221
Circa il 78% delle distanze sarà inferiore a volte , poiché il 78% di una distribuzione è inferiore a .3–√39/40−−−−−√σ^χ223
E così via, per qualsiasi multiplo che ti interessa utilizzare al posto di o . Come controllo, nelle simulazioni per tracciate in precedenza, le proporzioni effettive delle distanze quadrate inferiori a volte erano13n=401,2,…,10n−1nσ^2
0.3932 0.6320 0.7767 0.8647 0.9178 0.9504 0.9700 0.9818 0.9890 0.9933
Le proporzioni teoriche sono
0.3935 0.6321 0.7769 0.8647 0.9179 0.9502 0.9698 0.9817 0.9889 0.9933
L'accordo è eccellente.
Ecco il R
codice per condurre e analizzare le simulazioni.
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)