我在JAGS中有标记重新捕获模型,我想编写分类变量和连续变量之间的交互。
ngr
是组数
nind
是我的标记重新捕获模型中的个体数量
gr.sp[ind]
只在我的数据库中搜索哪个组属于个人ind
ngr
是组数
Som priors:
phi.precip ~ dnorm(0,0.01)
for(groups in 1:ngr) {
phi.gr[groups] ~ dnorm(0, 0.01)
}
以下是我的模型可能性的一小部分:
...
for(ind in 1:nind) {
for(yr in 1:nyear) {
logit(phi[ind,yr]) <- e.phi[ind,yr]
e.phi[ind,yr] <-
phi.gr[gr.sp[ind]] + # Categorical variable telling how much belonging to a certain group changes your fitness
phi.precip * sum.rainfall[yr] + # Effect of rain on my individuals
phi.gr.precip * phi.gr[gr.sp[ind]] * sum.rainfall[yr] # This is the interaction between the categorical and the continuous I'm trying to code.
}
...}
首先,如何定义phi.gr.precip
的先验?应该是类似的东西:
for(groups in 1:ngr) {
phi.gr.precip[groups] ~ dnorm(0, 0.01)
}
但是,我不知道如何在可能性中实现它。
第二,phi.gr.precip
如何编码以包括个体在(gr.sp[ind]
)中的群体与气候(sum.rainfall[yr]
之间的相互作用,其代表雨量在一年以内)?
对类似的交互进行编码似乎需要phi.gr.precip
中与分类变量中相同数量的参数。但这需要我在可能性内部循环:
...
for(ind in 1:nind) {
for(yr in 1:nyear) {
logit(phi[ind,yr]) <- e.phi[ind,yr]
e.phi[ind,yr] <-
phi.gr[gr.sp[ind]] +
phi.precip * sum.rainfall[yr] +
for(groups in 1:ngr) {
phi.gr.precip[groups] * phi.gr[gr.sp[ind]] * sum.rainfall[yr]
}
}
...}
运行模型时哪个不起作用。
答案 0 :(得分:0)
您对先前的选择看起来合理。
您的可能性几乎是正确的,但JAGS无法为数字添加for循环。相反,您需要移动组的for循环以包裹整个总和。
...
for(ind in 1:nind) {
for(yr in 1:nyear) {
for(groups in 1:ngr){ ### MOVE THE FOR-LOOP HERE
logit(phi[ind,yr]) <- e.phi[ind,yr]
e.phi[ind,yr] <-
phi.gr[gr.sp[ind]] +
phi.precip * sum.rainfall[yr] + phi.gr.precip[groups] * phi.gr[gr.sp[ind]] * sum.rainfall[yr]
}
}
...}