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

基于2019年样本特征从2020年面板数据匹配生成新数据集

从2020年数据集中抽取与2019年特征匹配的样本

要从2020年数据集中筛选出特征(男女比例、母亲年龄、母亲受教育程度、家庭收入)与2019年数据集一致的小样本,可采用倾向得分匹配或分层加权抽样两种方法,具体实现如下:

方法一:倾向得分匹配(基于matchit包)

倾向得分匹配通过计算样本特征的匹配概率,从2020年数据集中挑选与2019年样本特征最接近的个体,能有效保证两组特征分布一致。

1. 安装并加载依赖包

# 首次使用需安装
install.packages(c("matchit", "cobalt"))

# 加载包
library(matchit)
library(cobalt)

2. 构造匹配用数据集

为两个数据集添加分组标识后合并,方便后续匹配计算:

# 标记分组:1=2019年样本,0=2020年样本
df_2019$group <- 1
df_2020$group <- 0

# 合并数据集
combined_df <- rbind(df_2019, df_2020)

3. 执行倾向得分匹配

以分组为因变量,指定需要匹配的特征字段:

# 最近邻匹配,每个2019年样本匹配1个2020年样本
match_obj <- matchit(group ~ sex_male + momage + momed + income, 
                     data = combined_df, 
                     method = "nearest", 
                     ratio = 1, 
                     replace = FALSE)

4. 提取匹配后的2020年样本

# 获取匹配结果数据集
matched_df <- match.data(match_obj)

# 筛选出2020年的匹配样本
df_2020_matched <- subset(matched_df, group == 0, select = -group)

5. 验证匹配效果

通过平衡性检查确认两组特征分布是否一致:

# 输出平衡性统计摘要
bal.tab(match_obj, un = TRUE)

# 可视化平衡性差异
love.plot(match_obj, binary = "std")

方法二:分层加权抽样

若需严格遵循2019年的特征分布比例抽样,可先计算2019年各特征的分布占比,再按该比例从2020年数据集中抽取对应样本。

1. 计算2019年特征分布

# 计算各特征的分布比例
sex_dist <- prop.table(table(df_2019$sex_male))
momed_dist <- prop.table(table(df_2019$momed))
income_dist <- prop.table(table(df_2019$income))

# 对母亲年龄进行分箱(示例分为5个区间)
df_2019$momage_bin <- cut(df_2019$momage, breaks = 5)
momage_dist <- prop.table(table(df_2019$momage_bin))

2. 按分布从2020年抽样

# 为2020年数据添加相同的年龄分箱
df_2020$momage_bin <- cut(df_2020$momage, breaks = levels(df_2019$momage_bin))

# 分层抽样
library(sampling)
strata_sample <- strata(df_2020, 
                        stratanames = c("sex_male", "momage_bin", "momed", "income"),
                        size = round(nrow(df_2019) * prop.table(table(df_2019[, c("sex_male", "momage_bin", "momed", "income")]))),
                        method = "srswor")

# 提取抽样结果
df_2020_stratified <- getdata(df_2020, strata_sample)

# 移除临时分箱变量
df_2020_stratified$momage_bin <- NULL

注意事项

  • 若2020年数据中部分特征组合的样本量不足,需适当调整匹配比例或放宽分箱区间。
  • 匹配/抽样完成后必须验证特征平衡性,确保两组样本的核心特征分布一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 23:02:05