2

我理解贝叶斯中的先验概念,这很酷,但是将它们变成代码太难了。据我所知,没有先验的发布不是一个好习惯。我有相当大的数据集,n = 5000,因此非常温和的信息先验会更好。任何人都可以帮忙吗?

我有一个 hurdle_lognormal 模型如下:

fit = brm(bf(received_treatment_hours ~ p1 + p2 + p3_fct + p4 + p5_fct + p6 + p7 + (1 | region), hu ~ p1 + p2 + p3_fct + p4 + p5_fct + p6 + p7 + (1 | region)), data = df, family = hurdle_lognormal(), cores = 3, chains = 3, prior = prior)

received_treatment_hours 是一个零膨胀 (50%) 的结果变量,还包含极值(异常值)。范围从0-100,大多数患者接受约5小时。

这是之前的总结

prior_summary(fit)

在此处输入图像描述

如何为模型的对数正态和二项式部分编写一般 b 先验?让我们假设在不同的预测因子水平之间接受治疗时间不可能超过 30 小时。零的比例在不同的预测水平之间变化很大(10-90%)——如何编码?

这些 sd、intercept 和 sigma 先验可以定义什么?

我为模型的对数正态部分编写的代码:

prior = c(prior(student(3, 0, 15), class=b), #allows extreme values and 2xSD = 2x15 = 30 hours
           prior(student_t(3, 0, 15), class= sd, group = county))  #prior for hierarchical part of the model, allows extreme values and 2xSD = 2x15 = 30 hours
4

0 回答 0