【发布时间】:2020-08-26 22:30:51
【问题描述】:
这只是一个贝叶斯新手的编码查询。
我有一个这种类型的模型:
response ~ pred + (1 | participant) + (1 | item) # pred = {level1, level2, level3} [ref level = level1]
我正在使用 brms。我想在 pred 的三个级别上放置不同的先验。假设这些是先验:
- 拦截(level1):N ~ (1,1)
- level2 相对于 level1 的影响:N ~ (0,1)
- level3 相对于 level1 的影响:N ~ (-1,1)
我想我知道如何为 level1 设置先验;我遇到的麻烦是为 level2 和 level3 设置两个不同的先验。以我有限的 brms 技能,这是我能得到的最接近的:
prior1 <- c(
prior(normal(1, 1), class = Intercept), # level1
prior(normal(0, 1), class = b, coef = weight) # prior for level 2, but specified as if there is no level3
)
如你所见,我不知道如何处理level3。
显然,在 Stan 中可以做到这一点。 (不幸的是,我对 Stan 并不精通。)我在某处找到了以下代码:
// prior specifications
b[1] ~ normal (0, 1);
b[2] ~ normal (-1, 1);
temp_Intercept ~ normal (1, 1)
简而言之,有人可以告诉我如何修改上面的 brms 代码,以便我可以为 level2 和 level3 设置单独的先验吗?
如果能提供任何帮助,我将不胜感激。我确实找到了this earlier query,但我不确定它是否与我的查询相关。
【问题讨论】:
标签: r regression bayesian