데이터에 가우시안 분포가있는 경우 몇 개의 샘플을 특성화합니까?


12

단일 차원으로 분포 된 가우시안 데이터는이를 특성화하기 위해 두 개의 매개 변수가 필요하며 (평균, 분산), 약 30 개의 무작위로 선택된 샘플이 일반적으로 이러한 매개 변수를 합리적으로 높은 신뢰도로 추정하기에 충분하다는 소문이 있습니다. 그러나 차원 수가 증가하면 어떻게됩니까?

2 차원 (예 : 높이, 무게)에서 "최적의"타원을 지정하려면 5 개의 매개 변수가 필요합니다. 3 차원에서 이것은 타원체를 설명하기 위해 9 개의 매개 변수로 올라가고, 4 차원에서는 14 개의 매개 변수를 취합니다. 이 매개 변수를 추정하는 데 필요한 샘플 수가 비슷한 속도, 느린 속도 또는 높은 속도로 증가하는지 알고 싶습니다. 주어진 차원에서 가우스 분포를 특성화하기 위해 얼마나 많은 샘플이 필요한지를 암시하는 널리 인정되는 경험 법칙이 있다면 더 좋을 것입니다.

더 정확하게 말하면, 모든 표본의 95 %가 떨어질 것이라고 확신 할 수있는 평균점을 중심으로 대칭적인 "최적 적합"경계를 정의한다고 가정합니다. 이 경계 (1-D 간격, 2D 타원 등)를 적절하게 높은 신뢰도 (> 95 %)로 근사화하기위한 매개 변수를 찾는 데 얼마나 많은 샘플이 필요한지 알고 싶습니다. 차원 수가 증가합니다.


3
'핀 다운'에 대한 정확한 정의가 없으면 단 변량 가우스의 경우에도이 질문에 대답 할 수 없습니다.
Glen_b-복지 모니카

1
어떻습니까 : 모든 샘플의 95 % (모든 샘플의 95 % 만)가 정의 된 간격 / 타원 / 엘 리포이드 / 하이 펠 리포이드 내에있을 것이라고 95 % 이상 확신하는 데 얼마나 많은 샘플이 필요합니까?
omatai

1
즉, 모든 표본의 95 %가 평균의 정의 된 거리 내에 놓일 것입니다. 95 % 이상의 신뢰도로 거리 (간격 / 타원 / 엘 리포이드 등)를 정의하기 위해 얼마나 많은 샘플이 필요합니까?
omatai

1
모수 ( 차원의 값) 보다 하나 이상의 독립적 인 데이터 값을 가지면 그 주변에 95 % 신뢰 영역을 세울 수 있습니다. ( 비 전통적인 기술을 사용하여 더 잘 수행 할 수 있습니다 .) 이것이 정답이지만 정답은 아닐 것입니다. 요점은 이 질문에 대한 답을 얻기 위해 원하는 정확도의 절대 척도 를 지정해야한다는 것 입니다. (d+22)d
whuber

1
Snedecor & Cochran [ Statistical Methods , 8th edition]은 샘플링에 대한 권한입니다. 그들은이 과정을 4 장과 6 장에서 설명한다. "처음에는 모집단 표준 편차 ...가 알려져 있다고 가정한다 ." 나중에 그들은 "이 방법은 작업 라인의 초기 단계에서 가장 유용합니다. ... 예를 들어, 이전의 작은 실험에서 새로운 치료법은 약 20 % 증가하고 는 약 7 % 수사관은 ... [want an] SE의 2 %로하여 를 설정하여 . 나중에 작업에서σDσ±2(7)/n=2n=25
whuber

답변:


7

주어진 신뢰도에 대해 지정된 정확도 내에 다변량 정규 분포의 모수를 추정하는 데 필요한 데이터의 양은 차원에 따라 다르지 않으며 다른 모든 것은 동일합니다. 따라서 2 차원에 대한 경험 법칙을 전혀 변경하지 않고 더 높은 차원의 문제에 적용 할 수 있습니다.

왜 그래야합니까? 평균, 분산 및 공분산의 세 가지 매개 변수 유형 만 있습니다. 평균의 추정 오차는 분산과 데이터 양 에만 의존합니다 . 따라서 에 다변량 정규 분포가 있고 에 분산 경우 의 추정값은 및 에만 의존합니다 . 어디서, 추정에 충분한 정확성을 달성하는 모든 , 우리는 단지에 필요한 데이터의 양을 고려할 필요가 가진 최대n(X1,X2,,Xd)Xiσi2E[Xi]σinE[Xi]Xiσi. 따라서 차원 를 늘리기위한 연속적인 추정 문제 를 고려할 때 가장 큰 가 얼마나 증가 할 것인지 만 고려 하면됩니다. 이러한 매개 변수가 위에 묶여 있으면 필요한 데이터 양이 차원에 의존하지 않는다고 결론을 내립니다 .dσi

분산 및 공분산 를 추정 할 비슷한 고려 사항이 적용됩니다 . 하나의 공분산 (또는 상관 계수)을 원하는 정확도 로 추정하기 위해 일정량의 데이터로 충분 하다면, 기본 정규 분포가 비슷한 경우 모수 값- 공분산 또는 상관 계수 를 추정 하는 데 동일한 양의 데이터로 충분합니다 .σi2σij


이 논증을 설명하고 실증적으로 지원하기 위해 몇 가지 시뮬레이션을 연구 해 봅시다. 다음은 지정된 차원의 다중 정규 분포에 대한 모수를 생성하고 해당 분포에서 여러 개의 독립적으로 동일하게 분포 된 벡터 세트를 그리고 각 샘플에서 모수를 추정 한 다음 (1) 평균에 대한 모수 추정치의 결과를 요약합니다. -편향이없고 (코드가 올바르게 작동하고 있음) (2) 표준 편차로 추정의 정확도를 정량화 함을 입증합니다 (이 표준 편차를 혼동하지 마십시오. 근본 다 정규 분포를 정의하는 데 사용되는 표준 편차와 함께 시뮬레이션의 반복!d 같은 것을 제공의 변경, 변화, 우리가 더 큰 소개하지 않습니다는 기본 multinormal 유통 자체에 편차를.d

공분산 행렬의 최대 고유 값을 로 설정하여이 시뮬레이션에서 기본 분포의 분산 크기를 제어 합니다. 이렇게하면이 구름의 모양에 관계없이 차원이 증가함에 따라 확률 밀도 "구름"을 경계 내에서 유지합니다. 고유 값이 생성되는 방식을 변경하면 치수가 증가함에 따라 시스템의 다른 동작 모델을 시뮬레이션 할 수 있습니다. 감마 분포를 사용한 예가 아래 코드에 주석 처리되어 있습니다.1R

우리가 찾고있는 것은 차원 가 변경 될 때 모수 추정치의 표준 편차가 눈에 띄게 변경되지 않는지 확인하는 것 입니다. I 그러므로 두 극단에 대한 결과를 보여 및 , 동일한 양의 데이터 (사용 모두의 경우에). 일 때 과 같을 때 추정되는 매개 변수 의 수는 벡터 수 ( )를 훨씬 초과 하고 전체 데이터 세트에서 개별 수 ( )를 초과 한다는 점에 주목해야합니다 .dd=2d=6030d=601890303060=1800

2 차원 시작해 봅시다 . 두 가지 분산 ( 이 시뮬레이션에서 표준 편차 및 ), 공분산 (SD = ) 및 두 평균 (SD = 및 )의 5 가지 매개 변수가 있습니다 . 다른 시뮬레이션 (임의 시드의 시작 값을 변경하여 얻을 수 있음)을 사용하면 약간 달라 지지만 표본 크기가 때 일관되게 비슷한 크기 입니다. 예를 들어 다음 시뮬레이션에서 SD는 , , , 및d=20.0970.1820.1260.110.15n=300.0140.2630.0430.040.18, 각각 : 그것들은 모두 바뀌었지만 비슷한 크기입니다.

(이러한 진술은 이론적으로 뒷받침 될 수 있지만 여기서 요점은 순전히 경험적인 데모를 제공하는 것입니다.)

이제 이동 , 에서 샘플의 크기를 유지하는 . 구체적으로 말하면, 각 샘플은 벡터 로 구성되며 각각 성분을 갖습니다 . 표준 편차를 모두 나열하는 대신 히스토그램을 사용하여 범위를 나타내는 그림을 살펴 보겠습니다.d=60n=3030601890

그림

맨 위 행의 산점도는 실제 모수 sigma( ) 및 ( )를 이 시뮬레이션에서 반복 동안 수행 된 평균 추정치 와 비교합니다 . 회색 참 조선은 완벽한 평등의 위치를 ​​표시합니다. 추정치는 의도 한대로 작동하고 편향되지 않습니다.σmuμ104

히스토그램은 공분산 행렬의 모든 항목 (왼쪽)과 평균 (오른쪽)에 대해 맨 아래 행에 나타납니다. 각각의 표준 편차 차이가 사이가되는 경향이 과 의 표준 편차 동안 공분산 별도의 구성 요소들 사이 사이에 놓여 경향 및 : 정확히 범위에서 달성 될 때 . 유사하게, 평균 추정치의 SD는 과 사이 인 경향이 있으며 , 이는 때 보여지는 것과 유사하다 . 확실히 표준 편차는 것을 아무 표시도 없다 증가0.12 0.04 0.08 d = 2 0.08 0.13 d = 2 d 2 600.080.120.040.08d=20.080.13d=2d 에서 올라갔습니다 .260

코드는 다음과 같습니다.

#
# 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

1

일부 간단한 숫자는 표준 정규 분포에서 생성 된 30 개의 샘플에 대해 다음과 같은 오차 분포를 제공하고 일 변량 가우스에 적합합니다.

여기에 이미지 설명을 입력하십시오

사 분위수가 표시됩니다. 이 차원의 변화는 다차원적인 경우에 바람직하다고 가정된다.

나는 전체 결과를 얻기 위해 MatLab을 이길 시간이 없기 때문에 "엄지 손가락 규칙"을 공유 할 것입니다. 30은 경험 법칙으로 제공되므로 휴리스틱을 허용 할 수없는 것으로 가정합니다.

휴리스틱은 파스칼의 삼각형 에 일 변량의 경우를 곱하는 것입니다. 여기에 이미지 설명을 입력하십시오

2d 데이터를 사용하는 경우 2 번째 행으로 이동하여 합계하여 2x 샘플 수 또는 60 샘플을 얻습니다. 3D 데이터의 경우 3 번째 행으로 이동하여 합산하여 샘플 수 또는 120 샘플의 4 배를 얻습니다. 5d 데이터의 경우 5 번째 행으로 이동하여 합산하여 샘플 수의 16 배 또는 480 샘플을 얻습니다.

행운을 빌어 요.

편집하다:

직관적이지만 수학적으로 모든 것을 방어해야합니다. Finite Elements의 다항식 양식을 작성하여 야구장을 얻는 경험을 할 수는 없습니다.

파스칼 삼각형 의 행의 합에 대한 방정식 은 입니다. 2 kkth2k

여기에서의 접근법에 대한 나의 아이디어는 더 많은 샘플을 갖는 고차원 분포의 AIC를 더 적은 샘플을 갖는 감소 된 치수 분포와 동일시하는 것이다.

AIC (Akaike Information Criterion)는 여기서 는 잔차 제곱합, 은 샘플 수, 는 모델의 매개 변수 수입니다. . RSSnkAIC=nlog(RSSn)+2kRSSnk

AIC1=AIC2

n1log(RSS1n1)+2k1=n2log(RSS2n2)+2k2

우리가 제거하는 각 차원에 대해 평균이 행을 잃고 공분산이 행과 열을 모두 잃는다는 것을 의미합니다. 우리는 이것을 다음과 같이 말할 수 있습니다

k(d)=d2+d 입니다.

k(d+1)k(d)=2d+2

샘플 포인트 당 오류가 일정하다고 가정하면 잔차 제곱합이 샘플 수와 관련되며 로그의 항은 일정하게 유지됩니다. 샘플 카운트의 차이는 스케일링 상수가됩니다.

그래서 우리는 :

n1A+2(k2+2d+2)=n2A+2k2

차원이있는 샘플의 증가를 해결하면 다음이 가능합니다.

n2n1=(2(k2+2d+2)2k2)A1=(4d+4)A1

스케일링 기능은 무엇입니까? 2 차원 다변량 가우스의 경우 필요한 샘플 수는 매개 변수 당 15 개라고 가정합니다. 공분산에는 2 개의 평균과 4 개의 요소가 있으므로 6 개의 모수 또는 90 개의 샘플이 있습니다. 차이는 60 개의 샘플이며 의 값입니다 . A1=5

여기에 이미지 설명을 입력하십시오

이 시점에서 휴리스틱은 약간 낮게 시작하지만 필요한 샘플 수의 약 2 배가됩니다. 내 개인적인 견해로는 최대의 유용성 범위는 약 4 차원 정도입니다.

편집하다:

그래서 나는 @ whuber의 대답을 읽었으며 그것을 좋아합니다. 그것은 경험적이며,이 경우에는 권위적입니다. 나는 그의 답변에 투표했다.

다음에서는 ~ 300자를 초과하여 사용할 수 있도록 토론하고 싶습니다. 그림을 포함 할 수 있기를 바랍니다. 따라서 답의 범위 내에서 논의하고 있습니다. 나는 이것이 괜찮기를 바랍니다.

이 시점에서 AIC를 사용하거나 샘플 크기 및 매개 변수 크기가 어떻게 사용되었는지 확신하지 못합니다.

다음 단계:

  • @whuber의 결과를 복제하고 경험적으로 확인하십시오
  • 적어도 앙상블 의미에서 AIC를 테스트하여 적절한 지 확인하십시오.
  • AIC가 적절한 경우 추론에서 결함을 추적하기 위해 경험적 방법을 사용하십시오.

의견과 제안을 환영합니다.


4
휴리스틱에 대한 정당성을 제공 할 수 있습니까?
whuber

1
그리고 다섯 번째 행의 합이 실제로 16임을 확인할 수 있습니까?
omatai 2016 년

1 + 4 + 6 + 4 + 1 = 1 + 10 + 5 = 16. 죄송합니다. 16 22. 내가 추가했을 때 나는 잠들었을 것입니다.
EngrStudent

1
당신은 어떻게 마련합니까 매개 변수의 수? 너무 많습니다. 예를 들어, 성분의 경우 매개 변수 만 필요합니다 ( 평균, 공분산 및 상관 관계). 이것은 당신의 추천이 왜 그렇게 높은 샘플 크기를 요구하는지 설명 할 수 있습니다! D = 9 54 9 9 362d+12d=9549936
whuber

1
@ whuber, 나는 내가 잘못한 것보다 (내가 알게 된 후에) 내 잘못에 의해 더 많이 배우는 것을 알았습니다. 놀랍게도, 틀린 것은 내가 틀렸다는 것을 알 때까지는 옳은 것처럼 느껴집니다. 감사합니다. ted.com/talks/kathryn_schulz_on_being_wrong.html
EngrStudent
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.