[SAS]傾向分數配對(Propensity score matching)

by wenwu
0 comment

[SAS]傾向分數配對(Propensity score matching)

在做研究時,我們目標通常是比較實驗組和對照組,想知道兩者的差別或比較兩者的存活表現。
但是為了降低研究的偏差,我們希望兩組的差異不會影響我們的實驗結果,所以可以用傾向分數配對(propensity score matching)對干擾因子做適當的配對,使其影響降到最低。傾向分數配對能夠有效讓兩組的共變項更為均勻,使所有干擾因子都能控制的差不多。

今天就簡單介紹傾向分數配對(propensity score matching),以及如何在SAS上應用


向分數配對(Propensity score matching)的特色

傾向分數主要目的是讓治療組與非治療組在干擾變項(X)的分布大致相同。干擾變項,即治療與否受到哪些變數影響。通常會考慮常見的干擾因子,像是年齡、性別、共病症等等,可將這些視為解釋變項。

  1. 傾向分數分析的目的 : 降低混淆效果
  2. 主要有四種應用方法: 1. 配對,2.加權,3.分層,4.統計控制
  3. 傾向分數配對(propensity score matching): 經由將傾向分數相近的治療組與控制組配對起來,營造類似隨機試驗的環境(不包含未測量到的混淆因子)
  • 優點:
  1. 相較於分層分析與統計控制,PSM更能有效使兩組的共變項更均勻
  2. 很直覺的提供像隨機試驗那樣的報告。i.e.透明化呈現兩組的基本特性在表格中。
  • 劣勢: 
    由於PSM會剔除相當人數的治療組與許多控制組(一般控制組人數較多)
    會導致
  1. 由於損失許多人數的控制組,無法將結果推論到整個群體
  2. 由於人數下降,因此統計檢定力(Power)下降。i.e.會得到較不顯著之結果
  • 考慮、技術細節:
  1. 配對演算法的設定(optinal,greedy nearest neighbor matching)
  2. 是否容許配對後的置換
  3. 將資料排序予以隨機化

SAS example

接下來要進入SAS的實作。
首先,需要使用SAS提供的macro: %OneToManyMTCH,下載之後macro在附錄,可以直接複製貼上使用
檔案裡有很詳細的介紹,包含配對前後的卡方值比較等等….

而這個PSM是base on Logistic regression的,使用logistic regression可以幫我們依據每一位病人的變項,計算每一個病人的機率值(P)
使用logistic regression,可以幫我們得到P值,%OneToManyMTCH會依據這些P值,幫我們做傾向分數配對

所以在跑logistic regression,可以挑選需要配對的變項。比如: 我們希望下面五個變項使用配對,就必須寫在logistic regression上面(age_gp comorbidity_gp grade_gp diag_yr stage),而surgery就是我們的實驗組和對照組(01資料),下面的程式最重要的就是這一行

output out=P prob=prob;

在logistic regression上面加這一句,就會幫你計算每一個病人的機率值(Prob),並且存在 P

[SAS]Logistic regression 羅吉斯迴歸 複習

proc logistic data=X;
class
AGE_GP(param=ref ref='1.< 40')
COMORBIDITY_GP (param=ref ref='3.>=2')
GRADE_GP(param=ref ref='3 and 4')
DIAG_YR(param=ref ref='2004')
STAGE(param=ref ref='3')
;
model Surgery(event='1')=
AGE
COMORBIDITY_GP
GRADE_GP
DIAG_YR
STAGE
;                                             
output out=P prob=prob;
run;

可以發現跟平常跑的logistic regression 不太一樣,在work.P 可以發現每一位病人都有P值

最後跑%OneToManyMTCH的macro
第一個work是P檔案的位置
第二個P就是經過logistic regression後所計算的P值
第三個Surgery就是我們的實驗組和對照組(01資料)
第四個ID是病人的ID,幫助程式識別
第五個MM1,就是最後分類完要存檔的位置
第六個1,是設定要1:N的傾向分數配對,這裡設定是1:1,可以自己選擇

%OneToManyMTCH(work,P,Surgery, ID, MM1,1);

最後在MM1 就能看到程式所幫你挑好的新實驗組和對照組了

照理來說,經過傾向分數配對之後,兩個組別應該就不會有顯著性差異了,大家可以做一下卡方檢定檢查。當然也可以挑選需要控制的變數於logistic regression,這幾個變項在配對前有顯著性差異,在配對後就不太會有這個問題了

Related Articles

發表迴響