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

ggeffects中test_predictions处理分类非焦点项的技术问询

关于test_predictions与predict_response的参数差异及报错问题解答

问题1:test_predictions默认如何处理分类非焦点项?

test_predictions(来自marginaleffects包)默认会将非焦点分类变量固定在其参考类别(基准水平),数值型非焦点变量则取均值。这种逻辑和predict_response不设置margin参数时的行为一致,这也是你移除margin后两者结果匹配的原因。

问题2:能否让test_predictions按predict_response中margin='marginalmeans'的方式处理?

可以实现,核心是先构造符合边际均值逻辑的数据集,再传入test_predictions:

  • 方式一:用ggeffects::predict_response()生成带margin='marginalmeans'的预测数据集,将其作为newdata参数传入test_predictions,基于边际均值结果做检验。
  • 方式二:使用marginaleffects包的avg_predictions()函数,通过by参数指定分组变量,先得到边际均值结果,再对这些结果执行test_predictions。

关于多year水平的报错问题

报错翻译

错误:hypotheses参数的"pairwise"、"reference"和"sequential"选项不支持结果行数超过25行的marginaleffects命令。请使用newdata、by和/或variables参数计算更小的结果集,再进行假设检验。

原因与解决方法

报错是因为指定5个year水平后,模型生成的预测结果行数超过25行,而pairwise这类两两比较会产生大量假设检验,包出于性能优化和避免过度多重比较的目的设置了这个限制。解决思路:

  • 减少year的指定水平数(比如回到3个);
  • 用by参数对countryname或parfam等分类变量分组,缩小单次检验的结果范围;
  • 先用avg_predictions()生成汇总后的边际均值结果(行数会大幅减少),再基于这个结果做两两比较检验。

内容的提问来源于stack exchange,提问作者גלעד הורביץ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 00:33:15