样条回归的列线图

关于临床预测模型的基础知识,小编之前已经写过非常详细的教程,包括了临床预测模型的定义、常用评价方法、列线图、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) 

plot of chunk unnamed-chunk-2

这样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)

plot of chunk unnamed-chunk-4

这就是COX回归RCS的列线图,关于一些参数的意义和细节的美化,可以参考前面的推文,这里就不多说了。

是不是很简单?

因为是演示数据,所以画出来的图不是很美观,但是实现方法就是这么简单!

大家如果有问题可加入我们的免费千人QQ群讨论,我会把你们的问题写成推文推送。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值