当我们进行累积回归分析时,brms包中的bf()是什么意思?

Han*_*cl_ 7 regression r hierarchical-bayesian brms

我试图在序数数据上运行贝叶斯多级累积模型,并正在阅读brms在线文档。我的模型看起来像

model <- brm(bf(y ~ Condition + (Condition|item) + (Condition|subject)),
                    data = df, 
                    family = cumulative(link="probit", threshold="flexible"),
                    chains=4,cores=4,iter=2000, prior = prior) 
Run Code Online (Sandbox Code Playgroud)

bf()我看到有些文档在指定公式时没有该函数,但有些文档有。有人可以向我解释一下bf()这里在做什么吗?谢谢!

小智 6

bf()函数只是指定一个公式,在函数内部将其用于简单模型brm()并不是您需要做的事情。您可以在您的示例中删除它。

但是,您可以使用该bf()函数将公式保存为对象以传递给该brm()函数,如下所示:

model_formula <- bf(y ~ Condition + (Condition|item) + (Condition|subject))

model <- brm(model_formula,
             data = df, 
             family = cumulative(link="probit", threshold="flexible"),
             chains=4,cores=4,iter=2000, prior = prior) 
Run Code Online (Sandbox Code Playgroud)

对于更高级的公式,您可能需要使用该bf()函数来分隔模型的不同部分。例如,如果您没有将公式包含在:中,这样的线性模型将不会运行bf()

model <- brm(bf(y ~ x + (1+x|random_effect), sigma ~ x), ...)
Run Code Online (Sandbox Code Playgroud)

以下是一些描述更复杂模型的页面链接,这些模型都使用该bf()函数来指定公式:

https://cran.r-project.org/web/packages/brms/vignettes/brms_distreg.html

https://paul-buerkner.github.io/brms/reference/mixture.html