正文

cox回归列线图(nomogram)制作详细教程 -凯发k8国际首页登录

  列线图是一种直观有效地展示cox回归结果的一种方法。最有价值的是进行结局的预测,同时可以通过直线的长度来表示不同变量对结局的影响,以及变量的不同取值对结局的影响。正如下图中所示。

  举例来说,一个男性胰腺癌患者,年龄是40岁,术中进行放疗,肿瘤位置再胰脏头部,胰胆管浸润为ch0,有腹膜转移,tnm分期在iv期。 根据上述条件,判断每个变量的得分,年龄40岁,points得分是10分,男性points得分是4分,依次累计各个变量的得分,得到total points,然后就有对应3月、6月和1年的生存概率。复杂的模型公式变成了直观的图片,不仅仅医生可以看懂,病人家属也可以进行估测了。同时,可以看到术中有术中放疗和无术中放料其得分相差特别大,35分蹦到了80分。

  # 请先安装好各个相关包再运行代码

  # install.packages("vim")

  library(foreign) # 读取格式数据

  library(survival)

  library(rms)

  library(vim) # 包中aggr()函数,判断数据缺失情况

  if (!require("vim")) {

  install.packages("vim", repos="https://cran.rstudio.com/")

  library("vim")

  }

  par(family = "stxihei") # 指定绘制图片中的字体

  # 数据来自张文彤《高级教程》

  url <- 'http://online.hyconresearch.com:4096/20/20advdata.zip'

  # 书中数据下载地址

  file <- basename(url)

  # 获取文件名 20advdata.zip

  if (!file.exists(file)) download.file(url, file)

  # 判断工作目录下是否有20advdata.zip文件,如果不存在则执行下载数据命令

  unzip(file) # 解压缩zip文件

  pancer <- read.('part4/pancer.sav') # 读取文件

  pancer <- as.data.frame(pancer)

  # cox回归所需数据类型为数据框格式,将其转换为数据框格式

  aggr(pancer,prop=t,numbers=t)

  # 判断pancer各个变量的数据缺失情况,出现红色即有缺失,绘制列线图不允许缺失值存在

  pancer$censor <- ifelse(pancer$censor=='死亡',1,0)

  # cox回归结局变量需为数值变量

  pancer$gender <- as.factor(ifelse(pancer$sex=='男',"male","female"))

  # 更改变量名称以及变量取值

  pancer$gendr <- relevel(pancer$gender,ref='female') # 设置参考组

  dd<-datadist(pancer)

  options(datadist='dd')

  coxm <- cph(surv(time,censor==1)~age gender trt bui ch p stage,x=t,y=t,data=pancer,surv=t)

  # 建立cox回归方程

  surv <- survival(coxm) # 建立生存函数

  surv1 <- function(x)surv(1*3,lp=x)

  surv2 <- function(x)surv(1*6,lp=x)

  surv3 <- function(x)surv(1*12,lp=x)

  plot(nomogram(coxm,fun=list(surv1,surv2,surv3),lp= f,funlabel=c('3-month survival','6-month survival','12-month survival'),maxscale=100,fun.at=c('0.9','0.85','0.80','0.70','0.6','0.5','0.4','0.3','0.2','0.1')),xfrac=.45)

  maxscale 参数指定最高分数,一般设置为100或者10分

  fun.at 设置生存率的刻度

  xfrac 设置数值轴与最左边标签的距离,可以调节下数值观察下图片变化情况

  列线图绘制常见问题

  1. 如何筛选变量?

  答: 与多变量变量筛选方法一样。列线图绘制纳入的变量即为coxm方程中的变量。

  2. 如何更改图中变量名以及的变量值的名称,比如“sex”的"男"和"女"。

  答: 列线图中出现的名称,即变量名和变量值名称,修改变量名和变量值名即可修改列线图中的名称。

  3. 如何更改多分类变量的参考组

  答:参考 pancer$gendr <- relevel(pancer$gender,ref='female')

来源:临床流行病学和循证医学 朱雷 赵一鸣
爱科学

上一篇:关于clinical trials临床研究预注册和补注册

下一篇:多中心研究的知情同意书可以改吗?

登录注册
欢迎内容投稿或举报!e-mail: ikx@ikx.cn
凯发天生赢家一触即发官网 copyright © 爱科学 iikx.com "));
网站地图