基于Cox回归的列线图:
与Logistic回归的列线图一致,首先便是数据的读取与整理过程。
1.引用R包:
library(rms)
library(foreign)
library(survival)
2.读取文件:
setwd("C:Users 00Desktop 9_Nomogram") #设置工作目录
rt2 <- read.table("Cox.txt",header=T,sep=" ") #读取数据
head(rt2) #查看数据集rt2
3.设置变量参数:
rt2$gender <- factor(rt2$gender,labels=c("F", "M"))
rt2$stage <- factor(rt2$stage,labels=c("Stage1", "Stage2", "Stage3", "Stage4"))
rt2$T <- factor(rt2$T,labels=c("T1", "T2", "T3", "T4"))
rt2$M <- factor(rt2$M,labels=c("M0", "M1"))
rt2$N <- factor(rt2$N,labels=c("N0", "N1", "N2", "N3"))
rt2$risk <- factor(rt2$risk,labels=c("low", "high"))
ddist <- datadist(rt2) #使用函数datadist()将数据打包
options(datadist='ddist')
4.构建Cox回归模型:
f <- cph(Surv(futime, fustat) ~gender + stage +T + M + N + risk,
x=T, y=T, surv=T,
data=rt2, time.inc=1)
surv <- Survival(f)
5.构建Nomogram及可视化:
nom2 <- nomogram(f,
fun=list(function(x) surv(1, x), function(x) surv(2, x), function(x) surv(3, x)),
lp=F,
funlabel=c("1-year survival", "2-year survival", "3-year survival"),
maxscale=100,fun.at=c(0.99, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3,0.2,0.1,0.05)) #构建Nomogram图
plot(nom2) #输出Nomogram图
结果如下:
在模型中,共纳入了6个变量,通过整合,预测患者1年,2年以及3年的预后生存情况。
Nomogram图的绘制就到此结束了,又点亮了一颗技能之星⭐