首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >贝叶斯生存分析

贝叶斯生存分析
EN

Stack Overflow用户
提问于 2018-09-16 05:49:21
回答 1查看 581关注 0票数 0

我想使用威布尔分布来构造用于生存分析的stan(rstan)代码。但是我的stan代码总是不能工作。如果有人知道如何处理我的问题,请教我。

我的数据是这样的

运动:(进行橙花行为的时间)处理:有两个分类变量"A","B“的实验处理r_Day:考虑特定日期影响的随机效应

我的stan代码如下所示。

代码语言:javascript
复制
data {
     int N; // all data
     int D; // day
     int <lower = 0, upper = 1> Treat[N]; 
     int <lower = 0> Movment[N];
     int <lower = 1, upper = D> Day[N];
     }

 parameters {
      real <lower = 0> shape; // shape parameter
      vector[2] beta; 
      real r_Day[D];
      real <lower = 0> sigma_D; 
      }

transformed parameters{
    vector[N] scale; // scale parameter
    for(n in 1:N) scale[n] = beta[1] + beta[2]*Treat[n] + r_Day[Day[n]];
    }


model {
    for(n in 1:N) Movment[n] ~  weibull(shape, exp(-(scale[n]/shape))) ;
    for (d in 1:D) r_Day[d] ~ normal(0, sigma_D);
}

但这段代码总是得到错误"Log probability evaluates to log(0),即负无穷大。Stan无法从这个初始值开始采样。拒绝初始值:“,并且采样停止。

请教我如何处理这个错误。

EN

回答 1

Stack Overflow用户

发布于 2018-09-16 06:52:47

这很可能是因为您在参数块中声明了sigma_D,但没有使用它,也没有在它上面放上优先级。我假设您的意思是按sigma_D扩展r_Day,但您仍然应该对所有参数设置适当的优先级。

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

https://stackoverflow.com/questions/52349173

复制
相关文章

相似问题

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