You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在brms中丢弃空交互项:为何预期行为未出现?

brms未丢弃无数据交互项的原因解析

你遇到的是brms和rstanarm在分类变量交互项处理上的设计差异:

  • rstanarm会自动检查数据,移除那些没有对应观测的交互项水平(也就是空单元格),所以在你的例子里var1a:var2z会被丢弃。
  • brms则遵循R基础公式系统的默认逻辑,会保留分类变量所有可能的交互项组合,哪怕某个组合在数据里没有观测值。这就是为什么你运行代码后,var1a:var2z依然存在于模型中。

如果想让brms和rstanarm的行为一致,你可以手动构建只包含现有数据组合的交互项变量,再建模:

data$int <- interaction(data$var1, data$var2, drop = TRUE)
fit <- brms::brm(y ~ -1 + int, data = data)

这样模型就只会保留有实际观测的交互项,和rstanarm的处理结果一致。

内容的提问来源于stack exchange,提问作者wati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 19:32:34