使用 R 构建复杂设计调查加权(Survey-Weighted) Cox 模型的列线图

列线图,又称诺莫图(Nomogram),它是建立在回归分析的基础上,使用多个临床指标或者生物属性,然后采用带有分数高低的线段,从而达到设置的目的:基于多个变量的值预测一定的临床结局或者某类事件发生的概率。列线图(Nomogram)可以用于多指标联合诊断或预测疾病发病或进展。
近些年来在高质量SCI临床论文中用的越来越多。列线图将回归模型转换成了可以直观的视图,让结果更容易判断,具有可读性,例如:
在这里插入图片描述
对于复杂设计调查(Survey-Weighted)的数据,我们不能使用RMS包直接绘制预测模型列线图,这样会造成数据偏差,今天我们来介绍SvyNom绘制复杂设计调查(Survey-Weighted)的数据cox回归的列线图,先导入数据和R包

library("rms")
library("survey")
library("SvyNom")
set.seed(1234)
noNA<-read.csv("E:/r/test/noNA.csv",sep=',',header=TRUE)

在这里插入图片描述
上图只显示了一部分,这是一个转移性胃癌患者(Power、Capanu、Kelsen 和 Shah 2011)的数据(公众号回复:胃癌数据,可以获得数据),数据很多我们选取一部分建模,age_dx:年龄,group:分组变量,分为存活率小于2年的和大于两年的,inv_weight:概率权重,ssize:每个分组患者的人数,survival生存时间,surv_cens生存结局
要建立调查加权,我们先要生成一个调查表,我们这里是根据患者是否能活超过24个月进行分层,

dstr2 <- svydesign(id = ~1, strata = ~group, prob = ~inv_weight, 
  fpc = ~ssize, data = noNA)

prob 指定的抽样概率对于长期幸存者组(≥ 24月)中的患者等于 1,对于存活不到 2 年的患者均等于 253/853=0.296。fpc 选项指定已在每个层中抽样的总人口,在 ≥ 24 组中等于 132,对于 <24 组中的患者等于 853。

建立cox方程拟合包含患者年龄、ECOG 状态、白蛋白和血红蛋白水平、肿瘤分化、是否存在多个转移部位等变量

svy.cox.fit <- svycoxph(Surv(survival, surv_cens) ~ ECOG + liver_only + 
  Alb + Hb + Age + Differentiation + Gt_1_m1site + lymph_only, x = TRUE, 
  design = dstr2)
svy.cox.fit

在这里插入图片描述
对数据格式设定

dd <- datadist(noNA)
options(datadist = "dd")
ss3 <- c(0.05, 0.2, 0.4, 0.6, 0.7, 0.8, 0.9, 0.95, 0.99)

构建列线图数据,design =填入我们的调查表,model=填入我们建立的模型,pred.at =这里我们预测两年生存率,所以填入24,fun.lab =这里生存列线图标签

mynom <- svycox.nomogram(.design = dstr2, .model = 
  Surv(survival, surv_cens) ~ ECOG + liver_only + Alb + Hb + Age + 
  Differentiation + Gt_1_m1site + lymph_only, .data = noNA, pred.at = 24, 
  fun.lab = "Prob of 2 Yr OS")

绘图

plot(mynom$nomog)

在这里插入图片描述
通过重抽样建立引导数据对列线图进行验证

bootit <- 200
cases <- which(noNA$group == "long")
controls <- which(noNA$group == "<24")
boot.index <- matrix(NA, nrow(noNA), bootit)
for (i in 1:bootit)
  boot.index[, i] <- c(sample(cases, replace = TRUE), sample(controls, replace = TRUE))

在这里插入图片描述
估值差异很小,说模型可信度不错。最后绘制校准曲线

svycox.calibrate(mynom)

在这里插入图片描述
在这里插入图片描述
OK,本文结束,觉得有用的话请分享给需要的人哟。

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天桥下的卖艺者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值