世界一簡単なrstanコード

もう自分のモデルがどこまで混沌としているかわからなくて,rstanをつかいながらごく簡単なものを確かめるところまで戻ってきた。

ある標準正規分布から乱数発生に寄って得られたデータセットyの平均と分散を推定するプログラム。一瞬で終わる。確実に収束する。まあ初めてMCMCする人はここから確認するとよいかもしれないので,一応書きさらしておく。このままRにコピペで動きます。

2015.03.05 追記)修正を行いました。修正点についてはこちらを参照。

library(rstan)
n <- 100
mu <- 50
sig <- 10
y <- rnorm(n,mu,sig)

stancode <- '
data{
  int<lower=0> T;
  real N[T]; // data
}

parameters {
  real mu;
  real<lower=0> s2;
}

model{
 N~normal(mu,sqrt(s2));
 s2~cauchy(0,5); 
}
'
datastan <- list(N=y,T=n)
fit <- stan(model_code = stancode,data=datastan,iter=5000,chain=4)
traceplot(fit,ask=T)
print(fit,digit=3)

2件のコメント

コメントは受け付けていません。