Um das Ausmaß der 2D-Streuung um den Schwerpunkt zu charakterisieren, möchten Sie nur den (quadratischen) mittleren quadratischen Abstand.
σ^= RMS = 1n∑ich( ( xich- x¯)2+ ( yich- y¯)2)- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -√.
In dieser Formel sind die Punktkoordinaten und ihr Schwerpunkt (Punkt der Mittelwerte) ist( ˉ x , ˉ y ) .( xich, yich) , i = 1 , 2 , … , n( x¯, y¯) .
Die Frage fragt nach der Verteilung der Entfernungen. Wenn die Kugeln eine isotrope bivariate Normalverteilung um ihren Schwerpunkt haben - was eine übliche und physikalisch vernünftige Annahme ist -, ist der quadratische Abstand proportional zu einer Chi-Quadrat-Verteilung mit zwei Freiheitsgraden (einer für jede Koordinate). Dies ist eine direkte Folge einer Definition der Chi-Quadrat-Verteilung als Summe der Quadrate unabhängiger Standardnormalvariablen, da ist eine lineare Kombination unabhängiger Normalvariablen mit Erwartung Schreiben der gemeinsamen Varianz vonE[xi- ˉ x ]=n-1
xich- x¯= n - 1nxich- ∑j ≠ i1nxj
xiσ2E[(xi- ˉ x )2]=Var(xi- ˉ x )=( n - 1E [ xich- x¯] = n - 1nE [ xich] - ∑j ≠ i1nE [ xj] = 0.
xichals , Die Annahme der Anisotropie ist, dass die die gleiche Verteilung wie die und von diesen unabhängig sind, so dass ein identisches Ergebnis für die Verteilung von . Dies legt die Proportionalitätskonstante fest:
Die Quadrate der Abstände haben eine Chi-Quadrat-Verteilung mit zwei Freiheitsgraden, skaliert mit .σ2yjE [ ( xich- x¯)2] = Var ( xich- x¯) = ( n - 1n)2Var ( xich) + ∑j ≠ i( 1n)2Var ( xj) = n - 1nσ2.
yj ( y j - ˉ y ) 2 n - 1xich( yj- - y¯)2n -1nσ2
Der strengste Test dieser Gleichungen ist der Fall , denn dann unterscheidet sich der Bruch am meisten von . Indem wir das Experiment sowohl für als auch für simulieren und die Histogramme der quadratischen Abstände mit den skalierten Chi-Quadrat-Verteilungen (in rot) überzeichnen, können wir diese Theorie verifizieren.n - 1n = 2 1n=2n=40n -1n1n = 2n = 40
Jede Zeile zeigt die gleichen Daten: Links ist die x-Achse logarithmisch; Auf der rechten Seite wird der tatsächliche quadratische Abstand angezeigt. Der wahre Wert von für diese Simulationen wurde auf .1σ1
Diese Ergebnisse gelten für 100.000 Iterationen mit und 50.000 Iterationen mit . Die Übereinstimmungen zwischen den Histogrammen und den Chi-Quadrat-Dichten sind ausgezeichnet.n = 40n = 2n = 40
Obwohl unbekannt ist, kann es auf verschiedene Arten geschätzt werden. Zum Beispiel sollte der mittlere quadratische Abstand mal der Mittelwert von , was . Schätzen Sie beispielsweise mit als fache der mittleren quadratischen Entfernung. Somit wird eine Schätzung der wäre mal dem Abstand RMS. Mit Werten der Verteilung können wir dann sagen:n - 1σ2χn -1nσ2 2n=40σ240χ222n = 40σ2& sgr;√4039/ 2σ χ 2 240 / 78- -- -- -- -- -√χ22
Ungefähr 39% der Entfernungen sind kleiner als , da 39% einer Verteilung kleiner als . & khgr; 2 2 139 / 40- -- -- -- -- -√σ^χ221
Ungefähr 78% der Entfernungen sind kleiner als mal , da 78% einer Verteilung kleiner als . √3- -√ & khgr; 2 2 339 / 40- -- -- -- -- -√σ^χ223
Und so weiter, für jedes Vielfache, das Sie anstelle von oder . Zur Kontrolle bei den Simulationen für die zuvor aufgetragen, um die tatsächlichen Proportionen der quadrierten Abstände von weniger als mal waren3 n = 40 1 , 2 , … , 10 n - 113n = 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
Die theoretischen Proportionen sind
0.3935 0.6321 0.7769 0.8647 0.9179 0.9502 0.9698 0.9817 0.9889 0.9933
Die Übereinstimmung ist ausgezeichnet.
Hier ist R
Code zur Durchführung und Analyse der Simulationen.
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)