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

如何使用MatchThem包提取插补后仅含匹配样本的数据集

问题原因

MatchThem包的complete()函数默认返回所有插补后的全量样本,不会自动剔除未匹配成功的观测,这是你得到的样本量不符合预期的核心原因。所有匹配成功的观测会被标记为weights>0,未匹配的观测weights=0,只需做一步筛选即可得到目标匹配数据集。

修正后的提取代码
library(mice)
library(MatchThem)

# 多重插补
mids_object <- mice(data, maxit = 5, m=3, seed= 20211022, printFlag = F)

# 匹配
mimids_object <- matchthem(primary_subtype ~ age + bmi + ps, data = mids_object, approach = "within" ,ratio= 3, method = "optimal")

# 提取匹配数据集并过滤未匹配样本
complete_mi_matched <- complete(mimids_object, action = "long")
# 仅保留匹配成功的观测
complete_mi_matched <- complete_mi_matched[complete_mi_matched$weights > 0, ]

# 验证匹配结果
summary(complete_mi_matched$primary_subtype)
补充说明
  • 如果你设置了m=3套插补,过滤后的长格式数据集总样本量为 177*3=531 条,每套插补子集的样本分布都符合3:1匹配比例要求。
  • 若要提取单套插补的匹配数据集,可将complete()函数的action参数设为对应插补集序号,例如action=1即可提取第一套插补的177条匹配样本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:54:06