倾向性评分法简介及其SAS实现

2021-03-16 10:18东南大学公共卫生学院流行病与卫生统计系210009
中国卫生统计 2021年1期
关键词:倾向性语句选项

东南大学公共卫生学院流行病与卫生统计系(210009)

岳青青 焦志刚 凡 如 臧一腾 王健力 陈炳为△

随机对照试验(RCT)被视为评估治疗效果的金标准,其关注效力(efficacy)研究,但是人们的兴趣通常还是集中在评估RCT严格控制的范围之外的真实世界的效果(effectiveness),更加重视外部有效性[1]。因此,越来越多的研究者使用观察数据来评估治疗效果。在RCT中,受试者被随机分配到治疗组和对照组,从而保证了两组基线协变量的分布相同,而观察性研究并非如此,如果某些协变量同时与治疗方案和结果相关,则可能会造成混杂。此时,需要通过统计方法消除混杂的影响,常用的方法有匹配法、多元统计分析法等。近十几年来,倾向性评分(propensity score,PS)法作为一种控制混杂偏倚的方法被研究者们越来越关注,其实现的统计软件有R语言、stata、SPSS等。SAS作为统计分析中常用的软件,在SAS 9.4版本的STATA14.3及以上模块中可以实现倾向性评分,包含了匹配、分层和加权分析。本文介绍SAS中的PSMATCH过程,并通过实例说明其SAS的实现。

倾向性评分的原理简介

在临床实践中,研究者感兴趣的治疗效果主要是平均治疗效果(average treatment effect,ATE)和治疗组的平均效果(average treatment effect for the treated,ATT)。在RCT中,潜在的治疗效果和治疗分配是相互独立的,因此ATT和ATE是相等的。而在观察性研究中,并非如此,而且由于选择偏差的存在,不能直接比较两组结果来评估治疗效果。当观察性研究中的治疗分配被假定为强可忽略时,Rosenbaum和Rubin表明倾向性评分方法可以通过平衡两组间协变量的分布,达到减少观察研究中偏倚的目的。倾向值e(X)是指在给定协变量X的条件下,个体被分配至治疗组的条件概率:e(Xi)=P(Zi=1|Xi)[2],可通过logistic回归获得。

倾向性评分方法

1.倾向性评分匹配法

倾向性评分匹配是按两组研究对象中PS相近的个体进行配对。关于匹配需要考虑以下几点:(1)匹配比例,通常采用1∶1匹配;(2)是否重复匹配,通常采用无重复匹配,即一个观测只能在一个匹配层(匹配对或匹配区组)中;(3)常见的匹配算法有2种:贪婪匹配和最佳匹配[3]。匹配方法很多,卡钳值内的最近邻匹配是较为常用的方法之一,卡钳值的选取决定了匹配层的数量。Austin表明卡钳值取0.2倍的倾向值的标准偏差时,可以消除原始估计中至少98%的偏差[4]。

2.倾向性评分分层法

倾向性评分分层法是根据PS值将受试者分为不同子集,从而保证组间的可比性。Rosenbaum和Rubin表明分层数等于5时,可消除由于进入PS的协变量而导致的估计治疗效果(ATT)中90%以上的偏倚。随着样本量的增加,更多的分层可能更有利于偏倚的减少,但是要保证每层有足够多的受试者,从而保证层内效应的稳定性。在每层中,治疗效果通过直接比较两组受试者之间的结果来估计,然后选取合适的权重估计总体治疗效果。

3.倾向性评分加权法

4.倾向性评分回归调整法

倾向性回归调整法将PS值作为一个连续变量和分组变量一起作为解释变量纳入所选择的回归模型进行分析。这种方法简单易行,因此在临床应用较为广泛。然而,回归调整法对关于倾向性评分和处理效应之间的关系进行了限制性假设,当两者之间的函数关系的假设错误时,可能直接导致有偏的估计[6]。

PSMATCH过程简介

PROC PSMATCH <选项>;

CLASS 变量名;

PSMODEL 治疗指标变量 <(Treated=‘治疗组标签’)>=<模型选择变量>

MATCH <选项>;

PSWEIGHT <选项>;

STRATA <选项>;

PSDATA TREATVAR=治疗指标变量 <治疗组标签> ps 选项;

ASSESS

OUTPUT OUT <(OBS=ALL|REGION|MATCH)>=数据集名称

PROC PSMATCH语句调用PSMATCH过程步,其选项有:①DATA 指定分析的数据集;②REGION=AllOBS| CS | TREATED 指定分析的支持区域,其决定在分层和匹配中使用哪些观测值。AllOBS是将所有可获得观测都纳入支持域;CS意味着选择PS值在两组共同支持域的观测。TREATED选择PS值位于治疗组区域内的观测。

CLASS语句用于指定分类变量。主要包括在PSDATA和PSMODEL语句中用作处理指标的变量,PSMODEL语句中logistic模型中的分类协变量,在ASSESS语句的VAR 选项中指定的分类变量。

PSMODEL语句指定用于计算PS的logistic回归模型。Treated选项是指定治疗组的代码。如果是频数资料,可用WEIGHT选项加权。

MATCH语句将治疗组与对照组中的观测按照指定的方法进行匹配。MATCH语句中的选项有:①CALIPER 指定匹配的卡钳值,默认值为0.25;②DISTANCE=PS|LPS|MAH 指定距离,分别定义为ei、logitei及PS或LPS的马氏距离;③EXACT指定精确匹配的分类变量,即每个匹配层中的观测值必须具有相同的值;④METHOD=GREEDY|OPTIMAL|FULL|VARRATIO等匹配的方法,默认为OPTIMAL。主要可分成三类:(1)GREEDY,贪婪的最邻近匹配,按无重复原则从对照组中选出与治疗组的个体PS最接近的对象构成匹配对;(2)最佳匹配,一种无重复的匹配,在进行当前匹配之时,可以改变先前匹配层,以达到总体距离最小或最优。SAS选项中包括OPTIMAL(固定比率匹配)、VARRATIO(可变比率匹配)、FULL(完全匹配);(3)REPLACE,重复匹配,对照组允许被匹配到多个治疗组。

PSWEIGHT语句是进行倾向性评分加权,其对应选项:①WEIGHT=ATEWGT|ATTWGT指定观测值的权重类型,分别对应ATE、ATT的权重;②NLARGESTWGT显示具有较大权重个体的编号和权重。

STRATA语句是根据PS值将对象分为不同层。其对应选项:①NSTRATA 指定分层数目,SAS默认为5;②KEY=TOTAL|TREATED 用于指定分层的数据集,TOTAL根据PS得分将总体分成例数相近的层;TREATED根据PS得分要求每个层中治疗组的例数相近;③STRATUMWGT=TOTAL|TREATED,用于合并各层疗效的权重类型。TOTAL适合于估计ATE,使用每层中的治疗组与对照组的例数比例作为权重;TREATED用于估计ATT,用每层中处理单元的比例作为权重。

PSDATA 语句主要是针对所分析的数据集里已经包含预先计算的PS或LPS值,倾向性评分法基于此PS或LPS值进行分析。

ASSESS语句用于评估治疗组和对照组间的变量差异(包含匹配前与匹配后的差异)。语句中的选项:①ALLCOV是比较用于计算LPS或PS值的协变量(即PSMODEL中的模型选择变量)间的组间差异;②LPS和PS选项分别评估组间LPS或PS值的差异;③VAR 指定想要比较的变量,这些变量可以不在PSMODEL语句里。④PLOTS用来指定输出图形。BARCHRT为指定的分类变量绘制条形图。BOXPLOT|CDFPLOT|CLOUDPLOT分别为指定的连续变量绘出箱式图、累积分布函数图和云图;⑤STDDEV=POOLED|TREATED,指定计算标准化平均差异时使用的标准偏差类型。POOLED是使用两组观测计算合并的标准偏差,而TREATED仅使用治疗组中变量值的标准偏差。

OUTPUT语句将产生的结果输出到指定数据集。PSMATCH过程还有BY、FREQ等语句,用于分组与权重;ID语句指定标识。

实例分析

1.数据来源与SAS程序

数据来源于荷兰格罗宁根市肾脏和血管终末期疾病预防(PREVEND)的队列研究。PREVEND研究是一项前瞻性队列研究,目的是调查蛋白尿增加的自然过程及其与肾脏和心血管疾病的关系。本次抽取了第三次随访的部分数据,目的是研究他汀类药物的使用与认知功能之间的关系[7]。倾向性评分的SAS程序如下:

proc psmatch data=test region=allobs(psmin=0.05 psmax=0.95);

class Statin Gender CVD Smoking DM Hypertension;

psmodel Statin(Treated=‘1’)= Age Gender Education CVD Smoking DM Hypertension BMI Ethnicity;

match distance=ps method=greedy(k=1)exact=(Gender CVD Smoking DM Hypertension)caliper=0.2 weight=none;

assess ps var=(Age Gender BMI)/stddev=pooled(allobs=no)stdbinvar=yes plots=(boxplot(display=(BMI))barchart(display=(Gender))cloudplot(display=(Age)));

output out(obs=match)=result matchid=_MatchID;

run;

2.结果

数据共包括4073名受试者,其中治疗组(服用他汀类药物)有900例,对照组(未服用他汀类药物)3173例。计算PS值时纳入了9项基线特征:年龄、性别、教育程度、心脏病史、吸烟史、糖尿病史、高血压史、BMI以及种族。选用贪婪匹配,将卡钳值设为0.2进行匹配,最终成功匹配673对受试者。

ASSESS语句生成了表1和指定的图形,汇总所有观测、支持域中观测和匹配观测的组间指定变量分布的差异。从表1可以看到,考虑删除PS得分在0.05以下或0.95以上的支持域中的数据结果与原始数据相比结果,BMI变量及性别变量的差异仅仅减少了10%以上,组间倾向值的标准差值为1.088,方差比大于3,说明两组的基线分布差异较大。经过匹配后,不论是PS得分还是年龄、BMI、性别变量的标准差值都在0.2以内,倾向值百分比减少在98%以上,方差比接近于1,这表明两组的协变量达到了很好的均衡。

表1 两组部分变量的标准化均值差值(治疗-对照)

图1是对表1的可视化结果,匹配后指定的三个变量及PS得分组间的差值都落在SAS默认的±0.25的标准差内。对于性别,绘制了比例条图(图2),可以看到在原始观测中,治疗组男性所占比例更大,经过匹配后两组性别比例一致。图3是BMI变量的箱式图,在匹配前,对照组的BMI相对于治疗组来说整体偏低,匹配后,两组BMI的P25、P50、P75基本相同,表明两组间的BMI分布均衡。年龄的云图(图4)表明匹配后组间年龄变量的分布更趋向于一致。

图1 部分变量的标准化差异图

图2 性别变量的比例条形图

图3 BMI变量的箱式图

图4 年龄变量的云图

最后,为了研究他汀类药物的使用与认知功能之间的关系,利用t检验对主要指标Ruff图形流畅度测试(RFFT)的结果进行两组间比较。匹配前两组RFFT得分的均值差及其95%CI为13.06(11.18,14.94),匹配后结果显示两组RFFT得分均值差及其95%CI为-0.47(-2.99,2.05),差异没有统计学意义(t=-0.36,P=0.7159),即表明他汀类药物的使用不会影响认知功能。同时,将以上协变量作为协变量,构建协方差模型,得到最小二乘估计下两组间的差值及其95%CI为-0.76(-2.50,0.99),与匹配后分析的结果一致。

讨 论

倾向性评分分析并不能弥补组间缺乏可比性,而是一个统计过程,它创建相同的倾向指数,其包含所有分析的混杂因素。选择所有相关协变量来计算PS值至关重要,在回顾性观察研究中,通常很难获得关于相关混杂因素所有信息,如果在分析过程中只考虑与暴露有关而非与结局有关的变量通常会降低处理效应估计的精度,增加P值和置信区间的宽度;只考虑与结局有关但与暴露无关的变量会增加处理效应估计的精度但不会增加偏差,因此应谨慎应用和解释倾向性评分[8-9]。

倾向性评分的四种方法在一定程度上都能消除两组间的差异,但研究中针对何种资料适合选择哪种PS以减少偏倚,尚无标准。最近的模拟研究表明,对于生存资料匹配法和IPTW法都允许在最小偏差的情况下估计边际风险比,而分层法和协变量调整法会导致对边际风险比和条件风险比的有偏估计[10-11]。但是,Markus使用了来自4项大型心血管观察研究的数据集来比较传统的协变量调整法和PS的效果,却发现PS在实际数据中表现不佳:当存在大量混杂时,IPTW导致了治疗效果的不精确估计,协变量调整法和匹配表现出很大的优势[12]。因此PS不一定优于传统方法,在实践中应根据具体的数据情况选择最合适的方法。

目前,实现PS的软件有很多,R的“Matchit”与 Stata 的“psmatch2” 程序包都可以实现匹配,SPSS软件也可以实现1:1匹配[13]。SAS的PROC PSMATCH过程实现PS的程序简明易懂,不仅提供了多种算法实现倾向性评分匹配,而且可以简单快捷地实现加权及分层,并将结果输出到指定数据集以便进行后续分析。此外,SAS提供了详尽直观的表格和理想的绘图以供用户检验匹配、加权、分层以后PS值以及变量的均衡性,可视化程度高。

猜你喜欢
倾向性语句选项
基于模糊数学法的阿舍勒铜矿深部岩体岩爆倾向性预测
重点:语句衔接
跟踪导练(四)
阅读理解
跟踪导练(5)
单项填空精选练习100道
关于医患冲突报道的倾向性分析——以“湘潭产妇死亡案”为例
“没准儿”“不一定”“不见得”和“说不定”的语义倾向性和主观性差异
一种面向博客群的主题倾向性分析模型
如何搞定语句衔接题