列線圖簡介
列線圖( Diagram)也被稱作諾莫圖(Nomgram),是一種圖形化展示臨床預測模型的手段。在醫學研究和臨床實踐中,研究者往往采用Cox回歸、回歸等模型建立多因素回歸模型對某些問題進行預測。根據各個影響因素對預測結果的影響(各個影響因素在回歸模型中對應的系數),每個影響因素都能夠得到對應的帶有刻度值的線段對其取值進行賦分,這些線段以及表示所有因素得分總分和預測事件發生概率值映射關系的線段便構成了列線圖。
列線圖繪制
在列線圖的繪制過程中,需要使用到rms和兩個包,其中rms包用于提供回歸模型,包用于提供數據。如果你在之前沒有安裝過這兩個包,需要在RStudio的控制臺(console)中分別輸入:
install.("rms")
install.("")
繪制列線圖的代碼如下:
library(rms)
library(survival)
# 方便引用cancer中的數據,在attch(cancer)之后可以通過age代替cancer$age
attach(cancer)
# lrm 表示調用logistics回歸函數,構建多因素回歸模型
# ~左邊也就是status表示因變量
# ~右邊表示自變量,自變量之間通過+連接
mod = lrm(status~age+sex+ph.ecog+ph.karno+pat.karno+meal.cal+wt.loss)
# 指定各變量在列線圖上的名稱,這里只更改了age和sex
label(age) = "年齡"
label(sex) = "性別"
# 按照nomogram()函數的需求打包數據
dd <- datadist(cancer)
options(datadist = 'dd')
# 生成列線圖
nom <- nomogram(mod,
lp=T,
lp.at = seq(-3,4,by=0.5),
fun=function(x) 1/(1+exp(-x)),
funlabel = 'Predicted probability',
fun.at = c(0.05,seq(0.1,0.9,by=0.1),0.95))
# 顯示列線圖
plot(nom)
包中提供了一個有關肺癌患者生存率的數據集,數據集包括以下10個字段:
字段
含義
inst
time
status
=,2=dead
age
sex
Male=1Female=2
ph.ecog
n.0=,1=,2=inbed50%nd,4=
ph.karno
score(bad=0-good=100)
pat.karno
t
meal.cal
als
wt.loss
onths
在本文中,使用status作為因變量,使用age、sex、ph.ecog、ph.karno、pat.karno、meal.cal以及wt.loss作為自變量,最終得到的列線圖如下所示:
上述代碼在實際使用中為了使用自己的數據,可以使用xlsx包從excel文件加載數據。