如何将brms构建的多分类回归模型转换为emmeans可处理的对象
解决方案
你遇到的报错是因为brms的多分类(categorical)模型会为每个非参照的结局水平生成独立的分布参数,emmeans默认不知道要汇总哪一个参数的边际均值,只需要在调用emmeans()时加上categorical = TRUE参数即可自动适配多分类输出,不需要单独调用ref_grid():
# 直接调用emmeans,指定categorical参数识别多分类结局 em_brm <- emmeans(test_brm, specs = ~prog2|ses, categorical = TRUE) # 转换为logit尺度,和nnet的结果对齐 em_brm_logit <- regrid(em_brm, transform = "logit") em_brm_logit
运行上述代码后得到的em_brm_logit对象结构和你用nnet得到的结果完全一致,后续的成对对比、自定义检验操作都可以直接沿用你之前针对nnet对象写的代码。
如果你确实需要先构建参考网格,也可以按报错提示分别指定dpar参数提取单个类别的参数后再合并,不过直接加categorical = TRUE是最简单的适配方案。
内容的提问来源于stack exchange,提问作者llewmills
相关产品推荐
相关产品推荐

