1

在 R 的 glm() 函数中,您可以通过使用响应变量的“列规范”来拟合逻辑回归(家庭 = 二项式),如下所示:

glm(cbind(success, (n - sucess)) ~ 1, family = binomial, ...)

brmsformula 的文档(在附加响应信息下)指出,在 brm() 中可以通过以下方式实现相同的目标:

brm(success | trials(n) ~ 1, family = binomial, ...)

从以下(诚然相当愚蠢的)示例中可以看出,这似乎有效:

set.seed(1)
n_rows = 10
success = abs(round(rnorm(n_rows), 1) * n_rows)
n = success * 2
data = data.frame(success, n)

library(brms)
model = brm(success | trials(n) ~ 1, 
            data = data,
            family = binomial("logit"))

但是,当我增加n_rows100 时,我收到以下错误消息:

Error: Family 'binomial' requires integer responses.

有人能理解为什么会这样吗?在 glm 中,数据n_rows = 100工作正常。

(显然我的真实数据(也发生错误的地方)看起来不同。我只是设法像这样重新创建它。)

非常欢迎任何帮助!

4

0 回答 0