分享

倾向性得分匹配(PSM)

 Memo_Cleon 2020-05-21

倾向值(Propensity Score,倾向性得分)分析近些年来火的一塌糊涂,PubMed自由词搜索Propensity Score,相关文章近些年大有井喷之势(图标数据截止2020.05.21)。

但严格来说,倾向性得分算不得一种“分析”方法,而是一种用于数据处理的方式,常用于观察性研究混杂因素的控制。比如你想研究施加某种干预对结局指标是否有改善,数据来自回顾性的既有资料的收集,由于是观察性研究,大概率存在混杂因素在组间不均衡的问题(如基线不平),这个时候你就可以考虑倾向性得分分析了。

PS就是以干预因素(组别)为因变量,以所有观测到的非研究性因素为自变量进行logistic或probit回归,在给定的协变量条件下,个体接受干预因素处理的概率。根据PS,我们就可以对试验组和对照组进行筛选,使得不同组的非研究性因素实现均衡,从而达到控制的目的。倾向性得分本身并不能控制混杂,而是通过PS匹配、加权、分层或进入回归模型直接调整混杂等方式,不同程度地提高对比组间的均衡性,从而削弱或平衡协变量对效应估计的影响,达到“类随机化”的效果,又称为事后随机化。简单理解,就是从大量的样本数据中将具有共同特征的干预组和对照组样本挑选出来,然后对这些符合要求的样本进行分析。

倾向性得分可以同时调整大量的混杂因素,省时间省钱,但是需要的样本量较大,只能均衡已观测的指标变量,而且可能会以丢失样本为代价。大部分软件给出的是两水平的干预因素的倾向性得分,SPSS直接给出了1:1的倾向性得分匹配结果。

数据来自STATA16的自带数据,是一项关于孕期妇女吸烟对新生儿体重的影响的观察性研究,由Cattaneo (2010)报道。调查数据涉及众多变量包括新生儿出生体重(bweight)外,还有孕母的婚姻状况(mmarried)、孕期是否饮酒(alcohol)、年龄(mage)、教育水平(medu)、是否吸烟(mbsmoke)、母亲是否白人(mrace)、是否首胎(fbaby)、首次产前检查是否在头三个月内(prenatal1)以及父亲的年龄(fage)、是否白人(frace)等众多变量。

在原数据中可分析的变量还有很多,我们仅以这几个来演示倾向性得分的分析操作。
【0】分析并评估

经检验发现吸烟和非吸烟组的数据均呈非正态(数据非正态分布,宜用中位值[25%分位数,75%分位数]表示),如果直接采用两独立样本非参数检验,结果如下:

但同时我们也发现,很多的混杂因素在吸烟和非吸烟组中也具有统计学意义,这样以来我们就不能明确出生体重在吸烟和非吸烟组的不同是由于吸烟这个因素造成的还是由于其他的混杂因素造成的。

注:①我不知道老外的这个教育水平是怎么个意思,本例按连续变量处理;②经检验年龄和教育水平均呈非正态分布;③正态性和方差齐性检验、均值、标准差、中位值、百分位数都可以通过explore过程获得(Analyze>> Descriptive Statistics >> Explore…);非参数检验:Analyze >> Nonparametric Tests>> Independent Samples…;分类资料统计及卡方分析:Analyze >> Descriptive Statistics >> Crosstables…

倾向性得分匹配可以隆重登场啦!
【1】倾向性得分匹配

Data→Propensity Score Matching…

Group Indicator(组指示变量):选入需要考察的干预因素,本例为mbsmoke

Predictors(预测变量):选入需要匹配的变量,本例有mmarried,alcohol,mage,medu,mrace,fbaby,prenatal1,fage,frace
Name for Propensity Variable(倾向性变量名称):新建一个变量,值为倾向性得分,不能与已有的变量名称相同。本例命名为PS
Match Tolerance(匹配容差):即卡钳值(caliper),本例首先设为0.03。两个个体的PS差值在事先设定的某范围(卡钳值,本例为0.03)内才能进行匹配,最合适的卡钳值是取两组倾向指数标准差的20%,或者取两组间PS绝对差值(卡钳值)为0.02或0.03等。很明显卡钳值越大,能够匹配成功的个体越多,匹配集就越大,但是组间的均衡性可能会越差;卡钳值越小,虽然可提高对比组间的均衡性,但匹配成功率可能降低,匹配集的样本量减少;
Case ID(个案标识):确定观测对象的ID,本例选择id
Match ID Variable Name(匹配标识变量名称):用于储存匹配后结果,不能与已有的变量名称相同。本例命名为matchid
Output Dataset Name(输出数据集的名称):建立一个匹配后的数据集,不能与当前的数据表名称称相同,本例psm
Options(选项)
  • Variable for Number of Eligible Cases(复合条件的变量个数):新建变量,表示在对照组中有多少个观测对象满足匹配条件。本例命名为EC

  • Give priority to exact matches(优先精确匹配):优先考虑精确匹配;

  • Maximize execution performance(最优化执行操作):综合考虑精确匹配和基于设定的卡钳值范围内模糊匹配;

  • Randomize case order when drawing matches(提取匹配个案时随机化个案顺序):如有多个观测对象满足匹配条件,采取随机原则进行选择。因为是随机,所以重复操作时结果可能会不一致,为保证匹配过程的可重复性,可在Random Number Seed设定一个随机数种子。

【2】结果及解读:

(1)二分类logistic回归模型:首先给出的是以吸烟(1=吸烟者;0=不吸烟者)为因变量、以需要校正的变量为自变量构建二分类logistic回归结果,采用的是enter方法,二分类logistic回归可参加《因变量二分类资料的logistic回归》。后续每个研究对象的PS值就是根据该回归模型得出的。

(2)倾向性匹配结果:结果会生成一个新的数据表,表格名称为psm。同时给出匹配统计量和匹配容差的统计描述。
  • 匹配统计量:精确匹配0对,模糊匹配846对,共计匹配成功846对,同时有18个个案未能找到有效匹配人群。

  • 匹配容差:精确匹配(PS完全一致)匹配了376371次,基本上无匹配成功个案;在精确匹配后的PS的模糊匹配(PS±0.03,本例卡钳值为0.03),匹配376371次,大约0.225%匹配成功。

【3】从匹配后的数据框中筛选匹配成功的数据

Data>>Select Cases…

选择matchid不为0的个案

【4】匹配后数据分析

经检验发现母亲教育水平(Z=-3.163,P=0.002)、是否饮酒(chi2=12.097,P=0.001)在组间仍有统计学意义,我们需要重新进行倾向性匹配,Match Tolerance(匹配容差)设为0.02时共成功匹配843对,是否饮酒在组间仍有统计学意义(chi2=3.957,P=0.047),Match Tolerance最终设为0.01时共成功匹配834对,经分析各混杂因素在组间实现均衡,结果如下表。结果表明扣除其他因素的影响,孕期吸烟对新生儿的体重的确有影响(Z=-10.408,P<0.001)。

在SPSS的Propensity Score Matching可以直接根据倾向性得分进行匹配,但并未给出匹配后数据的均衡性诊断,而且也只能对干预组和对照组进行1:1的匹配,算是一种遗憾吧。当然我们在获得倾向性得分后,除了匹配,还可以通过加权、分层或回归校正等方法来控制混杂因素的影响,未来可期,这些就来日再记吧!

2020.05.21

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多