다변량 정규 분포의 Quantile (isolines?)을 결정하는 방법


24

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

다변량 분포의 Quantile을 계산하는 방법에 관심이 있습니다. 그림에서, 주어진 단 변량 정규 분포 (왼쪽)의 5 %와 95 % Quantile을 그렸습니다. 올바른 다변량 정규 분포의 경우, 아날로그가 밀도 함수의베이스를 둘러싸는 아이소 라인이라고 상상합니다. 아래는 패키지를 사용하여 이것을 계산하려는 시도의 예 mvtnorm이지만 성공하지는 못했습니다. I이이 다변량 밀도 함수의 결과의 컨투어를 계산함으로써 수행 될 수 있다고 가정하지만, 다른 대안 (이 경우에 I 궁금 의 아날로그 qnorm). 당신의 도움을 주셔서 감사합니다.

예:

mu <- 5
sigma <- 2 
vals <- seq(-2,12,,100)
ds <- dnorm(vals, mean=mu, sd=sigma)

plot(vals, ds, t="l")
qs <- qnorm(c(0.05, 0.95), mean=mu, sd=sigma)
abline(v=qs, col=2, lty=2)


#install.packages("mvtnorm")
require(mvtnorm)
n <- 2
mmu <- rep(mu, n)
msigma <- rep(sigma, n)
mcov <- diag(msigma^2)
mvals <- expand.grid(seq(-2,12,,100), seq(-2,12,,100))
mvds <- dmvnorm(x=mvals, mean=mmu, sigma=mcov)

persp(matrix(mvds,100,100), axes=FALSE)
mvqs <- qmvnorm(0.95, mean=mmu, sigma=mcov, tail = "both") #?

#ex. plot   
png("tmp.png", width=8, height=4, units="in", res=400)
par(mfcol=c(1,2))

#univariate
plot(vals, ds, t="l")
qs <- qnorm(c(0.05, 0.95), mean=mu, sd=sigma)
abline(v=qs, col=2, lty=2)

#multivariate
pmat <- persp(seq(-2,12,,100), seq(-2,12,,100), matrix(mvds,100,100), axes=FALSE, shade=TRUE, lty=0)
cont <- contourLines(seq(-2,12,,100), seq(-2,12,,100), matrix(mvds,100,100), levels=0.05^2)
lines(trans3d(cont[[1]]$x, cont[[1]]$y, cont[[1]]$level, pmat), col=2, lty=2)

dev.off()

3
티카 용액 소정 (상기 3 차원 경우에 도시 됨)에있다 mathematica.stackexchange.com/questions/21396/... . 윤곽 레벨이 카이 제곱 분포로 제공됨을 인식합니다.
whuber

@whuber- "... 신뢰 타원체는 공분산 행렬의 역 윤곽선입니다"라는 의미를 설명 하시겠습니까? 건배.
Marc 상자에

2
이것은 하나의 차원에서 가장 쉽게 볼 수 있습니다. "공분산 행렬"(샘플링 분포의 경우)은 이므로 그 역수는 이며 의 2 차 맵으로 간주됩니다. 통한 . 레벨에서의 윤곽 정의상는 세트 인 되는 ; 즉, 또는 이에 상응하는 입니다. 경우 인 분위수의 분포, 인 분위수 (A)의 1 / s 2 R 1 x x 2 / s 2s21/s2R1xx2/s2x x 2 / s 2 = λ x 2 = λ s 2 x = ± λxx2/s2=λx2=λs2λ1αχ2(1)x=±λsλ1αχ2(1) 1-αλ1α± t 1 - α ; 1t(1)분포, 일반적인 신뢰 한계를 회복 할 때 . ±t1α;1s
whuber

대답 의 첫 번째 공식을 에서 를 선택하여 해당하는 타원 (그림의 빨간색 점선 를 얻을 수 있습니다.( 0 , 1 ) S α xR 2α(0,1)SαxR2
user603

답변:


25

등고선은 타원체입니다. 그 이유는 다변량 정규 분포의 pdf에서 지수의 인수를 살펴 봐야하기 때문입니다. 아이소 라인은 동일한 인수를 가진 선이됩니다. 그러면 를 얻습니다. 여기서 는 공분산 행렬입니다. 그것은 정확히 타원의 방정식입니다. 가장 간단한 경우 및 는 대각선이므로 가 대각선이 아닌 경우 , 대각선 화하면 같은 결과가 나타납니다.Σ μ = ( 0 , 0 ) Σ ( x

(xμ)TΣ1(xμ)=c
Σμ=(0,0)ΣΣ
(xσx)2+(yσy)2=c
Σ

이제 다변량의 pdf를 타원 내부 (또는 외부)에 통합하고 원하는 분위수와 같도록 요청해야합니다. Quantile이 일반적인 것이 아니라 원칙적으로 타원형이라고 가정 해 봅시다 (즉, Tim 답변에서 지적한 것처럼 HDR (High Density Region)을 찾고 있습니다). pdf의 변수를 로 변경하고 각도에 통합 한 다음 의 경우 에서 그런 다음 를 대체합니다 : z 0z2=(x/σx)2+(y/σy)2z0 1α=c S = - (Z) 2 / 2

1α=0cdzzez2/22π02πdθ=0czez2/2
s=z2/2
0기음이자형2/2=기음/20이자형에스에스=(1이자형기음/2)

그래서 원칙적으로, 당신은 중앙에있는 타원 볼 필요가 의 고유 벡터를 통해 축과, 와 유효 반경 : Σ 2 ln α ( xμ ) T Σ 1 ( xμ ) = 2 ln αμΣ2lnα

(엑스μ)Σ1(엑스μ)=2lnα

4

다변량 정규에 대해 물었지만 일반적으로 "다변량 분포의 분위수"에 대해 질문하면서 질문을 시작했습니다. 귀하의 질문에 대한 표현과 예제를 통해 귀하는 고밀도 지역에 관심이있는 것 같습니다 . 이들은 Hyndman (1996)에 의해 다음과 같이 정의됩니다.

랜덤 변수 의 밀도 함수라고 합시다 . 그런 다음, HDR 서브셋 인 의 표본 공간의 되도록에프()100 ( 1 - α ) %의 R ( F α ) X엑스100(1α)%아르 자형(에프α)엑스

아르 자형(에프α)={엑스:에프(엑스)에프α}

여기서 는 와 같이 가장 큰 상수 입니다.에프α홍보(엑스아르 자형(에프α))1에이

HDR은 통합을 통해 얻을 수 있지만 Hyndman이 설명한 것처럼 더 간단한 수치 방법을 사용하여 수행 할 수 있습니다. 하면 , 다음을 얻을 수 되도록 단순히 취하여 의 분위수 . 일련의 관측 값 에서 샘플 Quantile 을 사용하여 추정 할 수 있습니다 . 를 모르지만 일련의 iid 관측치 만있는 경우에도이 방법이 적용됩니다 . 이 방법은 멀티 모달 배포에도 적용됩니다.F α( F ( X ) F α ) 1 - α α Y , Y 1 , . . . , y m f ( x )와이=에프(엑스)에프α홍보(에프(엑스)에프α)1αα와이와이1,...,와이에프(엑스)


Hyndman, RJ (1996). 고밀도 영역 계산 및 그래프. 미국 통계 학자, 50 (2), 120-126.


2

정답은 이어야합니다 . 위 계산에서 실수가있었습니다. 수정 된 버전 : 2ln(α)

0기음이자형2/2=기음/20이자형에스에스=(1이자형기음/2)

1

Mahalanobis 거리에 해당하는 타원을 그릴 수 있습니다.

library(chemometrics)
data(glass)
data(glass.grp)
x=glass[,c(2,7)]
require(robustbase)
x.mcd=covMcd(x)
drawMahal(x,center=x.mcd$center,covariance=x.mcd$cov,quantile=0.90)

또는 데이터의 약 95 %, 75 % 및 50 %의 원이있는 경우

drawMahal(x,center=x.mcd$center,covariance=x.mcd$cov,quantile=c(0.95,.75,.5))

4
@ user98114 사이트에 오신 것을 환영합니다. 이 코드의 기능과 OP의 문제를 해결하는 방법을 설명하는 텍스트를 제공 할 수 있습니까?
gung-Monica Monica 복원
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.