Çok değişkenli bir Normal dağılımın parametrelerini belirli bir güven için belirtilen doğrulukta tahmin etmek için gereken veri miktarı, boyutla değişmez, diğer tüm şeyler aynıdır. Bu nedenle, herhangi bir değişiklik yapmadan yüksek boyutlu problemlere iki boyut için herhangi bir başparmak kuralı uygulayabilirsiniz.
Neden olsun ki? Sadece üç tür parametre vardır: ortalamalar, varyanslar ve kovaryanslar. Ortalamadaki tahmin hatası sadece varyans ve veri miktarına bağlıdır, . Bu nedenle, çok değişkenli bir Normal dağılıma ve varyansları , tahminleri sadece ve . Nereden, tahmin yeterli doğruluk elde etmek için tüm , sadece için gerekli veri miktarını dikkate almak gerekir sahip büyük birn(X1,X2,…,Xd)Xiσ2iE[Xi]σinE[Xi]Xiσi. Bu nedenle, boyutlarını arttırmak için bir dizi tahmin problemini düşündüğümüzde, düşünmemiz gereken tek şey en büyük ne kadar artacağıdır. Bu parametreler yukarıda sınırlandığında, gerekli veri miktarının boyuta bağlı olmadığı sonucuna varıyoruz .dσi
Benzer düşünceler ve kovaryanslar varyanslarını tahmin etmek için de geçerlidir : bir kovaryansın (veya korelasyon katsayısının) istenen doğrulukta tahmin edilmesi için belirli bir miktarda veri yeterli ise , o zaman - alttaki normal dağılımın benzer olması şartıyla parametre değerleri - herhangi bir kovaryans veya korelasyon katsayısını tahmin etmek için aynı miktarda veri yeterli olacaktır .σ2iσij
Bu argümanı örneklendirmek ve ampirik destek sağlamak için bazı simülasyonları inceleyelim. Aşağıda belirtilen boyutların çok normal dağılımına yönelik parametreler yaratılır, bu dağıtımdan birçok bağımsız, aynı şekilde dağıtılmış vektör kümesi çekilir, bu örneklerin her birinden parametreler tahmin edilir ve bu parametre tahminlerinin sonuçları (1) ortalamaları- - tahminlerin doğruluğunu ölçen standart sapmalarının tarafsız olduğunu (ve kodun düzgün çalıştığını - ve (2) göstermek için) (Birden fazla elde edilen tahminler arasındaki varyasyon miktarını niceleyen bu standart sapmaları karıştırmayın. altta yatan multinormal dağılımı tanımlamak için kullanılan standart sapmalarla simülasyonun yinelemeleri!d değişiklikleri, değiştikçe, altta yatan multinormal dağılımın kendisine daha büyük varyanslar getirmemiz koşuluyla .d
Temel dağılımın varyanslarının boyutları, bu simülasyonda, kovaryans matrisinin en büyük öz değeri eşitlenerek kontrol edilir . Bu, bu bulutun şekli ne olursa olsun, boyut arttıkça olasılık yoğunluğunu "bulut" sınır içinde tutar. Boyut arttıkça sistemin diğer davranış modellerinin simülasyonları sadece özdeğerlerin nasıl üretildiğini değiştirerek oluşturulabilir; bir örnek (Gamma dağılımı kullanılarak) aşağıdaki kodda açıklanmıştır.1R
Aradığımız, parametre tahminlerinin standart sapmalarının, boyutu değiştiğinde önemli ölçüde değişmediğini doğrulamaktır . Bu yüzden, iki uç, sonuçlarını gösterir ve , aynı miktarda veri (kullanarak her iki durumda da). , eşit olduğunda tahmin edilen parametre sayısının, vektörlerin ( ) sayısını çok aştığı ve tüm veri kümesindeki bireysel sayıları ( ) bile aştığı dikkate değerdir .dd=2d=6030d=6018903030∗60=1800
İki boyutla başlayalım, . Beş parametre vardır: iki varyans ( bu simülasyonda ve standart sapmaları ile ), bir kovaryans (SD = ) ve iki ortalama (SD = ve ). Farklı simülasyonlarla (rastgele tohumun başlangıç değerini değiştirerek elde edilebilir) bunlar biraz değişecektir, ancak örnek boyutu olduğunda tutarlı bir şekilde karşılaştırılabilir boyutta olacaktır . Örneğin, bir sonraki simülasyonda SD'ler , , , ved=20.0970.1820.1260.110.15n=300.0140.2630.0430.040.18sırasıyla: hepsi değişti ancak karşılaştırılabilir büyüklük derecelerine sahipler.
(Bu ifadeler teorik olarak desteklenebilir ancak burada amaç tamamen ampirik bir gösteri sunmaktır.)
Şimdi taşımak , numune büyüklüğü tutma . Spesifik olarak, bu, her örneğin , her biri bileşene sahip vektörden oluştuğu anlamına gelir . standart sapmalarını listelemek yerine , aralıklarını tasvir etmek için histogramları kullanarak resimlerine bakalım.d=60n=3030601890
Üst satırdaki dağılım grafikleri, gerçek parametreleri sigma
( ) ve ( ) , bu simülasyondaki yinelemesi sırasında yapılan ortalama tahminlerle karşılaştırır . Gri referans çizgileri mükemmel eşitlik odağını işaret eder: tahminler açıkça amaçlandığı gibi çalışır ve tarafsızdır.σmu
μ104
Histogramlar, alt sırada, kovaryans matrisindeki (sol) ve ortalamalar (sağ) için tüm girişler için ayrı ayrı görünür. Bireysel varyansların SD'leri ve arasında yer alırken, ayrı bileşenler arasındaki kovaryansların SD'leri ve arasında yer alır : tam olarak olduğunda elde edilen aralıkta . Benzer şekilde, ortalama tahminlerin SD'leri ile arasındadır , bu da olduğunda görülenle karşılaştırılabilir . Kesinlikle pazarcı olduğunu ifade yoktur artmış olarak0.080.120.040.08d=20.080.13d=2ddan çıktım kadar .260
Kod aşağıdaki gibidir.
#
# 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