筆者曾在之前的一系列文章,介紹風險預測模型(risk prediction model)使用 area under the curve(AUC)的限制(https://reurl.cc/GkX1Vy),以及應該如何評估預測模型的表現(https://reurl.cc/RdON4x、https://reurl.cc/GkX1rZ、https://reurl.cc/W4qnLL),進而介紹預測模型的新指標-IDI 與 NRI(https://reurl.cc/M7Xedk、https://reurl.cc/qDZE8N),本系列文章則以 R 軟體進行操作示範。
一、安裝軟體及套件,並匯入資料
首先讀者可先自行安裝最新版 R 軟體(https://cran.r-project.org/bin/windows/base/),並且安裝操作介面較為友善的免費版 R studio(https://rstudio.com/products/rstudio/download/)。接著在 R studio 右下角的『Install』點擊一下,並陸續安裝以下套件(package):『rms』、『Hmisc』、『PredictABEL』以及『pROC』。
安裝上述套件後,先以『Library ()』指令進行呼叫,如下步驟:
接著開啟範例資料集『data』,操作步驟如下。
R studio 畫面右上角的『Data』區塊會出現一個新的資料集,就叫 Data,總共 305 筆觀察值以及 31 個變項。若點擊畫面右方的小圖式,則會在左上方區塊預覽該資料集。
下列表格是本研究的主要變項,除此之外還有一些基本資料及共變量,例如Age、Male、DM(糖尿病)、SBP(收縮壓)等。
接下來要先使用『rms』這個套件的功能,使用 rms 套件時必須要先指定『attach』的動作,以及事先製作『datadist』的變項清單,如果這邊沒有宣告某個變項,後面在執行分析時會通知資料集中沒有這個變項。
二、使用「rms」得到R2 and AUC
接著則開始執行 logistic regression,『lrm』的意思就是 logistic regression model;左方的『fit1』是我們執行的這個羅吉斯迴歸物件;我們先以在院結果變項(y)急性腎損傷作為範例(AKI: 1=yes, 0=no);y 右邊的波浪線『~』代表數學方程式的『=』,後面則是共變數(自變項或解釋變項);「x=TRUE」跟「y=TRUE」則是後續執行 Calibration 跟 Validation 時必須下的指令,在此時先保留即可。
先執行兩個模式,第一個是「Established model」,亦即已經被建立的風險模型,主要是 SOFA score(ICU 加護病房的重要預後指標)以及其他共變量(age, sex, 糖尿病以及收縮壓),命名為「fit1」;第二個模式則是加入主要預測變項「Proteinuria」,命名為「fit2」。
報表下半部是迴歸係數、標準誤差、Wald test以及顯著性,若要轉換為 odds ratio 要自行到 EXCEL 用 exponential 函數轉換。
畫面右上角的『Discrimination indexes』裡頭的『R2』是Nagelkerke R-squared;畫面右上角的『Rank Discrim. Indexes』裡頭的『C』就是曲線下面積(AUC),代表整個模式對於 AKI 的區別力。
不過 rms 套件對於 logistic regression model 的 C-index 沒有提供信賴區間的估計,這部分會在下一部分使用『pROC』套件比較 AUCs 時會介紹到。
而關於其他指標,例如「g」、「gp」、「Brier」在後續提到 validation 時會再介紹。
三、比較兩個模型:LR test or comparing two AUCs
接著繼續以「rms」套件的 Likelihood ratio test(LR test)檢定這兩個巢套模型(nested model)的差異,也可視為『Proteinuria』的另外一種顯著性考驗。
可見到『Proteinuria』的 LR test 顯著性是0.01849,而上述 Wald test顯著性是 0.0193。當樣本數越大的時候,通常這兩個檢定的結果就越接近。
留言列表