关于临床预测模型的基础知识,小编之前已经写过非常详细的教程,包括了临床预测模型的定义、常用评价方法、列线图、ROC曲线、IDI、NRI、校准曲线、决策曲线等。
全都是免费获取的代码和数据:R语言临床预测模型合集
以上合集包括了临床预测模型绝大多数的内容,内容肯定比得上一个几千块的培训班!用以上教程完成一篇SCI绝对不是问题!
之前关于列线图写了3篇推文,详细介绍了二分类资料和生存资料的列线图绘制:
今天的这篇推文来自群友提问,RCS(限制性立方样条)的列线图怎么画?
其实很简单,直接用rms
包即可搞定。
下面分别演示logistic和COX的RCS的列线图绘制。
建立logistic模型
library(rms)
# 逻辑回归数据
getHdata(titanic3)
# 使用rms前先把数据打包
dd <- datadist(titanic3); options(datadist='dd')
# 逻辑回归的立方样条
f <- lrm(survived ~ rcs(sqrt(age),5) + sex, data=titanic3)
f
## Frequencies of Missing Values Due to Each Variable
## survived age sex
## 0 263 0
##
## Logistic Regression Model
##
## lrm(formula = survived ~ rcs(sqrt(age), 5) + sex, data = titanic3)
##
##
## Model Likelihood Discrimination Rank Discrim.
## Ratio Test Indexes Indexes
## Obs 1046 LR chi2 328.06 R2 0.363 C 0.794
## 0 619 d.f. 5 R2(5,1046)0.266 Dxy 0.587
## 1 427 Pr(> chi2) <0.0001 R2(5,758.1)0.347 gamma 0.593
## max |deriv| 2e-07 Brier 0.168 tau-a 0.284
##
## Coef S.E. Wald Z Pr(>|Z|)
## Intercept 3.0936 0.5428 5.70 <0.0001
## age -0.6383 0.1771 -3.60 0.0003
## age' 1.5544 0.6527 2.38 0.0172
## age'' -12.1583 8.8925 -1.37 0.1715
## age''' 15.8326 16.9397 0.93 0.3500
## sex=male -2.4944 0.1549 -16.10 <0.0001
##
画列线图
下面直接画图即可,没有任何难度,因为rms
这个包把一切都给你做好了,不用自己操心,如果你做临床预测模型,是不可能绕开这个包的。
nom <- nomogram(f, fun=plogis,
lp=T,
funlabel="Risk of Death")
plot(nom)
这样RCS的列线图就画好了,关于一些参数的意义和细节的美化,可以参考前面的推文,这里就不多说了。
既然logistic回归没问题,那COX回归自然也是没问题的!
COX回归RCS的列线图
dd <- datadist(lung)
options(datadist = "dd")
构建cox比例风险模型:
coxfit <- cph(Surv(time, status) ~ rcs(sqrt(age),5) + sex,
data = lung, x=T,y=T,surv = T
)
# 构建生存函数,注意你的最大生存时间
surv <- Survival(coxfit)
surv1 <- function(x) surv(365,x) # 1年OS
surv2 <- function(x) surv(365*2,x) # 2年OS
nom <- nomogram(coxfit,
fun = list(surv1,surv2),
lp = T,
funlabel = c('1-year survival Probability',
'2-year survival Probability')
)
plot(nom)
这就是COX回归RCS的列线图,关于一些参数的意义和细节的美化,可以参考前面的推文,这里就不多说了。
是不是很简单?
因为是演示数据,所以画出来的图不是很美观,但是实现方法就是这么简单!
大家如果有问题可加入我们的免费千人QQ群讨论,我会把你们的问题写成推文推送。