上一篇我们讲了为什么相关性不能用于结算——因为选择偏倚让简单对比无法区分"干预有效"和"健康的人更倾向参与"。PSM 是解决这个问题的核心方法。

但很多人读到 PSM 的理论介绍后,第一个问题是:这个方法在真实的预防医疗场景里到底怎么跑?数据从哪来?需要多少样本?结果长什么样?

本文就回答这些问题。我们不讲公式推导,只讲工程落地。

PSM 在预防医疗中处于哪个位置

先建立一个整体感。在 ReHealth Core 的四步闭环中,PSM 处于第三步——归因。

01
预测
风险评分,识别高危人群
02
干预
个性化方案,记录轨迹
03
归因(PSM)
消除偏倚,量化因果效应
04
结算
标准化证据报告

PSM 的输入是干预记录和随访数据,输出是可被支付方接受的因果效应估计。它不能独立运行——没有第一步的基线风险评分,倾向评分模型缺少关键协变量;没有第二步的干预轨迹记录,干预分配变量无从构建。

关键认知:PSM 不是一个独立的分析工具,而是一条数据流水线的核心环节。数据质量在第一步和第二步就已经决定了 PSM 的上限。垃圾进,垃圾出——这在 PSM 里比在大多数方法里更致命。

PSM 需要哪些数据

在预防医疗场景中,PSM 需要三类数据,缺一不可:

第一类:基线特征变量(协变量)

这是倾向评分模型的输入。协变量的选择原则是:纳入所有同时影响"干预分配"和"健康结局"的变量。在心脑血管预防场景中,通常包括:

变量类型具体变量重要性
人口学年龄、性别必须
体格指标BMI、腰围必须
代谢指标收缩压、舒张压、空腹血糖、总胆固醇、LDL-C必须
行为习惯吸烟史、饮酒习惯、体力活动水平必须
病史家族史、既往心血管事件、用药史必须
基线风险评分ReHealth Core 风险模型输出值强烈推荐
社会经济医疗可及性代理变量可选

一个常见的错误是纳入"中间变量"——即干预影响的变量(如干预后的血压值)。这会破坏因果路径,产生严重偏差。所有协变量必须在干预开始之前测量。

第二类:干预分配记录

记录每位患者是否接受了干预(T=1 或 T=0),以及干预开始的时间点。时间点至关重要:基线数据必须在干预开始前采集,随访数据必须在干预开始后收集。时间窗定义模糊是 PSM 分析中最常见的数据质量问题。

第三类:结局指标

健康结果的测量,需要在干预后的标准化随访窗口内完成。建议主要结局(如心血管风险评分变化)和次要结局(如血压、血脂、住院率)分开报告,避免多重比较问题。

PSM 的执行:逐步拆解

步骤一:拟合倾向评分模型

用逻辑回归对所有协变量建模,预测每个人接受干预的概率——这就是倾向评分(Propensity Score,PS)。

# 倾向评分模型 PS = P(T=1 | 年龄, 性别, BMI, 收缩压, LDL, 吸烟史, 基线风险评分, ...) # 使用逻辑回归估计 logit(PS) = β₀ + β₁·年龄 + β₂·BMI + β₃·收缩压 + ... # 检查重叠性:干预组和对照组的PS分布是否有充分重叠? plot(density(PS_treated), density(PS_control)) # 必须做

重叠性检验是被很多人忽略的关键步骤。如果干预组和对照组的倾向评分分布完全不重叠,意味着两组特征差异过大,PSM 无法有效匹配,结论不可信。

步骤二:执行匹配

最常用的方案是 1:1 最近邻匹配加卡钳(caliper)。卡钳通常设为倾向评分标准差的 0.2 倍——过宽会纳入差异过大的配对,过窄会导致大量样本无法匹配。

# 1:1 最近邻匹配(有放回 vs 无放回,根据对照组规模选择) matched_pairs = nearest_neighbor_match(PS_treated, PS_control, caliper = 0.2 * sd(PS)) # 匹配率检查 match_rate = len(matched_treated) / len(all_treated) # 目标:匹配率 > 80%,否则对照组候选池需要扩大

步骤三:匹配质量评估(最关键的一步)

匹配完成后,必须检验所有协变量的标准化均值差(SMD)是否从匹配前降至合格水平。这一步不能跳过,也不能只检验部分变量。

❌ 匹配前 SMD
年龄0.31
BMI0.24
收缩压0.19
吸烟史0.28
基线风险0.35
✅ 匹配后 SMD
年龄0.04
BMI0.06
收缩压0.05
吸烟史0.07
基线风险0.03

所有关键协变量的匹配后 SMD 均 < 0.1,说明两组在这些变量上已充分均衡,可以进行效应估计。

步骤四:估计 ATT 及置信区间

在配对样本上计算干预组和匹配对照组的结局差异,得到 ATT(处理组平均处理效应)。使用 Bootstrap 重采样(建议 1000 次以上)计算置信区间,评估估计稳定性。

# ATT 估计 ATT = mean(Y_treated - Y_matched_control) # Bootstrap 置信区间(1000次重采样) CI_95 = bootstrap(ATT, n_iterations=1000, confidence=0.95) # 示例输出 ATT = -0.087 # 心血管风险评分下降 CI_95 = [-0.112, -0.062] p_value = 0.0003 # 统计显著

质量控制检查清单

一个合格的预防医疗 PSM 分析,在提交给支付方之前应通过以下检查:

所有协变量在干预前测量,无中间变量混入
干预组和对照组的倾向评分分布存在充分重叠
匹配后所有关键协变量 SMD < 0.1
匹配率 > 80%,未匹配样本有说明
ATT 附 95% 置信区间和 Bootstrap 标准误
主要结局和次要结局分开报告
!
敏感性分析(不同匹配方法结论是否一致)
局限性声明:未观测混杂、随访时长、外推范围
数据来源和质量评估说明

PSM 输出报告长什么样

对支付方来说,PSM 分析的价值在于最终报告的可读性和可验证性。一份合格报告的核心结构:

可结算证据报告核心要素:干预描述 → 样本基线对比(匹配前后 SMD 表)→ 匹配质量说明 → ATT + 置信区间 → 次要结局 → 数据来源声明 → 适用范围与局限性 → 方法论参考文献

格式上,ReHealth Core 同时输出 PDF 版(供人工审阅)和结构化 JSON(供系统对接),方便保险公司和医院将证据直接导入其内部系统。

样本量:多少才够

PSM 没有硬性的最低样本量要求,但实践中有几个参考原则:

干预组建议至少 100 人,以保证足够的统计功效(power ≥ 0.8,效应量 d = 0.3 的情况下)。对照组候选池建议是干预组的 3-5 倍,以确保有足够的匹配对象,维持高匹配率。样本量越大,ATT 估计越稳定,置信区间越窄,对支付方的说服力越强。

小样本的处理方式:如果单一机构样本量不足,可以通过联邦 PSM 跨机构合并分析——每个机构独立计算本地倾向评分和匹配结果,聚合后生成多中心因果证据。这是在医疗数据合规约束下扩大样本量的唯一可行方案。

三个最常见的 PSM 应用错误

错误一:跳过重叠性检验

如果干预组和对照组的倾向评分分布不重叠,PSM 会强行配对特征差异极大的样本,产生虚假的匹配质量。必须在匹配前绘制两组的倾向评分密度图,确认重叠区域充分。

错误二:只报告 p 值,不报告效应量

统计显著性(p < 0.05)告诉你效果"存在",但 ATT 的绝对值和置信区间才告诉你效果"有多大"。支付方更关心效应量——一个统计显著但效应量极小的结果,无法支撑结算决策。

错误三:用匹配后样本做亚组分析

PSM 匹配后的样本不适合做预先设定以外的亚组分析,因为亚组层面的匹配质量未经验证,可能存在严重不均衡。如果确需亚组分析,需要在亚组内重新执行 PSM。

核心结论

PSM 不是一行代码,而是一条需要严格质量控制的数据流水线。从数据接入、协变量选择、重叠性检验、匹配执行、SMD 评估,到 ATT 估计和报告生成,每一步都有明确的质量标准。能通过完整质量检查清单的 PSM 报告,才是可以拿去找支付方谈结算的证据。

常见问题

PSM在预防医疗中需要哪些数据输入?

需要三类:①干预前的基线特征变量(年龄、性别、BMI、血压、血脂、吸烟史等),用于计算倾向评分;②干预分配记录(谁参与了干预,何时开始);③随访结局指标(风险评分变化、住院率、医疗费用等)。所有基线变量必须在干预开始前采集。

匹配后SMD多少才算合格?

SMD < 0.1 通常被认为匹配质量良好。如果关键协变量匹配后 SMD 仍 > 0.2,建议扩大对照组候选池或调整倾向评分模型。ReHealth Core 要求所有关键协变量匹配后 SMD 均 < 0.1,否则报告中发出预警。

PSM结果报告应该包含哪些内容?

合格报告应包含:倾向评分模型说明、匹配前后 SMD 对比表、匹配率说明、ATT 及 95% 置信区间、次要结局指标、敏感性分析、局限性声明(未观测混杂、随访时长、外推范围)。