在 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_rows
100 时,我收到以下错误消息:
Error: Family 'binomial' requires integer responses.
有人能理解为什么会这样吗?在 glm 中,数据n_rows = 100
工作正常。
(显然我的真实数据(也发生错误的地方)看起来不同。我只是设法像这样重新创建它。)
非常欢迎任何帮助!