東南大學公共衛生學院流行病與衛生統計系(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]。
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值以及變量的均衡性,可視化程度高。