2015年8月3日 星期一

在 SPSS 中使用 傾向分數配對 (Propensity score matching) - 1

傾向分數配對 (Propensity score matching, PSM)

觀察性研究 (observational study) 要面臨的挑戰之一就是選擇性偏差 (selection bias)。
Rosenbaumc和Rubin等人在 1983 年提出傾向分數 (Propensity score) 概念,如果妥善利用 Propensity score 配對 (Propensity score matching, PSM) 可望減少選擇性偏差,正確比較治療組與對照組療效,因此PSM常被用於台灣健保資料庫研究之中。

用IBM SPSS進行 PSM 分析

你一定會有另外辦法完成同一件事情 (There's more than one way to do it, TMTOWTDI) 是電腦世界中最可貴的地方。
統計軟體充滿了許多可能,有 MedCalc, SPSS, R, STATA, SAS 等等,各有所長。當然 PSM 也絕對不是 非得要靠 SAS 不可。這裡有篇文章總結了常見統計軟體的PSM外掛,大家可以依照自己興趣去找找。我們這篇文章最主要想談談關於SPSS外掛的眉角。


SAS 愛好者 通常使用PSM程式是Craig Roberts 和 John R. Gerlach 在2007年 SAS年會所發表的 PSmatching (論文在這裡SAS程式在這裡)。PSmatching 是一個精簡好用的程序,但以現在眼光看來,缺乏了balance checking, 也沒有辦法作 Opt-match 和 Full matching。而且,大部分使用者還是使用(R, SPSS, MedCalc)啊,為了PSM 特地去學 SAS實在不划算)


目前在 IBM SPSS 中執行 PSM 分析比較好用的有兩種外掛,我們分兩篇介紹。本篇先介紹IBM SPSS 的官方外掛 (Jon Peck extension)


  1. IBM 官方,由 IBM 工程師 (Jon Peck) 開發的PSM外掛
  2. Cornelly大學Felix Thoemmes開發外掛


IBM SPSS PSM 官方外掛 -- Jon Peck開發的PSM外掛


與SAS比較起來,SPSS以其友善介面贏得更多使用者喜好。自從SPSS被IBM併購後,更增加許多程式與擴充性。在SPSS 19版以後,即可以外掛方式在 SPSS 中使用 PSM 功能。自從 SPSS 21 版後,可以在功能表「資料」下發現「傾向分數比對」就是 (PSM)。


如果順利執行,SPSS會出現如下畫面,只要點選,就可以輕鬆執行PSM,相當方便。


安裝

如果您是 SPSS 19 版,那麼,您必須自行安裝外掛

1) 請到 IBM支援網站 下載並安裝 Python Essential,(不需要先安裝 Pyhon,如果安裝程式沒有在您的機器上偵測到可使用的Python版本就會啟動 Python 安裝程式)


2) 下載 Fuzzy.spe ,這個外掛可以讓 SPSS 具有 case-control 配對的功能

3) 下載 PSM.spe ,這個外掛可以讓 SPSS 具有 PSM 配對的功能

4) 下載上述兩個檔案,


5) 請以「系統管理員身分」啟動 SPSS (這很重要,不然會安裝失敗 !!)


6) 選擇「公用程式」> 「延伸組合」 >  「安裝本端延伸組合」




6) 接著 SPSS 會提示,選擇 剛剛下載的兩個外掛,請依次安裝  Fuzzy.spe 和  PSM.spe

 如果已經安裝過了,會跳出這樣的視窗,大膽的按下「是」覆寫。 (因為下載的版本比較新)

7) 接著,可以在 「資料」
 

看到如下新增功能:  Case Control Matching 就是 Fuzzy 外掛,而 Propensity Score Matching (PSM) 就是 PSM 外掛。您可以測試一下是否能正式執行。


SPSS 19 版以後,PSM 的功能已經內建囉

19版以後,您可以檢視一下 「資料」頁簽


應該可以發現,SPSS 已經內建如下功能表


「觀察值控制比對」即Case Control Matching (就是上述的 Fuzzy 外掛),而 「傾項分數比對」即Propensity Score Matching (PSM) (也就是 PSM 外掛)。您可以測試一下是否能正式執行。(即使是官方外掛也有可能無法執行喔 !! 請參見下面說明)


注意事項

不論您使用哪一版SPSS如果,點選 PSM 之後,出現類似下列訊息無法執行,請不要氣餒,通常代表:
1) 沒有安裝  Python Essential ---> 請回到上面,安裝 正確版本的 Python Essential
2) FUZZY 沒有安裝 ---> 請先確認 (Case-Control Matching 可以使用)
3) 設定問題


前兩個問題很簡單,可以自行解決,我們這邊要介紹的是 「3). 設定問題」。

這個問題來自於外掛程式不知道自己安裝到哪邊去了 !!

修正方法超乎意料的簡單,就是加上 環境變數SPSS_EXTENSIONS_PATH,告訴
SPSS 外掛都放在哪邊。

簡單步驟如下:
1) 「我的電腦」按右鍵 > 內容 > 環境變數 >進階系統設定

 

2) 系統變數 > 新增
「變數名稱」: SPSS_EXTENSIONS_PATH
「變數值」:C:\ProgramData\IBM\SPSS\Statistics\22\extensions
   (請注意 上述的 22 代表 SPSS 版本號碼,請自行檢視自己電腦上真實的目錄)