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

R使用dotwhisker绘制多组负二项回归点须图报错问询

问题原因

  1. 你使用的dotwhisker 0.7.4版本存在兼容问题:对于负二项回归这类频率模型,提前用broom::tidy()处理后再传入dwplot(),会被函数误判为贝叶斯模型结果,触发不必要的centrality参数校验,就会出现第一个参数不匹配的报错。
  2. 手动设置centrality = NULL不符合参数取值要求,函数无法提取有效估计值,自然出现第二个数据行数不匹配的报错。
  3. 负二项回归不需要额外搭配其他包即可完成点须图绘制,该类模型本身在dotwhisker的支持范围内,可支持5组及以上回归结果同时展示。

解决方案

方案1:直接传入模型对象(推荐)

不要提前对模型做tidy()处理,直接将模型对象放入列表传入dwplot(),同时明确指定centrality = "mean"即可:

dwplot(list(nblaborforcer, nblaborforcefpercent), 
       centrality = "mean") + 
  ylim(breaks = c("laborforcerl", "laborforcefpercentL"))

5组及以上模型直接往列表里追加模型对象即可正常渲染。

方案2:手动处理tidy结果后传入

如果有提前处理回归结果的需求,给每个tidy后的数据集添加model列标识所属模型,合并后传入并指定centrality = "mean"即可:

# 给每个模型的tidy结果添加标识
nb1$model <- "劳动力规模模型"
nb2$model <- "女性劳动力占比模型"
# 合并所有模型结果
all_reg_result <- rbind(nb1, nb2)
# 绘图
dwplot(all_reg_result, centrality = "mean") +
  ylim(breaks = c("laborforcerl", "laborforcefpercentL"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:24:01