倾向性评分匹配法(Propensity Score Matching,PSM)是临床观察性研究中经常使用的一种控制混杂偏移的技巧。其出现的背景是:需要控制的混杂变量很多,采用分层法控制偏移会导致样本量严重缩水,因而采用一种替代的可以近似控制混杂因素的方法。
混杂因素
混杂因素(即混杂变量,confounding variables)的定义和条件如下(摘自百度百科):
混杂因素是指与研究因素和研究疾病均有关,若在比较的人群组中分布不匀,可以歪曲(掩盖或夸大)因素与疾病之间真正联系的因素。
- 必须是所研究疾病的独立危险因子;
- 必须与研究因素(暴露因素)有关;
- 一定不是研究因素与研究疾病因果链上的中间变量。
举个理想情况的例子(例1):
混杂因素()与暴露因素(
)之间存在的对应关系为:
这些因素与研究结局之间的对应关系为:
从建模的角度来看,在真实世界数据集中, 与
(或
、
)之间存在相关性(不是互相独立),此时无论直接多变量建模(多因素分析),还是单变量建模(不控制混杂直接分析),得到的系数估计值都是不准确的。如果想得到准确的系数估计值,需要从真实数据集中选取一个数据子集,使得
与
(或
、
)之间不存在相关性(互相独立)[ 因为只需要得到
的准确系数估计值,因此不关心各个混杂因素之间是否存在相关性 ],此时可以采用分层匹配法(有多少混杂因素就逐级分多少层)构造这样的数据子集。得到这样的数据子集后,无论单变量建模还是多变量建模,得到的系数估计值都是准确的。
举个简单的例子(例2):假如暴露因素是“是否患癌症”,研究结局是“是否长寿”,假定混杂因素仅仅只有“是否经常熬夜”(仅仅存在“是否经常熬夜”这个因素能同时影响“是否患癌症”和“是否长寿”)。那么真实世界的数据集中,“癌症组”中的熬夜人数往往偏多,对于结论“癌症不容易长寿”是需要质疑的,因为有可能是因为“癌症组”中熬夜人数很多,导致寿命偏短。此时,采用分层匹配法,选择性丢掉“癌症组”中一些熬夜病例,使得两组中“经常熬夜”的人数平衡,再在这个数据子集中进行分析,则可以得到可靠的结论。
倾向性评分匹配法
当混杂因素很多时,采用分层匹配法控制偏移会导致样本量严重缩水,此时有人推荐使用倾向性评分匹配法(PSM)。
倾向性评分匹配法的基本思想和步骤如下(摘自:医咖会 这4种倾向性分析方法你值得了解):
倾向性评分是指在一定协变量条件下,一个观察对象接受某种暴露/处理因素的可能性,它是一个从0到1的范围内连续分布的概率值。
其基本原理是将多个混杂因素的影响用一个综合的倾向性评分来表示,从而降低了协变量的纬度,减少了自变量的个数,有效的克服了分层分析和多因素调整分析中要求自变量个数不能太多的短板。
那么在进行倾向性分析之前,第一步就是要计算出每个研究对象的倾向性评分。倾向性评分的估计是以暴露/处理因素作为因变量Y(0或1),其他混杂因素作为自变量X,通过建立一个回归模型来估计每个研究对象接受暴露/处理因素的可能性,最为常用的是logistic回归模型。
用logistic回归模型估计倾向性评分,操作简单容易实现,可以直接得到倾向性评分分值,结果也易于理解。倾向性评分越接近于1,说明患者接受某种暴露/处理因素的可能性更高,越接近于0,说明患者不接受任何暴露/处理因素的可能性更大。
能够建立 logistic回归模型的基础是:真实世界数据中,暴露因素与混杂因素之间存在相关性(因为具有因果关系)。那么倾向性评分的含义也就明确了。
在这个倾向性评分的基础上进行匹配,则可消除一些数据中的相关性(如例1中 与
之间的相关性),注意不是消除逻辑上的相关性(逻辑上的相关性是固有存在的,无法消除)。这同时也部分消除了暴露因素与各个混杂因素之间的相关性(数据中的相关性)。从而使得建模时暴露因素的系数估计值更为准确。
对于倾向性评分的理解,其实也可以类比分层匹配法。如例1中,将 这个整体当作唯一的一个混杂变量(也就是倾向性评分的分值),将问题转化为例2的情况,采用分层匹配法选择数据子集,从而控制偏移。
另外,注意两种情况。第一种情况是,确实是真实混杂因素但在该数据中表现为“非混杂因素”(失去了与暴露因素之间的相关性),这种因素在建立 Logistic 回归时,其系数为0,实际PSM时其实是没有考虑这个变量的,并且这个变量也是不需要考虑的(因为这个数据中这个变量已经平衡了)。第二种情况是,假的混杂因素(与暴露因素之间没有真实的逻辑关联而与研究结局有逻辑关联,但在数据上偶然出现了关联),此时进行PSM是有用的,能够消除这种假混杂因素。
此外,对于与结局变量不存在关联的变量,属于无关变量,PSM中纳入这些变量并没有实质性的作用,只会导致样本量无辜减少,因此尽量不要把无关变量当作混杂因素。
倾向性评分法的漏洞
从上一节的分析可以看出,PSM只能部分消除(或者说减弱)暴露因素与各个混杂因素之间的相关性,往往不能做到完全消除相关性。比如例1中, 与
可能仍然存在相关性,此时建模所得到的暴露因素的系数估计值仍然是不够准确的。当然,如果混杂因素对研究结局的影响模式与对暴露因素的影响模式类似 [ 如例1中,结局变量与所有混杂因素之间存在的关系可以表示为
],则也可以得到比较准确的系数估计值。但是类似的影响模式并不总是存在。
举个极端的例子(例3):暴露因素“是否患癌症” 与两个混杂因素(“是否经常熬夜”
、“是否经常接触放射源”
)之间的关系为:
(系数相等),研究结局“是否长寿”
与前面3个因素的之间的关系为
。对于某个真实世界数据,通过PSM法得到的数据子集可以如下所示:
癌症组 | 对照组 | |
是否经常熬夜 | ||
是 | 20 | 80 |
否 | 80 | 20 |
是否经常接触放射源 | ||
是 | 80 | 20 |
否 | 20 | 80 |
注:由于倾向性评分中,熬夜与接触放射源导致的癌症发生的概率相等(因为预设关系中系数相等),因此可能产生表中所示的情况。
在这个数据子集的基础上进行分析,从预设关系知,接触放射源对寿命的影响很大(系数为6),那么这个数据集仍然是存在严重偏移的(因为癌症组中接触放射源的人数很多)。产生这种情况的原因在于:在关于研究结局的模型中(如是否长寿),混杂因素的系数关系发生了较大的变化(如1:1变成了1:6)。
其实,这种情况下,即使进行多因素分析,得到的暴露因素的系数估计也是不够准确的(因为暴露因素与某些混杂变量之间仍然存在相关性)。最可靠的仍然是分层分析法。当然,真实数据进行倾向性匹配时,出现例3的这种情况比较少见(例3中“是否经常熬夜”与“是否患癌症”在数据子集中呈现严重的负相关,在真实数据中构建数据子集时并不会那么轻易掉入这种陷阱)。因此PSM法在大多数情况下仍然表现不错。
另外,在分层分析时,有时候会发现某些分层中,会出现不一致的情况(层内亚组不一致,存在交互作用),这种情况下其实是不应当轻易合并各个亚组的结果(即使多因素分析也是不准确的,需要添加交互项),倾向性评分是无法处理这种情况的。
基于这种漏洞,在倾向性匹配评分后,需要重新检验基线是否平衡!如果仍然不平衡(如例3),便是倾向性评分的难点所在了。此时可以仅针对未达到平衡的混杂因素进行再次倾向性评分(或者针对未达到平衡的混杂因素进行分层匹配)。
总而言之,我们的目的应该是使得两组基线达到平衡,而PSM可以帮助我们在一定程度上达到这个目的,并且可以保证样本量缩水不那么严重。或者说,PSM很巧妙地实现了“分层匹配法无法构建的基线平衡的数据子集”,但是PSM法有时候会失效(如例3),因此PSM之后需要检验是否达到了平衡,若没达到则需进一步优化。
上述这种漏洞是笔者自己思考的观点,如有纰漏,烦请指出。
倾向性匹配评分除了这种漏洞,还有一些其他缺点,可以参考:
IPTW法
逆概率加权处理法(IPTW)是基于倾向性评分构造的一种处理混杂的近似方法。IPTW的思想与PSM很像。我们知道PSM是对样本量做减法,使得相同PS的人群,在两组之间保持样本量的近似相等;而IPTW则是对样本量做加法,使得相同PS的人群在两组中的样本量都近似等于“原始数据中该PS评分人群的两组样本量之和”。IPTW的思想有点像将各组人数对齐到标化人群,为了达到对齐的目的,就对每个样本都赋予一个权重 (使得该样本相当于
个样本)。
那么如何达到这个目的呢,这个权重 应该如何计算呢?
我们回顾一下 PS 分值的意义:对于分值为 的人群,其进入暴露组的概率为
,进入对照组的概率为
。
[ 注意,对于暴露组的全体(样本量为N)而言,并不意味着分值为 的人数为
]
假如分值为 的人数为
,则分值为
的暴露组人数为
,分值为
的对照组人数为
。此时令暴露组的各个样本的权重为
,则暴露组的虚拟样本量为
。同理,令对照组的权重为
,对照组的虚拟样本量也变成了
。从而,两组的虚拟样本量达到而来平衡。
IPTW的好处在于,充分利用了所有的样本,对于样本量不够大的研究而言是很不错的方法。但是,凡事有利有弊。IPTW是一种上采样的方法,如果权重大的样本本身携带的偏移较大,则会引入更大的偏移(该偏移效应将成倍扩大)。
有人对各种控制偏移的方法进行过比较,IPTW有时候的表现会惊人地夸张,这其实应该是在意料之类的。
各种控制偏移方法的比较,见论文:Tobias Kurth, et al. Results of Multivariable Logistic Regression, Propensity Matching, Propensity Adjustment, and Propensity-based Weighting under Conditions of Nonuniform Effect. American Journal of Epidemiology. 2006
关于IPTW方法,详见论文:James Robins, et al. Marginal Structural Models and Causal Inference in Epidemiology. Epidemiology. 2000 (本人对IPTW的理解,也是源于读该论文的示例)
另外,与IPTW法类似的还有一种方法叫SMR法(标准化死亡比),其参照人群样本量是暴露组的样本量也就是说,将对照组的样本量乘上一个权重,使得对照组的虚拟样本量等于暴露组的样本量 [形式上就是将上述的公式进行简单变形:暴露组的权重为1,对照组的权重为 ] 。
PS校正分析法和PS分层分析法
PS校正分析法,就是将PS评分作为协变量,与研究变量一起放入多因素模型,以此对结果进行校正,思路很简单。
PS分层分析法,就是将得到的PS评分划分成几个层(一般可以用十分位数法划分为10层,具体根据样本量和可操作性而定),在各个层内进行分析,最终将各层的结果进行汇总。
多组分析
以上的情况都是假定只有两组:实验组和对照组。但有时候需要对比3组甚至更多组,如何对多组的混杂因素进行平衡化呢?下面以3组的情况为例进行讲解。
若直接使用PSM法,显然不够现实,因为每个样本得到的PS值有3个(分别代表进入3组的概率大小)。但我们注意到,IPTW法中,每个样本的权重 仅与其进入实际分组的概率有关(权重为其实际进入的那组的概率的倒数,也就是逆概率)。
对于分值为 的人群(样本量为
),其进入第1组的概率为
,进入第2组的概率为
,进入第3组的概率为
,则3组的样本量分别为:
、
、
。[ 注:
]
我们仍然构造权重 ,使得各组的虚拟样本量为
。从而,使得各组的虚拟样本量达到平衡。
关于多组分析,详见论文:Daniel F. McCaffrey, et al. A Tutorial on Propensity Score Estimation for Multiple Treatments Using Generalized Boosted Models. Stat Med. 2013
思考:
1、条件Logistic回归与上述方法的联系及区别?
2、病例对照研究的OR与Logistic回归的OR有什么联系及区别?
此外,关于混杂因素的分层与多因素校正法,可以参考“医咖会”的一些文章: