多変量正規分布の分位数(アイソライン?)を決定する方法


24

ここに画像の説明を入力してください

多変量分布の分位数を計算する方法に興味があります。図では、特定の単変量正規分布の5%および95%の分位点を描画しました(左)。適切な多変量正規分布の場合、アナログは密度関数の基底を囲む等値線になると想像しています。以下は、パッケージを使用してこれを計算する試みの例ですが、mvtnorm成功しません。多変量密度関数の結果の等高線を計算することでこれを行うことができると思いますが、別の選択肢(たとえばの類似体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
Mathematicaの溶液を与え(および3Dの場合について示されている)にあるmathematica.stackexchange.com/questions/21396/...。等高線レベルはカイ二乗分布によって与えられることを認識しています。
whuber

@whuber-「...信頼楕円体は共分散行列の逆の輪郭である」という意味を実証してもらえますか?乾杯。
ボックス内のマーク

2
これは1次元で最も見やすく、「共分散行列」(サンプリング分布の場合)は数値であるため、その逆数は、上の2次マップと考えられ via。レベルで輪郭が定義によっては、一連のあるれる。つまり、または同等にです。場合ある分位数の分布が、である位数の 1 / S 2 R 1 X X 2 / sの2 λ X 、X 2 / S 2 = λ X 2 = λ S 2、X = ± s21/s2R1xx2/s2λxx2/s2=λx2=λs2λ1-αχ21x=±λsλ1αχ2(1) 1-αT1±T 1 - α 1λ1αt(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を楕円の内側(または外側)に統合し、これが目的の分位数に等しいことを要求する必要があります。あなたの分位数は通常のものではなく、原則として楕円形であるとしましょう(つまり、Timの回答が指摘しているように、最高密度領域(HDR)を探しています)。pdfの変数をに変更し、角度で積分してから、をから 次に、を代入します: Z 0 z2=(x/σx)2+(y/σy)2z0 1-α=c S = - Z 2 / 2

1α=0cdzzez2/22π02πdθ=0czez2/2
s=z2/2
0czez2/2=c/20esds=(1ec/2)

したがって、原則として、を中心とし、の固有ベクトルと有効半径を軸とする楕円を探す必要があります: Σ - 2 LN α X - μ T Σ - 1X - μ = - 2 LN αμΣ2lnα

(xμ)TΣ1(xμ)=2lnα

4

あなたは多変量正規について質問しましたが、一般的に「多変量分布の分位数」について尋ねることから質問を始めました。あなたの質問の文言と提供された例から、あなたは最も密度の高い地域に興味があるようです。Hyndman(1996)は次のように定義しています

ましょうランダム変数の密度関数である。次いで、 HDRサブセットである のサンプル空間のようf(z)X100(1α)%R(fα)X

R(fα)={x:f(x)fα}

ここで、はような最大の定数です。fαPr(XR(fα))1a

HDRは統合によって取得できますが、Hyndmanによって説明されているように、より単純な数値的方法を使用してそれを行うことができます。場合、その後、取得することができるよう単に取ることによっての変位値。観測値セットからサンプル分位を使用して推定できます。このメソッドは、がわからない場合でも適用されますが、一連のiid観測のみがあります。この方法は、マルチモーダル分布でも機能します。Y=f(x)fαPr(f(x)fα)1ααYy1,...,ymf(x)


Hyndman、RJ(1996)。最高密度領域の計算とグラフ化。アメリカの統計学者、50(2)、120-126。


2

正解はなければなりません。上記の計算に誤りがありました。修正バージョン: 2ln(α)

0czez2/2=c/20esds=(1ec/2)

1

マハラノビス距離に対応する楕円を描くことができます。

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 -復活モニカ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.