You need to enable JavaScript to run this app. R语言miceadds::glm.cluster模型聚类标准误下平均边际效应计算及报错排查
优惠活动
大模型
产品
解决方案
定价
更多

R语言miceadds::glm.cluster模型聚类标准误下平均边际效应计算及报错排查

操作报错的核心原因
  • 直接传入glm.cluster对象到margins的报错:margins的底层数据定位函数find_data仅支持识别传统S3类的模型对象,miceadds::glm.cluster返回的是自定义结构对象,没有内置可被识别的公式调用关联属性,因此触发“需要公式调用”的识别错误。
  • 提取内嵌glm_res传入margins的报错:glm.cluster内部存储的glm_res是临时生成的回归结果容器,生成完成后即剥离了原始数据集关联、模型环境绑定等属性,margins在计算微分时无法从无绑定的环境中定位到解释变量,因此触发“对象找不到”的错误,同时因无法识别变量类型,生成对应类不识别的警告。
保留聚类稳健标准误的平均边际效应计算方案

glm.cluster的核心逻辑是在基础glm的系数估计完成后,仅将模型默认协方差矩阵替换为聚类稳健版本,本身不改动回归系数的计算结果。基于该特性可按以下步骤操作:

  1. 从glm.cluster的返回对象中提取聚类稳健协方差矩阵
cluster_vcov <- cseLogit$vcov
  1. 使用原始数据集,按照和glm.cluster完全一致的参数,重新运行一次基础glm回归,保证模型对象的环境、数据关联属性完整可被margins解析
# 与glm.cluster的公式、样本、分布族设定完全对齐
base_logit <- glm(
  formula = follow ~ f1_distance + f2_distance + PolFol + MediaFol,
  data = data_long,
  family  = binomial(link = "logit")
)
  1. 调用margins计算平均边际效应,显式指定之前提取的聚类协方差矩阵覆盖模型默认协方差,确保边际效应的标准误完全继承聚类稳健调整结果
ame_result <- margins(
  model = base_logit,
  vcov = cluster_vcov
)

操作注意事项

  • 重新运行的基础glm必须和原glm.cluster的公式、样本量、分布族设定完全一致,保证回归系数与原聚类模型完全对齐,避免边际效应数值出现偏差。
  • 不要直接使用cseLogit$glm_res作为margins的输入,该对象的临时环境属性已被清理,无法正常完成变量定位。
  • 该方案计算得到的平均边际效应数值与原聚类模型完全一致,标准误通过显式指定聚类协方差实现,不会丢失聚类调整的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.10 01:36:04