12. 以上により、これまで出された統計モデルを整理すると、
mu = b1 + b2*ds + b3*sg + b4*ssc+ b5*sfa + q + r
q ~ normal(0,10.2)
r ~ normal(0,σ)
mu ~ normal(40.7,62.1)
Y ~ cauchy(mu[n],σ)
となり、このモデルを用いて一時保護日数についての階層ベイズモデルを求める。
13. Stanコード
data {
int N;
int<lower=0, upper=1> ds[N];
int<lower=0, upper=1> sg[N];
int<lower=0, upper=1> ssc[N];
int<lower=0, upper=1> sfa[N];
real<lower=0> Y[N];
}
parameters {
real b1;
real b2;
real b3;
real b4;
real b5;
real q[N];//場所差
real r[N];//個体差
real<lower=0> sigma;
real<lower=0> sigma2;
}
14. transformed parameters {
real mu[N];
for (n in 1:N)
mu[n] = b1 + b2*ds[n] + b3*sg[n] +
b4*ssc[n] + b5*sfa[n] + q[n] + r[n];
}
model {
for (n in 1:N)
q[n] ~ normal(0,10.2);
for (n in 1:N) r[n] ~normal(0,sigma2);
for (n in 1:N) mu[n] ~ normal(40,61);
for (n in 1:N) Y[n] ~ cauchy(mu[n],
sigma);
}