私はベイジアンデータ分析を学んでいます。私はTrond Reitanによってチュートリアルを複製しようとしていますが、これはもともとWinBugsによって作成されています。スタンで整数潜在変数を指定
具体的には、私はデータとモデル次いる
weta.windata<-list(numdet=c(0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 1, 1, 2, 0, 3, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 1, 0, 3, 1, 1, 3, 1, 1, 2, 0, 2, 1, 1, 1, 1,0, 0, 0, 2, 0, 2, 4, 3, 1, 0, 0, 2, 0, 2, 2, 1, 0, 0, 1),
numvisit=c(4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 3, 3, 4, 4, 4, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4,4, 4, 4, 4, 4, 4, 4 ,4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3),
nsites=72)
model_string1="
data{
int nsites;
real<lower=0> numdet[nsites];
real<lower=0> numvisit[nsites];
}
parameters{
real<lower=0> p;
real<lower=0> psi;
int<lower=0> z[nsites];
}
model{
p~uniform(0,1);
psi~uniform(0,1);
for(i in 1:nsites){
z[i]~ bernoulli(psi);
p.site[i]~z[i]*p;
numdet[i]~binomial(numvisit[i],p.site[i]);
}
}
"
mcmc_samples <- stan(model_code=model_string1,
data=weta.windata,
pars=c("p","psi","z"),
chains=3, iter=30000, warmup=10000)
コンテキストがフィールドにwetasを検出についてです。 72のサイトがあります。各サイトについて、研究者は数回(すなわち、numvisit)訪問し、見つかった回数(すなわちnumdet)を記録した。
潜在変数zがあり、1つのサイトが湿っているかどうかを表します。 psiは、1つのサイトが湿っている確率です。 pは検出率である。
私が持っている問題は、私は本当のことはZに設定した場合しかし、それは、
real<lower=0> z[nsites];
ある問題は、私が設定することはできませんとなり、整数
parameters or transformed parameters cannot be integer or integer array; found declared type int, parameter name=z
Problem with declaration.
するZ宣言することはできませんです整数としてのベルヌーイからの変数...
私は非常にスタンです。この質問が非常に愚かなら私を許してください。