混合分布の逆CDFサンプリング


9

コンテキスト外のショートバージョン

ましょうy CDFを有する確率変数である

F(){θ y = 0 θ+(1θ)×CDFlog-normal(;μ,σ) y > 0

逆CDF法を使用して描画をシミュレートしたいとしましょうy。それは可能ですか?この関数は、厳密には逆を持ちません。次に、2つの正規分布の混合分布の逆変換サンプリングがあります。これは、ここで逆変換サンプリングを適用する既知の方法があることを示唆しています。

2ステップの方法は知っていますが、自分の状況に適用する方法がわかりません(以下を参照)。


背景付きロングバージョン

MCMC(具体的には、Stan)を使用して、ベクトル値応答yi=(y1,,yK)iに次のモデルを適合させました。

θkilogit1(αkxi),μkiβkxiσk22F(){θ y = 0 θ+(1θ)×CDFlog-normal(;μ,σ) y > 0ukF(yk),zkΦ1(uk)zN(0,R)×kf(yk)(α,β,σ,R)priors

ここで、N個の観測値にインデックスを付け、Rは相関行列、xは予測子/リグレッサ/特徴のベクトルです。iNRx

つまり、私のモデルは、応答の条件付き分布がゼロ膨張した対数正規限界をもつガウスコピュラであると想定される回帰モデルです。以前このモデルについて投稿したことがあります。Song、Li、およびYuan(2009年、gated)がそれを開発し、ベクターGLM、またはVGLMと呼んでいることがわかりました。以下は、私はそれを得ることができるように逐語的に近いとしてのそれらの仕様である マイ F Kのそれらに対応したG M、私の Zそれらに相当 Q、および私の Rのそれらに対応し Γ。詳細は62ページ(PDFファイルの3ページ)にありますが、それ以外はここで書いたものと同じです。

f(y;μ,φ,Γ)=c{G1(y1),,Gm(ym)|Γ}i=1mg(yi;μi,φi)c(u|Γ)=|Γ|1/2exp(12qT(ImΓ1)q)q=(q1,,qm)T,qi=Φ1(ui)
FKGmzqRΓ

膨張がゼロの部分は、Liu and Chan(2010、ungated)の仕様にほぼ準拠しています。

次に、推定されたパラメーターからデータをシミュレートしたいと思いますが、その方法について少し混乱しています。まず、直接(Rコードで)シミュレートできると思いました。y

for (i in 1:N) {
    for (k in 1:K) {
        Y_hat <- rbinom(1, 1, 1 - theta[i, k])
        if (Y_hat == 1)
            Y_hat <- rlnorm(1, mu[i, k], sigma[k])
    }
}

R

zyF1


y

1
y=00

@whuber 2つのコンポーネントの逆CDFの使用方法について混乱しています。何を描画し、何を描画し、次に何を何に接続しますか?
シャドウトーカー、2014

1
0

@whuber新しい答えは私にとってそれを明確にしました。あなたがた両方に感謝します。
シャドウトーカー、2014

回答:


5

背景付きの長いバージョンへの答え:

長いバージョンに対するこの回答は、別の問題にいくらか対処しており、モデルと問題を定式化するのは難しいようですので、うまくいけば、ここでそれを言い換えることにしました。

1iIyi=(y1i,,yKi)xi

yki={0 with probability logit1(αkxi)log(σkzki+βkxi) with probability 1logit1(αkxi)
zi=(z1i,,zKi)NK(0,R)

1iI

  1. zi=(z1i,,zKi)NK(0,R)
  2. u1i,,uKiiidU(0,1)
  3. yki=I{uki>logit1(αkxi)}log{σkzki+βkxi}1kK

(α,β,μ,σ,R)yki


1
F(yi|xi)y

1
2番目の問題はどのように難しいのですか?私はすでにモデルを推定しました、そして私は事後ドローを持っています。ここでコメントが乱雑にならないように、必要に応じてチャットを続行できます。
シャドウトーカー、2014

1
ああ、一般的に、ええ。幸い、私はスタンとNo-U-Turnのサンプラーで懸命に働いています。
シャドウトーカー、2014

7

コンテキスト外の短いバージョンへの答え:

F(u)=inf{xR; F(x)u}
XF is equivalent to X=F(U) when UU(0,1).
F(y)θy=0F(u)=0uθU(0,1)θ、世代はです。そうでなければ、とき、あなたは連続部分、つまりあなたのケースでは対数正規から生成することになります。つまり、最初の均一描画から独立した2番目の均一ランダム生成を使用し、を設定して対数正規生成を取得します。Xx=0u>θvy=exp(μ+σΦ1(v))

これはほとんどあなたのRコードです

Y_hat <- rbinom(1, 1, theta[i, k]) if (Y_hat == 1) Y_hat <- rlnorm(1, mu[i, k], sigma[k])

やっています。確率ベルヌーイを生成し、それがに等しい場合は、対数正規に変換します。それは確率で1に等しいのであなたがすべきである代わりに、それはに等しいとき、対数正規シミュレーションにそれを回すゼロの代わりに修正Rコードで終わります:θki1θki

Y_hat <- rbinom(1, 1, theta[i, k])
    if (Y_hat == 0)
        Y_hat <- rlnorm(1, mu[i, k], sigma[k])

まとめると、私のシミュレーション手順は次のようになります:1)描画し、2))を計算し、次に3)および場合、計算しそれ以外の場合は、。正しい?uがkは = Φ Z KY 、K = 0 、U Kθ Y 、K = F - 1対数正規uがk個zuk=Φ(zk)yk=0ukθyk=Flog-normal1(uk)
シャドウトーカー、2014

いいえ、不正解です。最初のユニフォームを描画して、と対数正規の間を決定します。次に、対数正規を決定した場合は、2番目のユニフォームを描画します。私の回答の編集版をご覧ください。0
西安

しかし、これはコンポーネントを無視します。したがって私の質問。私は明確な編集を行い、疑似コードの間違いにも対処しました。z
シャドウトーカー、2014

私の答えは、短いバージョンとあなたが提供したRコードです。それがロングバージョンに役立つことを願っていますが、ジョイントモデルの式はまだ正しくありません。ユニフォームを使用せずにモデルを定義する必要があります...y
Xi'an

そのモデルはどのように間違っていますか?私は、を、引用した論文で提供されている式(に対応する表記)にしました。それは無効ですか?G 1G mF1,,FKG1,,Gm
シャドウトーカー、2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.