教程 ·
倾向得分匹配(PSM)用 AI 完成 — 反事实因果、平衡性检验与敏感性分析全攻略
倾向得分匹配(PSM)完整教程:AI 一句话完成匹配、SMD 平衡性检验、ATT 估计、Love Plot 可视化与 Rosenbaum 界值敏感性分析,含可直接套进论文的 APA 7th 报告句式。
数据是观察性的,不是随机对照试验,却想估计因果效应?PSM 是最广泛应用的解决方案——但 R 的 MatchIt 包参数多、检验步骤繁,每次改一个匹配比例就得重跑全套。这篇教程教你用 AI 一句话完成从倾向得分估计到 Rosenbaum 敏感性检验的完整流程。
观察性研究的因果推断困境
随机对照试验(RCT)是估计因果效应的金标准——随机分组使得处理组与对照组在所有协变量上均衡,组间差异可归因于处理本身。
但现实中大多数数据是观察性的:
- 政策评估(获得补贴 vs 未获得补贴的企业)
- 医学研究(接受某种治疗 vs 未接受治疗的患者)
- 教育研究(参加项目 vs 未参加项目的学生)
- 社会调查(有某种经历 vs 无此经历的受访者)
这类数据的根本问题是选择性偏差(Selection Bias):处理组和对照组在接受处理之前就已经不同——年龄更大、病情更重、经济条件更好的人可能更倾向于接受某种干预。如果直接比较结局,组间差异混杂了处理效应和基线差异,无法分离。
倾向得分匹配(Propensity Score Matching, PSM) 是 Rosenbaum & Rubin(1983)提出的经典解决方案:用"在给定协变量下接受处理的概率"(即倾向得分)将处理组和对照组中相似的个体配对,人工构造出近似随机化的对照组,从而控制已观测的混杂变量。
PSM 的核心概念
倾向得分
倾向得分 e(X) 定义为:在观测到协变量 X 的条件下,个体接受处理(T = 1)的概率:
e(X) = P(T = 1 | X)
通常通过Logistic 回归估计,以处理指示变量为因变量,以所有已知混杂变量为自变量。
Rosenbaum & Rubin(1983)证明了倾向得分平衡性定理:如果在协变量 X 条件下处理是随机的,那么在倾向得分 e(X) 条件下处理也是随机的。这意味着只要匹配后倾向得分相似的处理组和对照组成员,就可以在两组之间进行因果比较。
平均处理效应与 ATT
PSM 最常估计的是处理组的平均处理效应(Average Treatment Effect on the Treated, ATT):
ATT = E[Y(1) - Y(0) | T = 1]
含义:对于那些实际接受了处理的个体,处理使其结局(Y)平均改变了多少。这是观察性研究中因果问题的自然表述:"这一批接受了治疗的患者,治疗到底有没有效果?"
重要区分:ATT 不等于 ATE(全样本平均处理效应)。PSM 主要估计 ATT;若需 ATE,应考虑逆概率加权(IPW)等方法。
平衡性检验:SMD
匹配质量的核心指标是标准化均值差(Standardized Mean Difference, SMD),又称 d:
SMD = (M_处理组 - M_对照组) / SD_合并
平衡性判据(Austin, 2011):
- |SMD| < 0.10:协变量已良好平衡(通用阈值)
- |SMD| < 0.25:部分文献采用的宽松标准
- |SMD| >= 0.10:该协变量匹配后仍不平衡,需重新调整匹配方案
注意:平衡性检验应报告 SMD,而非传统的 t 检验或 chi-squared 检验 p 值。原因:匹配后样本量减小,p 值检验功效下降,p > .05 不代表平衡,反而可能是样本太小检测不到差异;SMD 不受样本量影响,是更稳健的平衡指标(Austin, 2011)。
案例数据:新型降压方案对心血管事件的效果评估
研究背景
某医院电子病历数据库提取 2019–2023 年 40–75 岁高血压患者共 1,280 名。研究问题:接受新型联合降压方案(处理组,T = 1,n = 420)相比标准单药治疗(对照组,T = 0,n = 860)是否能降低 2 年内主要心血管事件(MACE)发生率?
数据结构
patient_id 患者编号
treatment 处理指示变量(1 = 新方案,0 = 标准方案)
age 年龄(岁,连续)
sex 性别(0 = 女,1 = 男)
bmi 体质指数(连续)
sbp_baseline 基线收缩压(mmHg,连续)
diabetes 合并糖尿病(0 = 无,1 = 有)
smoker 吸烟(0 = 否,1 = 是)
ckd 慢性肾病(0 = 无,1 = 有)
prev_cvd 既往心血管病史(0 = 无,1 = 有)
mace_2yr 2年内主要心血管事件(0 = 无,1 = 有) -- 结局变量
匹配前基线不均衡:处理组患者平均年龄更大(62.4 vs 58.1岁)、基线收缩压更高(152.3 vs 143.8 mmHg)、糖尿病比例更高(38.3% vs 24.7%),若直接比较 MACE 率,结果将严重低估新方案的保护效果(处理组基线风险本身更高)。
用 AI 一句话完成 PSM 全流程
在 chatsrs.com 上传数据后输入:
"以 treatment 为处理变量,age、sex、bmi、sbp_baseline、diabetes、smoker、ckd、prev_cvd 为协变量,对 mace_2yr 做倾向得分匹配分析(PSM)。 请输出:
- 匹配前协变量描述统计 + SMD 表(处理组 vs 对照组)
- 用 Logistic 回归估计倾向得分,输出各协变量系数和倾向得分分布图(处理组 vs 对照组叠加直方图)
- 1:1 最近邻匹配(卡钳值 = 0.02),输出匹配后协变量 SMD 表 + Love Plot
- 匹配后计算 ATT:MACE 发生率之差 + 95% CI + OR + 95% CI
- Rosenbaum 界值敏感性分析(Gamma 从 1.0 到 2.5)
- 输出三线表格式 + APA 7th 标准文字描述"
ChatSRS 将自动完成从倾向得分估计到敏感性分析的全套流程,无需手动调用 MatchIt、cobalt 等 R 包。
输出结果怎么读
输出 1: 匹配前基线特征 + SMD
表 1 匹配前两组患者基线特征(N = 1280)
变量 处理组(n=420) 对照组(n=860) SMD
年龄(岁) 62.4 +/- 9.2 58.1 +/- 10.6 0.43
性别(男,%) 57.4% 51.2% 0.12
BMI(kg/m^2) 26.8 +/- 3.7 25.9 +/- 3.9 0.24
基线收缩压(mmHg) 152.3 +/- 18.4 143.8 +/- 16.2 0.48
合并糖尿病(%) 38.3% 24.7% 0.30
吸烟(%) 32.4% 29.8% 0.06
慢性肾病(%) 22.1% 15.3% 0.18
既往心血管病史(%) 28.6% 18.4% 0.26
注:SMD = 标准化均值差;|SMD| >= 0.10 提示不平衡。匹配前年龄(SMD = 0.43)、
基线收缩压(SMD = 0.48)、糖尿病(SMD = 0.30)等多项协变量存在显著不均衡。
解读:匹配前处理组与对照组在年龄、收缩压、糖尿病、既往心血管病史等多项协变量上 SMD > 0.10,直接比较结局存在严重选择偏差,须先进行 PSM。
输出 2: 倾向得分分布与重叠检验
倾向得分估计(Logistic 回归):
各协变量均进入回归方程
倾向得分范围:处理组 [0.18, 0.89],对照组 [0.05, 0.76]
共同支撑区域(Common Support):[0.18, 0.76]
因倾向得分超出共同支撑范围而剔除的处理组观测:12 名
倾向得分分布重叠(匹配前):
处理组 M = 0.52(SD = 0.18),对照组 M = 0.31(SD = 0.16)
[图:处理组与对照组倾向得分叠加直方图,两组分布有充足重叠,满足重叠假设]
为什么要检验重叠(Overlap):PSM 基于可忽略性假设(Ignorability)——在协变量 X 条件下处理与潜在结局独立。这要求两组倾向得分有充足重叠;若处理组存在对照组中找不到相似匹配的个体,强行匹配会引入外推误差。卡钳值(Caliper) 正是用来限制匹配距离、丢弃无法找到相似对照的处理组成员(本例剔除 12 名),以保证匹配质量。
输出 3: 匹配后平衡性检验 + Love Plot
表 2 1:1 最近邻匹配后协变量平衡性(卡钳值 = 0.02,n_matched = 408 对,共 816 人)
变量 匹配后处理组(n=408) 匹配后对照组(n=408) SMD_匹配前 SMD_匹配后
年龄(岁) 62.1 +/- 9.0 61.8 +/- 9.3 0.43 0.03
性别(男,%) 57.1% 56.4% 0.12 0.01
BMI(kg/m^2) 26.7 +/- 3.6 26.5 +/- 3.8 0.24 0.05
基线收缩压(mmHg) 151.8 +/- 18.1 150.9 +/- 17.6 0.48 0.05
合并糖尿病(%) 37.7% 36.8% 0.30 0.02
吸烟(%) 32.1% 31.6% 0.06 0.01
慢性肾病(%) 21.8% 22.3% 0.18 0.01
既往心血管病史(%) 28.2% 27.9% 0.26 0.01
注:匹配后所有协变量 |SMD| < 0.10,协变量达到良好平衡。
Love Plot 见附图,匹配后所有点均落入 |SMD| < 0.10 虚线以内。
Love Plot 解读:Love Plot 是展示匹配前后 SMD 变化的标准可视化工具。每个协变量一行,横轴为 SMD 绝对值,分别绘制匹配前(实心点)和匹配后(空心点/三角形)的 SMD,并标注 0.10 阈值线。匹配后所有点落入阈值线以内,表明匹配成功消除了协变量不均衡。
输出 4: ATT 估计——处理效应
表 3 PSM 匹配后 ATT 估计(n = 816,即 408 对匹配)
结局变量:2 年内主要心血管事件(MACE)
处理组(新方案) 对照组(标准方案)
MACE 发生率 12.5%(51/408) 19.6%(80/408)
风险差(RD): -7.1 个百分点(95% CI [-11.8, -2.4],p = .004)
OR(匹配后): 0.59(95% CI [0.40, 0.87],p = .008)
注:OR 由条件 Logistic 回归(matched pair 为条件)估计;RD 来自 matched proportions 比较。
OR < 1 表示新方案降低 MACE 发生优势;95% CI 不含 1,统计显著。
为什么报告 OR 而非 RR:在 PSM 匹配后的分析中,若使用条件 Logistic 回归,自然输出的是OR(优势比),而非相对危险度 RR。当结局发生率 < 10% 时 OR ≈ RR;本例发生率约 12–20%,OR 将略微高估 RR 的绝对值,报告时须注明。若需 RR,可改用泊松回归或对数二项式回归(ChatSRS 支持指定输出 RR)。切勿将 OR 直接当 RR 解读,这是观察性研究论文中最常见的统计错误之一。
HR vs OR vs RR 口诀:
- OR(优势比):Logistic 回归;横断面或病例对照设计;或 PSM 匹配后条件 Logistic
- RR(相对危险度):队列研究直接比较发生率;泊松回归
- HR(风险比):生存分析 Cox 回归;带时间维度的随访数据 三者的分母含义不同,不可混用。
输出 5: Rosenbaum 界值敏感性分析
表 4 Rosenbaum 界值敏感性分析(Wilcoxon 符号秩检验)
Gamma(隐含混杂强度) p 值下界(最不利情形) 结论
1.00(无未观测混杂) 0.003 显著
1.20 0.008 显著
1.40 0.026 显著
1.60 0.068 不显著
1.80 0.141 不显著
2.00 0.241 不显著
2.50 0.512 不显著
Gamma 界值(p = .05 临界点):约 1.52
注:Gamma 表示未观测混杂变量使处理概率之比改变的最大倍数。
Gamma = 1.52 意味着:若存在某未观测混杂变量使处理概率比改变最多 1.52 倍,结论仍显著;
若混杂强度超过 1.52 倍,结论可能不显著(p > .05)。
如何解读 Rosenbaum 敏感性分析:PSM 只能控制已观测的混杂变量;如果存在未测量的隐含混杂(hidden bias),ATT 估计仍可能有偏。Rosenbaum 界值(Gamma)量化了结论对未观测混杂的抵抗能力。Gamma 越大,说明结论越稳健:
- Gamma = 1:完全无未观测混杂(理想情形)
- Gamma = 1.52(本例):即使某个未观测因素使处理概率比扩大至 1.52 倍,结论依然显著
- 通常 Gamma > 1.5 被视为中等稳健性,Gamma > 2.0 为高稳健性
本例 Gamma ≈ 1.52,提示结论对中等程度的隐含混杂敏感,报告时应说明此局限性。
论文里怎么报告(APA 7th 格式)
APA 7th 对 PSM 报告暂无独立准则,但 Austin(2011)、Stuart(2010)及各大医学期刊编辑指南的共识要求如下:
方法节(完整模板)
为控制处理组与对照组之间的基线协变量不均衡,采用倾向得分匹配(Propensity Score Matching, PSM)估计新型联合降压方案对主要心血管事件(MACE)的处理效应。倾向得分通过 Logistic 回归估计,以处理分配(新方案 vs 标准方案)为因变量,以年龄、性别、BMI、基线收缩压、糖尿病、吸烟、慢性肾病及既往心血管病史为协变量。采用 1:1 最近邻匹配,卡钳值设为 0.02(约倾向得分 SD 的 0.1 倍)。协变量平衡性通过标准化均值差(SMD)评价,|SMD| < 0.10 视为平衡良好(Austin, 2011)。主要效应估计量为处理组的平均处理效应(ATT),采用条件 Logistic 回归估计优势比(OR)及其 95% 置信区间。采用 Rosenbaum 界值法检验结论对未观测混杂的敏感性。统计分析使用 R 4.4(MatchIt 包、cobalt 包、rbounds 包)实施,检验水准 alpha = .05(双尾)。
结果节(模板,含 PSM 诊断与效应估计)
协变量平衡:匹配前,两组在多项基线协变量上存在显著差异,其中年龄(SMD = 0.43)和基线收缩压(SMD = 0.48)的标准化均值差超过 0.10 的可接受阈值(详见表 1)。经 1:1 最近邻匹配后,获得 408 对匹配(共 816 名患者),所有协变量的 SMD 均降至 0.10 以下(最大 SMD = 0.05),Love Plot 显示匹配后协变量均衡(见图 1)。12 名处理组患者因超出共同支撑范围而被排除。
处理效应(ATT):匹配后样本中,新型联合降压方案组的 2 年 MACE 发生率为 12.5%,标准方案组为 19.6%,绝对风险差为 -7.1 个百分点(95% CI [-11.8, -2.4],p = .004)。条件 Logistic 回归结果显示,新方案显著降低 MACE 发生优势,OR = 0.59(95% CI [0.40, 0.87],p = .008)。
敏感性分析:Rosenbaum 界值敏感性分析表明,当 Gamma = 1.52 时 p 值达到 .05 临界,提示若存在使处理概率比改变超过 1.52 倍的未观测混杂因素,统计结论可能不成立。考虑到 PSM 仅能控制已观测协变量,本研究结果在中等程度隐含偏倚下具有一定稳健性,但解释因果结论时仍需审慎。
APA 报告格式对照表
| 报告要素 | APA 格式示例 |
|---|---|
| 匹配后样本量 | n = 816(408 对匹配) |
| 协变量平衡指标 | SMD = 0.05(匹配后最大值) |
| ATT 风险差 | RD = -7.1 pp, 95% CI [-11.8, -2.4] |
| OR + 95% CI | OR = 0.59, 95% CI [0.40, 0.87] |
| p 值 | p = .008(小数点前不写 0) |
| Rosenbaum Gamma | Gamma = 1.52 |
| 软件引用 | R 4.4; MatchIt 4.x(Ho et al., 2011) |
APA 7th 提醒:OR 的 95% CI 用方括号 [ ];p 值小于 0 的小数不写 0(p = .008,非 p = 0.008);首次出现时写出方法全称并标注缩写。
常见问题 FAQ
Q1:PSM 和回归调整(ANCOVA)有什么区别,什么时候用 PSM?
A:两者都是控制混杂的方法,但机制不同。回归调整(含 ANCOVA) 通过在结局回归模型中加入协变量来控制混杂,依赖"结局模型正确设定";PSM 通过构造"处理模型(倾向得分)"来创造均衡的对照组,依赖"倾向得分模型正确设定",且结论对结局模型设定不敏感。PSM 的优势在于:(1) 匹配后的处理效应估计对结局模型依赖更小;(2) Love Plot 等工具可直接诊断协变量平衡性,研究者能直观判断数据质量,而非全凭模型假设;(3) 更接近 RCT 的设计逻辑,审稿人接受度高。当协变量数量多且与结局关系复杂时,PSM 是更稳健的选择。
Q2:1:1 匹配好还是 1:2/1:3 匹配好?卡钳值怎么选?
A:1:N 匹配(每个处理组个体匹配多个对照)可以增大样本量,提高检验功效,但代价是允许匹配距离更大,可能降低协变量平衡质量。一般原则:对照组样本量充足时优先 1:1 匹配(平衡最好);对照组稀少时可考虑 1:2 或 1:3,但需严格检验匹配后 SMD。卡钳值方面,Austin(2011)建议使用 0.02 × 倾向得分的标准差 作为卡钳值(即 caliper = 0.02 * SD(e(X))),这是目前应用最广泛的默认设置。卡钳值过大会允许质量差的匹配,卡钳值过小会剔除过多处理组成员降低样本代表性,在 ChatSRS 中可指定"自动计算最优卡钳值"。
Q3:PSM 匹配后还需要再做回归调整吗?
A:是的,这被称为双重稳健(Doubly Robust) 或匹配后调整(Matching with Regression Adjustment) 策略:在 PSM 匹配后的样本上,对结局继续做含协变量的条件 Logistic/线性回归。这样做的好处是:即使倾向得分模型有轻微设定误差,残余的协变量不均衡可被结局模型进一步吸收,使 ATT 估计更稳健。实践中尤其推荐在 SMD 匹配后仍有少数协变量处于 0.05–0.10 之间时追加回归调整,在 ChatSRS 指令中加一句"匹配后再做条件 Logistic 回归调整剩余协变量"即可。
Q4:Rosenbaum Gamma = 1.52,这个结果怎么向审稿人解释?
A:Gamma 界值没有公认的"足够大"阈值,解释需结合研究领域和未观测混杂的合理范围。实践参考:
- Gamma < 1.3:提示结论对隐含偏倚较敏感,需列举可能的未观测混杂并充分讨论局限性
- Gamma 1.3–2.0(本例 1.52 在此范围):中等稳健性,在大多数观察性研究中是可接受的结果,报告时说明"若未观测混杂使处理概率比改变不超过 1.52 倍则结论稳健"
- Gamma > 2.0:较高稳健性,结论对未观测混杂不敏感
审稿人关注的核心是:你是否做了这个检验,以及是否诚实地讨论了局限性。Rosenbaum 分析本身就是诚信研究的标志。
Q5:PSM 只能处理二元处理变量吗?如果处理变量有 3 个水平怎么办?
A:标准 PSM 针对二元处理(接受 vs 未接受)。若处理变量有多个水平(如低剂量/中剂量/高剂量),需使用广义倾向得分(Generalized Propensity Score, GPS),通过多项 Logistic 回归估计每个处理水平的概率,再进行加权或匹配。ChatSRS 支持指定"多水平处理的广义倾向得分分析",适用于剂量–效应研究或多处理臂的政策评估。若处理变量是连续型(如用药剂量),则应使用广义倾向得分 + 逆概率加权(IPW)方法。
小结
倾向得分匹配(PSM)是观察性研究中控制选择偏差、估计因果效应的标准工具,正确实施需要把握五个关键环节:
- 倾向得分估计:Logistic 回归,所有已知混杂变量均须纳入;检验重叠/共同支撑
- 匹配策略:1:1 最近邻 + 合理卡钳值(0.02 × SD 为默认);有放回 vs 无放回视样本量决定
- 平衡性检验:用 SMD 而非 t/chi-squared p 值;|SMD| < 0.10 为合格;Love Plot 可视化
- ATT 估计:条件 Logistic 回归输出 OR(区分 OR/RR/HR,不可混用);风险差报告绝对效应
- 敏感性分析:Rosenbaum 界值是 PSM 论文的必要组成部分,报告 Gamma 并解读稳健性
chatsrs.com 的 SPSS + R + Stata 三引擎均支持 PSM 全流程,一句自然语言指令即可获得从倾向得分分布到 Love Plot、ATT 表格到 Rosenbaum Gamma 的完整输出,并自动生成符合 APA 7th 的中文报告句式。
相关阅读
- 二元 Logistic 回归用 AI 完成 — OR 值、ROC、APA 报告全攻略
- 生存分析用 AI 完成 — Kaplan-Meier + Cox 回归
- 协方差分析(ANCOVA)用 AI 完成 — 控制协变量后的组间比较
- 中介效应分析用 AI 完成 — 间接效应与 Bootstrap 置信区间
本文首发于 ChatSRS 官方博客。如有问题或反馈,欢迎在 ChatSRS 站内 [用户中心 -> 帮助与反馈] 联系我们。