Ilość danych potrzebnych do oszacowania parametrów wielowymiarowego rozkładu normalnego z określoną dokładnością do określonej ufności nie zmienia się w zależności od wymiaru, wszystkie inne rzeczy są takie same. Dlatego możesz zastosować dowolną zasadę dotyczącą dwóch wymiarów do problemów o wyższych wymiarach bez żadnych zmian.
Dlaczego to powinno? Istnieją tylko trzy rodzaje parametrów: średnie, wariancje i kowariancje. Błąd oszacowania w średniej zależy tylko od wariancji i ilości danych, . Tak więc, gdy ma wielowymiarowego rozkładu normalnego i Posiadane odchylenia , wtedy oszacowania zależą tylko i . Skąd, w celu uzyskania odpowiedniej dokładności przy szacowaniu wszystkie tylko trzeba wziąć pod uwagę ilość danych potrzebnych do mającemu największą z( X 1 , X 2 , … , X d ) X i σ 2 i E [ X i ] σ i n E [ X i ] X i σ i d σ in( X1, X2), … , Xre)Xjaσ2)jaE [ Xja]σjanE [ Xja]Xjaσja. Dlatego, gdy rozważamy szereg problemów z estymacją dla zwiększenia wymiarów , wszystko, co musimy wziąć pod uwagę, to o ile wzrośnie największy . Kiedy powyższe parametry są ograniczone powyżej, dochodzimy do wniosku, że ilość potrzebnych danych nie zależy od wymiaru.reσja
Podobne uwagi dotyczą oszacowania wariancji i kowariancji : jeśli pewna ilość danych wystarcza do oszacowania jednej kowariancji (lub współczynnika korelacji) z pożądaną dokładnością, to - pod warunkiem, że podstawowy rozkład normalny ma podobny wartości parametrów - ta sama ilość danych wystarczy do oszacowania dowolnego kowariancji lub współczynnika korelacji. σ i jσ2)jaσI j
Aby zilustrować i dostarczyć empirycznego wsparcia dla tego argumentu, przestudiujmy niektóre symulacje. Poniżej przedstawiono parametry dla wielonormalnego rozkładu określonych wymiarów, rysuje wiele niezależnych, identycznie rozmieszczonych zestawów wektorów z tego rozkładu, szacuje parametry z każdej takiej próbki i podsumowuje wyniki tych oszacowań parametrów pod względem (1) ich średnich - -by wykazać, że są bezstronni (a kod działa poprawnie - i (2) ich odchylenia standardowe, które określają ilościowo dokładność szacunków. (Nie należy mylić tych odchyleń standardowych, które określają ilościowo różnicę między szacunkami uzyskanymi w wielu przypadkach iteracje symulacji, ze standardowymi odchyleniami użytymi do zdefiniowania leżącego u podstaw rozkładu wielonormalnego!dre zmiany, pod warunkiem, że jako zmiany nie wprowadzają większych odchyleń w samym podstawowym rozkładzie wielonormalnym.re
Rozmiary wariancji rozkładu podstawowego są kontrolowane w tej symulacji poprzez uczynienie największej wartości własnej macierzy kowariancji równej . Utrzymuje to „chmurę” gęstości prawdopodobieństwa w granicach wraz ze wzrostem wymiaru, bez względu na kształt tego obłoku. Symulacje innych modeli zachowania systemu wraz ze wzrostem wymiaru można utworzyć po prostu zmieniając sposób generowania wartości własnych; jeden przykład (z zastosowaniem rozkładu gamma) został skomentowany w poniższym kodzie.1R
To, czego szukamy, to zweryfikowanie, czy odchylenia standardowe oszacowań parametrów nie zmieniają się znacząco po zmianie wymiaru . W związku z tym przedstawiono wyniki dla dwóch skrajnych, , a , stosując tę samą ilość danych ( ), w obu przypadkach. Warto zauważyć, że liczba parametrów oszacowana, gdy , równa , znacznie przewyższa liczbę wektorów ( ) i przekracza nawet poszczególne liczby ( ) w całym zbiorze danych.d = 2rere= 230 d = 60 1890 30 30 ∗ 60 = 1800re= 6030re= 6018903030 ∗ 60 = 1800
Zacznijmy od dwóch wymiarów, . Istnieje pięć parametrów: dwie wariancje (przy odchyleniach standardowych i w tej symulacji), kowariancja (SD = ) i dwa średnie (SD = i ). Przy różnych symulacjach (możliwych do uzyskania przez zmianę wartości początkowej losowego materiału siewnego) będą one się nieco różnić, ale będą miały konsekwentnie porównywalny rozmiar, gdy wielkość próbki wynosi . Na przykład w następnej symulacji SD wynoszą , , , i0,097 0,182 0,126 0,11 0,15 n = 30 0,014 0,263 0,043 0,04 0,18re= 20,0970,1820,1260,110,15n = 300,0140,2630,0430,040,18odpowiednio: wszystkie się zmieniły, ale mają porównywalne rzędy wielkości.
(Te twierdzenia można poprzeć teoretycznie, ale chodzi tutaj o przedstawienie czysto empirycznej demonstracji).
Teraz przechodzimy do , utrzymując wielkość próbki na poziomie . W szczególności oznacza to, że każda próbka składa się z wektorów, z których każdy ma składników. Zamiast wymienić wszystkie odchylenia standardowe z , Spójrzmy na ich zdjęcia za pomocą histogramów, aby zobrazować ich zakresy.n = 30 30 60 1890re= 60n = 3030601890
Wykresy rozrzutu w górnym rzędzie porównują rzeczywiste parametry sigma
( ) i ( ) ze średnimi oszacowaniami dokonanymi podczas iteracji w tej symulacji. Szare linie odniesienia oznaczają miejsce doskonałej równości: wyraźnie szacunki działają zgodnie z przeznaczeniem i są bezstronne.μ 10 4σmu
μ104
Histogramy pojawiają się w dolnym rzędzie, osobno dla wszystkich wpisów w macierzy kowariancji (po lewej) i dla średnich (po prawej). Wartości SD poszczególnych wariancji mieszczą się w przedziale od do podczas gdy wartości SD kowariancji między oddzielnymi składnikami zwykle mieszczą się w zakresie od do : dokładnie w zakresie osiągniętym, gdy . Podobnie, SD średnich oszacowań zwykle mieszczą się w zakresie od do , co jest porównywalne z tym, co zaobserwowano, gdy . Z pewnością nic nie wskazuje na to, że SD wzrosły jako0,12 0,04 0,08 d = 2 0,08 0,13 d = 2 d 2 600,080,120,040,08re= 20,080,13re= 2rewzrosła z do .2)60
Kod następuje.
#
# Create iid multivariate data and do it `n.iter` times.
#
sim <- function(n.data, mu, sigma, n.iter=1) {
#
# Returns arrays of parmeter estimates (distinguished by the last index).
#
library(MASS) #mvrnorm()
x <- mvrnorm(n.iter * n.data, mu, sigma)
s <- array(sapply(1:n.iter, function(i) cov(x[(n.data*(i-1)+1):(n.data*i),])),
dim=c(n.dim, n.dim, n.iter))
m <-array(sapply(1:n.iter, function(i) colMeans(x[(n.data*(i-1)+1):(n.data*i),])),
dim=c(n.dim, n.iter))
return(list(m=m, s=s))
}
#
# Control the study.
#
set.seed(17)
n.dim <- 60
n.data <- 30 # Amount of data per iteration
n.iter <- 10^4 # Number of iterations
#n.parms <- choose(n.dim+2, 2) - 1
#
# Create a random mean vector.
#
mu <- rnorm(n.dim)
#
# Create a random covariance matrix.
#
#eigenvalues <- rgamma(n.dim, 1)
eigenvalues <- exp(-seq(from=0, to=3, length.out=n.dim)) # For comparability
u <- svd(matrix(rnorm(n.dim^2), n.dim))$u
sigma <- u %*% diag(eigenvalues) %*% t(u)
#
# Perform the simulation.
# (Timing is about 5 seconds for n.dim=60, n.data=30, and n.iter=10000.)
#
system.time(sim.data <- sim(n.data, mu, sigma, n.iter))
#
# Optional: plot the simulation results.
#
if (n.dim <= 6) {
par(mfcol=c(n.dim, n.dim+1))
tmp <- apply(sim.data$s, 1:2, hist)
tmp <- apply(sim.data$m, 1, hist)
}
#
# Compare the mean simulation results to the parameters.
#
par(mfrow=c(2,2))
plot(sigma, apply(sim.data$s, 1:2, mean), main="Average covariances")
abline(c(0,1), col="Gray")
plot(mu, apply(sim.data$m, 1, mean), main="Average means")
abline(c(0,1), col="Gray")
#
# Quantify the variability.
#
i <- lower.tri(matrix(1, n.dim, n.dim), diag=TRUE)
hist(sd.cov <- apply(sim.data$s, 1:2, sd)[i], main="SD covariances")
hist(sd.mean <- apply(sim.data$m, 1, sd), main="SD means")
#
# Display the simulation standard deviations for inspection.
#
sd.cov
sd.mean