先日のモデルですが、Stanでは切断ポアソン分布をつかえるので、それをつかえばよいのでした。 マニュアル13.7節を参考にしました。 data { int<lower = 0> M; int<lower = 1> X[M]; } parameters { real<lower = 0> lambda; } model { for (m in 1:M) { X[m] ~ poisson(lambda) T[1, ]; } } generated quantities { int N; { real p = poisson_cdf(0, lambda); // 失敗確率 N = M + neg_binomial_rng(M, (1 - p) / p); } } Rコードです。データは前のエントリと同じです。 fit2 <- stan("truncPois.stan", data = list(
![ゼロがなくなったポアソン分布のパラメーターを切断ポアソン分布で推定する: Taglibro de H](https://cdn-ak-scissors.b.st-hatena.com/image/square/91294c5e7d5927632be882106d59f6c861902287/height=288;version=1;width=512/https%3A%2F%2Fblog.ss-blog.jp%2F_common%2Fimg%2Fsonet_logo_l.png)