Щоб охарактеризувати величину двовимірної дисперсії навколо центроїда, потрібно просто (коренева) середня відстань у квадраті,
σ^= RMS =1н∑i( (хi-х¯)2+ (уi-у¯)2)-----------------------√.
У цій формулі - координати точок, а їх центроїд (точка середніх значень) дорівнює(хi,уi) , i = 1 , 2 , … , n(х¯,у¯) .
Питання задає розподіл відстаней. Коли кулі мають ізотропний двовимірний нормальний розподіл навколо їх центральної залози - що є стандартним і фізично обґрунтованим припущенням - відстань у квадраті пропорційна розподілу чи-квадрата з двома ступенями свободи (по одному на кожну координату). Це прямий наслідок одного визначення розподілу chi-квадрата як суми квадратів незалежних стандартних нормальних змінних, оскільки - лінійна комбінація незалежних нормальних змінних з очікуванням Написання загальної дисперсії
хi-х¯=n - 1нхi-∑j ≠ i1нхj
E [хi-х¯] =n - 1нE [хi] -∑j ≠ i1нE [хj] = 0.
хiяк , Припущення про анізотропію полягає в тому, що мають той самий розподіл, що і і незалежні від них, тому однаковий результат справедливий для розподілу . Це встановлює константу пропорційності:
квадрати відстаней мають розподіл у квадраті з двома ступенями свободи, масштабовану на .σ2E [(хi-х¯)2] = Var (хi-х¯) =(n - 1н)2Вар (хi) +∑j ≠ i(1н)2Вар (хj) =n - 1нσ2.
уjхi(уj-у¯)2n - 1нσ2
Найсуворішим випробуванням цих рівнянь є випадок , оскільки тоді дріб найбільше відрізняється від . Симулюючи експеримент, як для і для , і перенапружуючи гістограми квадратних відстаней масштабованими розподілами чи-квадрата (червоним кольором), ми можемо перевірити цю теорію.n = 2n - 1н1n = 2n = 40
Кожен рядок показує однакові дані: ліворуч вісь x логарифмічна; праворуч він показує фактичну відстань у квадраті. Справжнє значення для цих симуляцій було встановлено на .σ1
Ці результати для 100 000 ітерацій з і 50 000 ітерацій з . Домовленості між гістограмами та щільністю у квадратику є чудовими.n = 2n = 40
Хоча σ2невідомо, його можна оцінити різними способами. Наприклад, має бути середня квадратна відстаньn - 1нσ2 разів більше середнього значення χ22, який 2. Зn = 40, наприклад, кошторис σ2 як 4039/ 2разів перевищує середню відстань у квадраті. Таким чином, оцінкаσ було б 40 / 78-----√разів відстань RMS. Використання значеньχ22 Потім ми можемо сказати, що:
Приблизно на 39% відстаней буде менше 39 / 40-----√σ^, тому що 39% а χ22 розподіл менше, ніж 1.
Приблизно 78% відстаней будуть менше 3-√ разів 39 / 40-----√σ^, тому що 78% а χ22 розподіл менше, ніж 3.
І так далі, для будь-якого множника, який ви хочете використовувати замість 1 або 3. Як перевірка, в моделювання дляn = 40 Накреслені раніше, фактичні пропорції квадратних відстаней менше 1 , 2 , … , 10раз булиn - 1нσ^2
0.3932 0.6320 0.7767 0.8647 0.9178 0.9504 0.9700 0.9818 0.9890 0.9933
Теоретичні пропорції є
0.3935 0.6321 0.7769 0.8647 0.9179 0.9502 0.9698 0.9817 0.9889 0.9933
Угода відмінна.
Ось R
код для проведення та аналізу моделювання.
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)