首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >brms:如何在分类变量上设置优先级?

brms:如何在分类变量上设置优先级?
EN

Stack Overflow用户
提问于 2019-11-25 00:54:37
回答 1查看 1.7K关注 0票数 4

我正在使用两个分类变量构建一个二项式回归模型。这是从《统计反思》一书中的一个例子中得出的。在这本书中,当使用rethinking包时,我们可以为每个分类变量设置先验,如下所示

代码语言:javascript
运行
复制
m11.5 <- ulam(
 alist(
   pulled_left ~ dbinom( 1 , p ) ,
   logit(p) <- a[actor] + b[treatment] ,
   a[actor] ~ dnorm( 0 , 1.5 ),
   b[treatment] ~ dnorm( 0 , 0.5 )
) ,
data=d , chains=4 , log_lik=TRUE )

我正试图在brms中做同样的事情。

代码语言:javascript
运行
复制
priors <- c(prior(normal(0, 1.5), class = b, coef = "actor"),
            prior(normal(0, 0.5), class = b, coef = "treatment"))

m11.5 <- brm(data = d, family = binomial,
          formula = pulled_left | trials(1) ~ 1 + actor + treatment,
          sample_prior = T, prior = priors,
          cores = 4, chains = 4)

我想为所有演员级别和一次提到的治疗级别设置先验。然而,上面的代码没有完成以下错误消息,

在使用get_prior时,我看到了以下内容(这意味着级别在内部是分开的)

我不想为每一级分类变量指定先验。我该怎么做呢?敬请指教。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-29 08:47:29

您只需粘贴和设置多个系数:

代码语言:javascript
运行
复制
priors <- c(prior_string("normal(0, 1.5)", class = "b", coef = paste("actor", 2:7, sep="")),
            prior_string("normal(0, 0.5)", class = "b", coef = paste("treatment", 2:4, sep="")))
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59020123

复制
相关文章

相似问题

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