Rで混合ベイズ回帰のギブスサンプラーを構築する方法は?
Nov 30 2020
私は3つのパラメーターのギブスサンプラーに取り組んでおり、3つのパラメーターの完全な条件付き分布を知っています。
回答
TrungDung Nov 30 2020 at 11:05
注:これは単なるコメントですが、長いコードを引用するために、ここに配置します。
for (ite in 2:NSim){ #Full conditional for pi pi[ite]=rbeta(1, sum(delta[ite-1,])+0.5, sum(1-delta[ite-1,])+0.5) #Full conditional for delta for(j in 1:4){ p1=pi[ite]*exp(-beta[ite-1,j]^2/(20)) p0=((1-pi[ite])*10^3)*exp(-500*beta[ite-1,j]^2) cat('\n',ite,j,(p1/(p0+p1))) delta[ite,j]=rbinom(1, 1,prob=(p1/(p0+p1))) }
エラーは多分それを言います $p1$ そして $p0$NAです。このタイプのエラーをチェックしたときの私の経験はそれです。forループの代わりに、$ite=2$ そして $j=1$。数式としてp1とp0を計算します。NAであるかどうかを注意深く確認してください。コードが対称である場合$iter$ そして $j$、この場合のエラーを修正できれば、これを渡します。