R中marginaleffects与ggeffects多分类回归预测结果差异咨询
多分类回归模型边际效应计算的函数差异问题
1. 你确实在比较不同的统计量
两个函数的核心计算逻辑存在本质区别:
ggeffects::ggeffect:输出的是预测边际均值。它会将模型中除目标变量外的其他协变量固定到默认水平(因子变量取参考类别,连续变量取均值),然后计算目标变量各水平对应的预测响应值(这里是多分类的预测概率)。对于含交互项的模型,它会按交互变量的组合展示预测值,本质是控制其他变量后的"边际"预测。marginaleffects::avg_predictions:输出的是平均预测值。它会先为数据集中的每一个观测计算预测值,再对所有观测的预测值取平均值。这个过程是基于原始数据的协变量分布来整合,而非固定到参考水平,因此结果会受数据中协变量的实际分布影响。
正是这种统计量定义的差异,导致你得到的hvt类别下dynamic与stative的预测概率差异结果不同。
2. marginaleffects包中对应ggeffects::ggeffect的函数
有两个函数可以实现和ggeffects::ggeffect一致的逻辑:
(1)marginaleffects::marginalmeans()
这个函数专门用于计算预测边际均值,和ggeffects::ggeffect的核心逻辑完全匹配,直接指定目标变量即可:
# 计算SITN和CNTRY的预测边际均值 marginalmeans(model, variables = c("SITN", "CNTRY"))
(2)marginaleffects::predictions() + datagrid()
通过datagrid()指定其他协变量的固定水平(比如参考类别),来模拟ggeffects的行为:
# 固定其他变量为参考水平,计算SITN各水平的预测概率 predictions(model, newdata = datagrid(SITN = unique, .reference = TRUE))
内容的提问来源于stack exchange,提问作者Shakir
相关产品推荐
相关产品推荐

