如何解决Stan:分层模型的多变量先验,没有先验均值的组级预测变量
我想用 Stan 拟合 Lotka-Volterra 竞赛模型。 我阅读了section about multivariate hierarchical priors in the manual。
我们有:
- "individual" = 在时间 t 对焦点物种丰度的一次观察
- "group" = 焦点物种
- "predictors" = 每个物种的丰度
- “结果”= t 和 t+1 之间的焦点物种丰度增量 (对于了解模型的人,目前我只尝试推断交互矩阵 (alpha),稍后我将添加物种增长率(但由于不需要多元变量,因此更简单))。
但在手册中,他们在 Stan 模型中添加了“先验均值的组级预测变量”。 我不认为我需要这个,我什至看不到我的数据中会有什么(也许我错了,如果是这样,请告诉我!)。 因此,我试图将其删除。但是我对我的模型非常不确定,尤其是对于 mu,如果有人对这些模型更有经验可以告诉我我是否错了,我会很高兴。
data {
int<lower=0> N; // num individuals (generations)
int<lower=1> K; // num ind predictors (species)
int<lower=1> J; // num groups (species)
int<lower=1,upper=J> jj[N]; // group for individual
matrix[N,K] x; // individual predictors
vector[N] y; // outcomes
}
parameters {
corr_matrix[K] Omega; // prior correlation
vector<lower=0>[K] tau; // prior scale
vector[K] beta[J]; // indiv coeffs by group
vector[K] mu[J]; // mean coeff by group
real<lower=0> sigma; // prediction error scale
}
model {
tau ~ cauchy(0,2.5);
Omega ~ lkj_corr(2);
{
for (j in 1:J)
mu[J] ~ normal(0,5);
beta ~ multi_normal(mu,quad_form_diag(Omega,tau));
}
for (n in 1:N)
y[n] ~ normal(x[n] * beta[jj[n]],sigma);
}
解决方法
结果一个同事告诉我,我可以保留手册中的代码,而u中只有1s[J]。 现在看起来很明显;)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。