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

如何在R的twang包中提取匹配数据框及加权后的完整数据集?

使用twang包提取加权数据集与匹配数据框

一、提取IPTW加权后的完整数据集

当你用iptw()完成倾向得分加权后,返回的模型对象(比如命名为iptw_fit)里包含了原始数据、倾向得分和各类权重,直接将原始数据与这些信息合并就能得到加权后的完整数据集:

  1. 先确认你已经拟合了IPTW模型:
library(twang)
# 以ATE为估计量拟合模型,替换成你的变量和数据
iptw_fit <- iptw(
  treat = treat_var,
  covariates = ~ cov1 + cov2 + cov3,
  data = your_raw_data,
  estimand = "ATE"
)
  1. 合并原始数据与权重、倾向得分:
# 把原始数据和倾向得分、对应权重绑定
weighted_full_data <- cbind(
  your_raw_data,
  ps_score = iptw_fit$ps,
  # 这里选ATE权重,根据你设定的estimand调整为ATT/ATC
  weight = iptw_fit$weights$ATE
)

得到的weighted_full_data就是包含所有原始变量、倾向得分和加权权重的完整数据集,可直接用于后续加权分析。

二、提取twang中的匹配数据框

twang包的psmatch()函数专门用于倾向得分匹配,从返回的匹配对象中直接提取matched.data即可得到匹配后的数据框:

  1. 拟合倾向得分匹配模型:
# 以1:1匹配为例,替换成你的变量和数据
match_fit <- psmatch(
  treat = treat_var,
  covariates = ~ cov1 + cov2 + cov3,
  data = your_raw_data,
  ratio = 1
)
  1. 提取匹配后的数据集:
matched_data <- match_fit$matched.data

matched_data仅保留了处理组和成功匹配的对照组样本,是已经完成匹配的完整数据框。

注意:twang的核心功能是IPTW加权,iptw()本身不生成匹配数据集,匹配是psmatch()的专属功能,不要混淆两者的使用场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 17:02:16