首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Jags模型转换为stan模型

将Jags模型转换为stan模型
EN

Stack Overflow用户
提问于 2019-12-02 11:27:20
回答 1查看 298关注 0票数 2

我正在尝试将Jags模型转换为stan模型。

Jags:

代码语言:javascript
复制
model{

    for (i in 1:n){

        theta[i] ~ dbeta(u*s, s-u*s)

        y[i] ~ dbin(theta[i],N[i])
    } 

    u ~ dunif(0,1)
    s ~ dlnorm(4,0.25)

}

斯坦:

代码语言:javascript
复制
data {
  int<lower=0> J;

  int y[J];

  int N[J]; 
}


parameters {

  real<lower=0, upper=1> u;

  real<lower=0> s;

  vector[J] theta;

}


model {

    s ~ lognormal(4,2);

    theta ~ beta(s*u, s*(1-u));

    y ~ binomial(N, theta);

}

但当我运行它时,它返回如下消息:

链1:拒绝初始值:链1:计算初始值的对数概率时出错。链1:异常: beta_lpdf:随机variable4为-1.58608,但必须为>= 0!(在'model29e45483bba0_model‘的第18行)

在这个模型中,什么会产生负值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-02 11:36:21

该错误消息是由于theta上没有适当的界限而导致的。它应该是

代码语言:javascript
复制
vector<lower = 0, upper = 1>[J] theta;

许多Stan的新用户认为,在theta上设置一个类似测试版的东西意味着它在0到1之间。但是,没有这样的含义,特别是对于theta的建议,正如您从错误消息中看到的那样,它可以是负的,也可以大于1,除非声明了界限(在这种情况下,它们是通过无约束变量的转换来强制执行的)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59132294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档