正在加载中...

展开本页目录
算法教程PSM-倾向得分匹配(PSM)

PSM-倾向得分匹配(PSM)

No.053 · 在线教程

倾向得分匹配(Propensity Score Matching, PSM)用于在观察性数据中缓解处理组与对照组的协变量分布差异,从而更稳健地估计因果效应。核心思想是先估计个体接受处理的概率(倾向得分),再在相近倾向得分个体之间进行匹配,最后计算处理效应。

PSM-倾向得分匹配(PSM)

1. 方法概述

倾向得分匹配(Propensity Score Matching, PSM)用于在观察性数据中缓解处理组与对照组的协变量分布差异,从而更稳健地估计因果效应。核心思想是先估计个体接受处理的概率(倾向得分),再在相近倾向得分个体之间进行匹配,最后计算处理效应。

设样本为

$$ \mathcal{D}=\{(Y_i,T_i,X_i)\}_{i=1}^{n},\quad T_i\in\{0,1\},\ X_i\in\mathbb{R}^{p} \tag{1} $$

其中,\(Y_i\) 为结果变量,\(T_i\) 为处理指示变量,\(X_i\) 为协变量向量。

2. 倾向得分模型

倾向得分定义为

$$ e(X_i)=P(T_i=1\mid X_i) \tag{2} $$

系统支持 Logit/Probit 两种入口(当前实现使用 Logistic 回归估计概率):

$$ \Pr(T_i=1\mid X_i)=\frac{1}{1+\exp\big(-\beta_0-\beta^\top X_i\big)} \tag{3} $$

得到每个样本的估计倾向得分 \(\hat e_i\in(0,1)\)。

3. 匹配机制

设处理组索引集合为 \(\mathcal{I}_1\),对照组索引集合为 \(\mathcal{I}_0\)。

3.1 最近邻匹配(1:1)

对每个处理个体 \(i\in\mathcal{I}_1\),选择距离最小的对照个体:

$$ j(i)=\arg\min_{j\in\mathcal{I}_0} \left|\hat e_i-\hat e_j\right| \tag{4} $$

3.2 卡钳约束

若设置卡钳系数 \(c\),则卡钳阈值为

$$ \delta=c\cdot \operatorname{sd}(\hat e) \tag{5} $$

仅当

$$ \left|\hat e_i-\hat e_{j(i)}\right|\le \delta \tag{6} $$

时保留匹配对,否则该处理样本不匹配。

3.3 核匹配(高斯核)

对处理样本 \(i\) 与所有对照样本 \(j\in\mathcal{I}_0\) 计算权重:

$$ w_{ij}=\frac{\exp\left[-\frac{1}{2}\left(\frac{|\hat e_i-\hat e_j|}{h}\right)^2\right]}{\sum_{k\in\mathcal{I}_0}\exp\left[-\frac{1}{2}\left(\frac{|\hat e_i-\hat e_k|}{h}\right)^2\right]} \tag{7} $$

其中 \(h\) 为带宽(程序中由 caliper 或默认值控制)。

4. 处理效应估计(ATT)

系统输出重点为处理组平均处理效应(ATT):

$$ \widehat{ATT}=\frac{1}{N_m}\sum_{i\in\mathcal{M}}\left(Y_i^{(1)}-\tilde Y_i^{(0)}\right) \tag{8} $$

其中 \(\mathcal{M}\) 为成功匹配的处理样本集合,\(N_m=|\mathcal{M}|\)。

  • 在 1:1 匹配下,\(\tilde Y_i^{(0)}=Y_{j(i)}\)。
  • 在核匹配下,\(\tilde Y_i^{(0)}=\sum_{j\in\mathcal{I}_0} w_{ij}Y_j\)。

4.1 Bootstrap 标准误与置信区间

程序使用自助法估计标准误(默认重复抽样次数为 1000):

$$ \widehat{SE}(\widehat{ATT})=\operatorname{sd}\left(\widehat{ATT}^{*(1)},\ldots,\widehat{ATT}^{*(B)}\right) \tag{9} $$

95% 置信区间(正态近似):

$$ \widehat{ATT}\pm 1.96\cdot \widehat{SE}(\widehat{ATT}) \tag{10} $$

t 统计量与双侧 p 值:

$$ t=\frac{\widehat{ATT}}{\widehat{SE}(\widehat{ATT})},\qquad p=2\left[1-\Phi(|t|)\right] \tag{11} $$

5. 匹配质量与平衡性诊断

5.1 标准化均值差(SMD)

对协变量第 \(k\) 维,SMD 定义为

$$ SMD_k=\frac{\bar X_{1k}-\bar X_{0k}}{\sqrt{\frac{S_{1k}^2+S_{0k}^2}{2}}} \tag{12} $$

通常以 \(|SMD_k|<0.1\) 作为“平衡较好”的经验阈值。

5.2 匹配率

$$ \text{MatchRate}=\frac{N_m}{N_1} \tag{13} $$

其中 \(N_1\) 为处理组样本数。

5.3 共同支撑区域

设处理组和对照组倾向得分范围分别为 \([\min\hat e_1,\max\hat e_1]\) 与 \([\min\hat e_0,\max\hat e_0]\),共同支撑区间为

$$ \left[\max(\min\hat e_1,\min\hat e_0),\ \min(\max\hat e_1,\max\hat e_0)\right] \tag{14} $$

支撑率定义为落入该区间样本比例:

$$ \text{SupportRate}=\frac{N_{\text{in support}}}{n} \tag{15} $$

6. 预处理与特征工程(与程序一致)

系统支持在估计倾向得分前进行:缺失处理、One-Hot 编码、标准化/归一化、可选多项式特征、特征选择与降维。训练时先拟合预处理管线,再将同一变换作用于全体样本,减少数据泄漏风险。

常见标准化写法:

$$ z_{ij}=\frac{x_{ij}-\mu_j}{\sigma_j} \tag{16} $$

7. 符号说明表

符号 含义
\(n\) 总样本量
\(p\) 协变量维度
\(Y_i\) 第 \(i\) 个样本结果变量
\(T_i\) 第 \(i\) 个样本处理指示(0/1)
\(X_i\) 第 \(i\) 个样本协变量向量
\(e(X_i)\) 倾向得分
\(\hat e_i\) 估计倾向得分
\(\mathcal{I}_1,\mathcal{I}_0\) 处理组/对照组索引集合
\(\widehat{ATT}\) 处理组平均处理效应估计
\(SMD_k\) 第 \(k\) 个协变量标准化均值差
\(\delta\) 卡钳阈值
\(h\) 核匹配带宽

8. 输出结果与论文写作建议

程序输出通常包含以下内容:

  1. 倾向得分分布图(处理组 vs 对照组)
  2. 共同支撑图
  3. 协变量平衡图(匹配前/后)
  4. Love Plot(SMD 对比)
  5. 结果变量分布图(处理组 vs 匹配对照组)
  6. Excel 多表(倾向得分、匹配结果、处理效应、平衡性、匹配质量、图表清单)

论文正文建议按“方法公式 -> 平衡性诊断 -> ATT 主结果 -> 稳健性说明”结构撰写。

9. 与代码实现的对应关系

本算法在程序中通过 具体的算法2/PSM-倾向得分匹配(PSM) 下的计算与绘图模块实现。程序会直接导出倾向得分、匹配对、ATT、平衡性和匹配质量结果,因此论文撰写时应紧扣这些结构化产物,而不是只报告一个 ATT 数值。

9.1 程序实际导出的工作表

  • 倾向得分:样本处理状态与估计倾向得分;
  • 匹配结果:处理组与对照组的匹配索引;
  • 处理效应:ATT、标准误、区间与显著性;
  • 协变量平衡_匹配前协变量平衡_匹配后:平衡性诊断;
  • 匹配质量:匹配率、PS 距离、共同支撑等;
  • 图表清单:图表路径索引。

9.2 程序实际生成的图表

  • 倾向得分分布图;
  • 共同支撑图;
  • 协变量平衡图;
  • Love Plot;
  • 结果变量分布对比图。

9.3 程序实现中应写明的点

  • 程序支持不同匹配方式,论文中应明确说明是最近邻、卡钳还是核匹配;
  • 平衡性应优先看 协变量平衡_匹配后 的 SMD 变化;
  • 匹配质量 表中的支撑率和匹配率适合用于稳健性说明;
  • 图表清单中的相对路径便于附录统一管理插图。

10. 与当前程序导出 Sheet 一一对应说明

Excel Sheet 名称 含义 可引用指标/字段
倾向得分 每个样本的处理状态与 \(\hat e_i\) 样本ID、处理状态、倾向得分
匹配结果 匹配对索引关系 处理组ID、对照组ID
处理效应 ATT 推断结果 ATT、标准误、95%CI、t统计量、p值
协变量平衡_匹配前 匹配前平衡性 Mean_Treated、Mean_Control、SMD、Balanced
协变量平衡_匹配后 匹配后平衡性 Mean_Treated、Mean_Control、SMD、Balanced
匹配质量 匹配与支撑诊断 匹配率、平均/最大PS距离、共同支撑上下限、支撑率
图表清单 图文件索引 图表名称、文件路径

11. 论文写作模板

“本文采用倾向得分匹配(PSM)评估处理效应。首先基于协变量 \(X\) 估计个体接受处理的概率 \(e(X)=P(T=1\mid X)\)(式(2)–(3)),随后使用最近邻/卡钳/核匹配策略构建处理组与对照组可比样本(式(4)–(7))。在匹配样本上计算处理组平均处理效应 \(ATT\)(式(8)),并通过 Bootstrap 获得标准误和 95% 置信区间(式(9)–(10))。此外,使用标准化均值差 \(SMD\) 检验协变量平衡(式(12)),并报告匹配率与共同支撑率(式(13)–(15))以验证匹配质量。”

12. 注意事项

  1. PSM 依赖“可观测协变量充分控制”假设,未观测混杂仍可能导致偏差。
  2. 匹配后应优先检查 \(|SMD|\) 是否显著下降,而非仅关注 ATT 显著性。
  3. 若匹配率或支撑率偏低,可尝试调整卡钳、匹配方法或补充协变量。
  4. 核匹配与 1:1 匹配在解释上不同,论文中应明确说明采用方式。

13. 英文段落模板(用于论文写作)

“This study employed Propensity Score Matching (PSM) to estimate the treatment effect under observational data settings. First, the propensity score \(e(X)=P(T=1\mid X)\) was estimated using a logistic model (Eqs. (2)–(3)). Then, treated and control units were matched using nearest-neighbor, caliper, or kernel matching (Eqs. (4)–(7)). The Average Treatment Effect on the Treated (ATT) was computed on the matched sample (Eq. (8)). Statistical inference was conducted using bootstrap-based standard errors and 95% confidence intervals (Eqs. (9)–(10)), along with \(t\)-statistics and two-sided \(p\)-values (Eq. (11)). Covariate balance was evaluated by standardized mean differences (SMD; Eq. (12)), and matching quality was assessed by match rate and common support rate (Eqs. (13)–(15)).”

“After matching, the absolute SMDs were substantially reduced, indicating improved covariate balance between treatment and control groups. The estimated ATT remained statistically interpretable with reported confidence intervals, suggesting that the observed effect was not solely driven by baseline covariate imbalance. To ensure transparency and reproducibility, the study reports propensity scores, matched pairs, treatment effect estimates, balance diagnostics, matching-quality metrics, and chart indexes in structured Excel outputs.”

14. 英文图表题注模板

14.1 英文图题模板

  • Fig. 1. Propensity score distributions for treated and control groups before/after matching.
  • Fig. 2. Common support region of estimated propensity scores.
  • Fig. 3. Covariate balance comparison (SMD) before and after matching.
  • Fig. 4. Love plot of standardized mean differences across covariates.
  • Fig. 5. Outcome distribution comparison between treated and matched control groups.

14.2 英文表格标题模板

  • Table 1. Estimated treatment effect (ATT), standard error, confidence interval, and significance test.
  • Table 2. Covariate balance diagnostics before and after matching (Mean, SMD, Balanced flag).
  • Table 3. Matching quality statistics (number of matched pairs, match rate, propensity-score distance, support rate).
  • Table 4. Matched pair index mapping between treated and control units.
  • Table 5. Exported chart index and file path mapping for reproducibility.

14.3 英文结果表述模板

“As shown in Table 1, the estimated ATT is [value] with a 95% CI of [lower, upper], indicating [positive/negative/non-significant] treatment effect. Table 2 and Fig. 4 show that post-matching \(|SMD|\) values are mostly below 0.1, suggesting acceptable covariate balance. According to Table 3, the match rate is [value] and the support rate is [value], indicating [good/moderate/limited] matching quality.”

15. 单篇终审补充

15.1 图题与表题对齐建议

  • 本文档应优先对应真实算法目录 具体的算法2/PSM-倾向得分匹配(PSM)
  • 代表性结果目录建议绑定 具体的算法2/PSM-倾向得分匹配(PSM)/results/PSM_20260329_165252
  • 表题应直接对应 PSM分析结果_20260329_165252.xlsx 的真实工作表:倾向得分匹配结果处理效应协变量平衡_匹配前协变量平衡_匹配后匹配质量图表清单
  • 图题应优先绑定该目录下真实图:01_propensity_scores.png02_common_support.png03_covariate_balance.png04_love_plot.png05_outcome_distribution.png

15.2 终审说明

  • 当前 PSM 的结果表和图表可以在单个时间戳目录内闭环引用。
  • 复现脚本可对应 results/repro_psm_20260329_165323.py,其 SRC_FILE 实际写为 psm_window1_input.csv,属于“results 根目录脚本同目录 CSV 快照复现”口径。
  • 因此论文附录若写复现方式,应明确区分“时间戳结果目录中的分析产物”和“results 根目录中的 repro 脚本与输入快照”,不要误写成目录内自带 repro_inputs

15.3 全量强化补充

  • 当前文档已按真实磁盘结果补强,建议绑定的主分析目录为 具体的算法2/PSM-倾向得分匹配(PSM)/results/PSM_20260329_165252
  • 该目录下的主结果工作簿为 PSM分析结果_20260329_165252.xlsx,实际工作表共 7 张:倾向得分匹配结果处理效应协变量平衡_匹配前协变量平衡_匹配后匹配质量图表清单
  • 与该主工作簿同层的真实图文件共 5 张,分别为 01_propensity_scores.png02_common_support.png03_covariate_balance.png04_love_plot.png05_outcome_distribution.png,适合分别对应倾向得分分布、共同支撑区间、平衡性变化、Love Plot 和结果变量分布图。
  • 该算法当前不能写成“结果目录内自带 repro_inputs 标准复现链”,因为主时间戳目录 /PSM_20260329_165252/ 内只放主结果簿和图,不放复现脚本。
  • 真实复现链位于 results 根目录:具体的算法2/PSM-倾向得分匹配(PSM)/results/repro_psm_20260329_165323.py,并与 psm_window1_input.csv 同层放置;这说明它采用的是“脚本同目录输入快照复现”而不是 repro_inputs/... 结构。
  • 因此正文、附录和可复现实验说明必须明确分开两层证据:第一层是 PSM_20260329_165252/ 内的主分析产物,第二层是 results 根目录下的 repro_psm_20260329_165323.py + psm_window1_input.csv 再执行入口。
  • 若论文写“程序自动导出复现目录”,这里应修正为“程序历史结果中主分析目录与复现脚本目录分离”;否则会把用户手动可见的结果簿路径和脚本入口路径混成一层。
  • 从写作映射上看,处理效应 表最适合承接 ATT、标准误、区间估计与显著性解释;协变量平衡_匹配前协变量平衡_匹配后 应成对引用;匹配质量 表应用于说明匹配率、支撑率和平均距离;图表清单 则用于附录中的图号与文件路径对照。

16. 软件实现核查补充(2026-07)

  • 当前实现的主结果目录应写作 具体的算法2/PSM-倾向得分匹配(PSM)/results/PSM_20260329_165252,主工作簿为 PSM分析结果_20260329_165252.xlsx
  • 正文应围绕 倾向得分匹配结果处理效应协变量平衡_匹配前协变量平衡_匹配后匹配质量图表清单 来写。
  • 图证应对应 01_propensity_scores.png02_common_support.png03_covariate_balance.png04_love_plot.png05_outcome_distribution.png
  • repro_psm_20260329_165323.py + psm_window1_input.csv 属于 results 根目录脚本同目录 CSV 快照复现口径,正文和附录必须与主分析目录分开说明。