打ち切られた混合正規分布からシミュレーション


9

次のような混合正規分布からサンプルをシミュレートしたい

p×N(μ1,σ12)+(1−p)×N(μ2,σ22)

間隔に制限されているの代わりに、R。これは、正規分布の切り捨てられた混合をシミュレートしたいということです。[0,1]R

これを行うために、切り捨てられた法線をシミュレートするアルゴリズム(つまり、この質問から)と対応するパッケージがRにあることを知っています。しかし、切り捨てられた混合法線をどうやってシミュレートできますか?それは私が2が通常の切り捨てシミュレート場合と同じであるとN(μ 2、σ 2 2切り捨てられた混合物を通常にしますか)?N(μ1,σ12)N(μ2,σ22


3
単位間隔にある場合は、法線の代わりにベータ版を使用してみませんか?以下のために、分布が対称と単峰性と単位間隔に制限されます。α=β>1
— Sycoraxは、モニカを2015

2
あなたは非常に高速であるためにあなたのシミュレーションを必要としない場合は、棄却サンプリング使用してそれを行うことができます:(1)サンプル 2面の法線の混合物から、(2)の場合、xがされていない[ 0 、1 ]、背中に行きますステップ1、(3)出力x。(しかし、user777は正しいです。ベータの混合ではなく、このディストリビューションを選択する十分な理由がありますか?)xx[0,1]x
— Elvis

1
@ user777切り捨てガウス混合はベータ分布とは異なる分布を持ち、対称性と同じサポートを適用できるからといって交換することはできません。
— mjnichol

回答:


13

適切な法線分位関数にアクセスできれば、打ち切られた法線からのシミュレーションは簡単に行えます。例えば、Rに、模擬

Nab(μ,σ2)
ここで、とBが下限と上限は、CDF反転することにより行うことができる示しΦ (σ - 1 { X - μを} )- Φ (σ - 1 { - μ } )ab
Φ(σ−1{x−μ})−Φ(σ−1{a−μ})Φ(σ−1{b−μ})−Φ(σ−1{a−μ})
、例えば、Rで

x = mu + sigma * qnorm( pnorm(a,mu,sigma) + 
     runif(1)*(pnorm(b,mu,sigma) - pnorm(a,mu,sigma)) )

それ以外の場合は、20年前に切り捨てられた通常の受け入れ/拒否アルゴリズムを開発しました。

f(x;θ)∝{pφ(x;μ1,σ1)+(1−p)φ(x;μ2,σ2)}I[a,b](x)
f(x;θ)∝p{Φ(σ1−1{b−μ1})−Φ(σ1−1{a−μ1})}σ1−1ϕ(σ1−1{x−μ1})Φ(σ1−1{b−μ1})−Φ(σ1−1{a−μ1})+(1−p){Φ(σ2−1{b−μ2})−Φ(σ2−1{a−μ2})}σ2−1ϕ(σ2−1{x−μ2})Φ(σ2−1{b−μ2})−Φ(σ1−1{a−μ2})
x={x1∼Nab(μ1,σ12)with probability p{Φ(σ1−1{b−μ1})−Φ(σ1−1{a−μ1})}/sx2∼Nab(μ2,σ22)with probability (1−p){Φ(σ2−1{b−μ2})−Φ(σ2−1{a−μ2})}/s
s=p{Φ(σ1−1{b−μ1})−Φ(σ1−1{a−μ1})}+(1−p){Φ(σ2−1{b−μ2})−Φ(σ2−1{a−μ2})}


確率pの第1正規分布と確率1-pの第2分布からサンプルを抽出できないのはなぜですか?
— mjnichol

1
ああ!問題はあると思います。これは、各ディストリビューションが個別にではなく、ディストリビューション全体が切り捨てられるためです。混合物の各部分分布が個別に切り捨てられてから混合物に追加された場合、各部分分布の相対的な重みに従って、分布から簡単にサンプリングできます。
— mjnichol

1
p1−p

@ Xi'an:少し異なる設定を検討するとします。加重ガウス分布から混合分布を構築してから切り捨てる代わりに、既に切り捨てられた2つのガウス分布を(同じサポートで)代わりに混合するとどうなるでしょうか。混合の前にガウスが切り捨てられた場合、確率pで最初の切り捨てガウスから、確率1-pで2番目のガウスからサンプリングすることで、分布からサンプリングできますか?
— mjnichol

2
pNab(μ1,σ12)+(1−p)Nab(μ2,σ22)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.