跳到主要内容
临床统计方法速查站
方法分类

倾向评分方法 Propensity Score Methods (PS)

用治疗分配的条件概率进行匹配、分层或加权,以改善观察性研究中已测量基线协变量的组间平衡。

统计原理

对基线协变量向量 XX,倾向评分定义为接受目标治疗的条件概率:

e(X)=P(T=1X).e(X)=P(T=1\mid X).

Rosenbaum 与 Rubin 的核心结果是:在正确的可识别条件下,给定倾向评分后,治疗分配与用于评分的基线协变量可以达到平衡。于是可在相近 e(X)e(X) 的受试者之间匹配,或用评分构造分层/权重,使治疗组与对照组在已测量且进入设计的治疗前协变量上更可比。

但倾向评分本身不是结局模型,也不会制造随机化。把匹配后的组间差解释为因果效应,还需要至少:一致性/SUTVA、条件交换性(无未测量混杂)、positivity/overlap,以及正确的时间零点、治疗和结局定义。平衡诊断应看协变量的 standardized mean difference(SMD)与分布,而不是看倾向评分模型的 c-statistic 或协变量 p 值。

随附程序按 REGION=TREATED 做 1:1、无放回、logit 倾向评分最近邻匹配,因此目标更接近 ATT:已接受 Drug A 人群中的平均治疗效应。匹配后以每个 _MatchID 内的结局差估计配对平均差。

匹配或加权改善协变量平衡

倾向评分把多维基线协变量压缩为接受治疗的概率;处理后仍须检查标准化差异。

原始方法与实现依据:Rosenbaum & Rubin (1983), The central role of the propensity score in observational studies for causal effectsSAS PROC PSMATCH 15.1 官方文档

什么时候用

非随机对照研究或真实世界数据中,治疗选择受基线预后因素影响,需要在结局分析前设计可比队列并明确 ATT/ATE 等 estimand 时,使用倾向评分匹配、加权或分层。它最适合处理“谁更可能接受治疗”带来的已测量基线混杂

SAP 里长这样:

Propensity scores for receipt of Drug A will be estimated using a prespecified logistic regression model containing treatment-preceding covariates. One-to-one greedy nearest-neighbor matching without replacement will be performed on the logit of the propensity score using a prespecified caliper. Covariate balance will be assessed using standardized mean differences. The estimand is the average treatment effect in the treated population.

看到 propensity score / PSM / IPTW / common support / caliper / standardized mean difference / ATT,即可定位到本页。随机对照试验的主要分析通常不需要用倾向评分“恢复”随机化;若有未测量混杂,PS 也不能自动消除。

适用条件速查卡

条件
时间顺序协变量在治疗开始前测量;不得放入受治疗影响的中介或未来信息
混杂集依据因果图、临床知识和数据生成过程预先选取,不按单变量 p 值筛选
Positivity各关键协变量组合下两种治疗均有可能发生,并检查 common support
评分模型允许必要的非线性和交互;重点是平衡而非预测准确率
Estimand明确 ATT、ATE 或 overlap population,方法与权重/匹配规则一致
平衡验收匹配/加权后复核 SMD、分布和极端权重;阈值只是诊断规则,不是因果证明
结局分析使用匹配集/权重并采用与设计相符的方差估计,保留 outcome-free 设计边界
未测量混杂做定量偏倚或负对照等敏感性分析;不能用“已平衡”替代该限制

核心 SAS 代码

proc import datafile="example.csv"
            out=rwe_raw
            dbms=csv replace;
  guessingrows=max;
run;

ods graphics on;
proc psmatch data=rwe_raw region=treated;
  class trt male comorb;
  psmodel trt(treated='DrugA')=age male base_score comorb;
  match distance=lps method=greedy(k=1) caliper=1.00
        weight=none;
  assess lps var=(age male base_score comorb)
         / stddev=pooled(allobs=no) plots=none;
  output out(obs=match)=ps_matched lps=_Lps matchid=_MatchID;
run;
ods graphics off;

proc sort data=ps_matched;
  by _MatchID trt;
run;

proc transpose data=ps_matched
               out=matched_pairs(drop=_Name_)
               prefix=outcome_;
  by _MatchID;
  id trt;
  var outcome;
run;

data matched_pairs;
  set matched_pairs;
  if nmiss(outcome_DrugA, outcome_Control)=0;
  pair_difference=outcome_DrugA - outcome_Control;
run;

proc means data=matched_pairs n mean std stderr clm maxdec=2;
  var pair_difference;
run;
  • PSMODEL 的左侧值 'DrugA' 定义目标治疗,右侧只能放治疗前协变量。
  • DISTANCE=LPS 在 logit propensity score 尺度上匹配;CALIPER=1.00 按该尺度的 pooled SD 约束本教学数据的可接受距离。该宽阈值只为保证小型模拟数据形成完整配对;正式研究通常应评估更严格的预设阈值及其样本损失/平衡权衡。
  • METHOD=GREEDY(K=1) 是 1:1 最近邻匹配。贪婪匹配依赖处理顺序;正式方案需固定 seed/排序、是否放回及匹配比例。
  • WEIGHT=NONE 使本 1:1 匹配集每人权重为 1;OUTPUT ... MATCHID= 留下成对关系。
  • ASSESS 同时比较匹配前后协变量平衡。结局分析只能在设计验收后进行,不能为获得有利结局反复改 PS 模型。
  • 配对差的均值适合本例连续结局和一对一完整匹配;二分类或时间-事件结局需使用与 estimand、匹配相关性和删失结构一致的模型与方差估计。

变量解释表

变量含义典型来源
USUBJID受试者唯一标识RWE 分析队列
TRTDrugAControl;目标治疗为 DrugA治疗暴露定义
AGE / MALE治疗前人口学协变量索引日前记录
BASE_SCORE治疗前疾病严重度基线窗口内测量
COMORB治疗前合并症指标历史诊断窗口
OUTCOME随访期连续结局;本例越大越好预设随访窗口
_PS_ / _Lps估计倾向评分及其 logitPROC PSMATCH 输出
_MatchID一对一匹配集编号PROC PSMATCH 输出
_MATCHWGT_匹配权重;本例一对一且 WEIGHT=NONE 时为 1PROC PSMATCH 输出
PAIR_DIFFERENCE同一匹配集内 DrugA - Control 结局差结局分析派生

输出对照

随附程序已在 SAS 9.4 TS1M8 / SAS/STAT 15.3 上完成语法和运行验证。本页只给字段定位,不把原创模拟队列的效应数值包装成真实世界证据。

SAS 输出编号对应报告 / QC
Propensity Score Model Information目标治疗、模型协变量和 support region
Matching Information / Matched Sets匹配方法、caliper、匹配对数及未匹配人数
Standardized Mean Differences / All observations匹配前协变量不平衡
Standardized Mean Differences / Matched observations匹配后 SMD 与平衡验收
PS_MATCHED / _PS_, _MatchID, _MATCHWGT_受试者级可追溯匹配清单
PROC MEANS / PAIR_DIFFERENCE Mean本例 ATT 导向的配对平均差
同表 CLM配对平均差的 t 型置信区间;正式推断按 SAP 方差方法

先验收 ②–④,再读取 ⑥–⑦。若匹配后仍有实质性不平衡、样本大量丢失或 overlap 不足,应报告设计失败/目标人群改变,而不是直接给“校正后因果效应”。

示例数据与程序

  • example.csv — 20 名 Drug A 与 30 名 Control 的原创模拟观察性队列,含治疗前协变量和连续结局
  • example.sas — 倾向评分估计、1:1 greedy matching、平衡诊断、匹配清单和配对结局分析完整程序

常见坑

常见坑

  • 纳入治疗后变量:中介、随访依从性或未来实验室值会引入偏倚;PS 模型只使用时间零点之前的信息。
  • 按 p 值挑混杂因素:是否混杂取决于因果结构与临床知识,不取决于样本中的显著性。
  • 追求高 c-statistic:PS 是平衡工具;预测治疗越准甚至可能意味着 overlap 越差。验收重点是协变量平衡与支持域。
  • 只看平均 PS 平衡:两组评分相近不保证每个协变量平衡,必须逐项看 SMD 与分布。
  • 混淆 ATT 与 ATE:匹配、裁剪与权重定义会改变目标人群;报告效应必须和 estimand 一致。
  • 忽略匹配相关性:把匹配后的记录当完全独立样本会给出错误标准误;本例通过配对差保留一对一结构。
  • 宣称消除了所有混杂:PS 只能平衡已测量且正确建模的协变量,未测量混杂仍需敏感性分析与限制说明。
  • 看到结局后反复调匹配:设计阶段应对 outcome 保持盲态,避免为有利结果选择 caliper 或模型。

相关方法

  • Logistic 回归 对二分类应答概率建模,校正基线和中心等协变量,并输出治疗组调整后 OR、95% CI 与 p 值。