A_Little_MD 2023-10-03 22:40 采纳率: 0%
浏览 74
已结题

Cox回归模型Nomogram图制作报错

采用R-4.3.1中rms包进行Cox回归模型Nomogram图制作,代码如下:

library(rms)
library(survival)
mydata <- read.csv("Cohort2.csv",head=T)
View(mydata)
mydata$Age_50 <- as.factor(mydata$Age_50)
mydata$Pathology <- as.factor(mydata$Pathology)
mydata$Grade <- as.factor(mydata$Grade)
mydata$ALN_No <- as.factor(mydata$ALN_No)
mydata$pT <- as.factor(mydata$pT)
mydata$ER_50 <- as.factor(mydata$ER_50)
mydata$PR_20 <- as.factor(mydata$PR_20)
mydata$CerbB2_2 <- as.factor(mydata$CerbB2_2)
mydata$BreSx <- as.factor(mydata$BreSx)
mydata$ALNSx <- as.factor(mydata$ALNSx)
mydata$ChT <- as.factor(mydata$ChT)
mydata$RT <- as.factor(mydata$RT)
dd <- datadist(mydata)
options(datadist = "dd")
fit <- cph(Surv(iDFS_FU,iDFS)~Age_50+Pathology+pT+ALN_No+Grade+ER_50+PR_20+CerbB2_2+ChT+RT, 
           data = mydata,
           x = T,
           y = T,
           surv = T,
           time.inc = 12)
cox.zph(fit)
fit
surv <- Survival(fit)
surv1 <- function(x)surv(12*1,lp=x)
surv2 <- function(x)surv(12*3,lp=x)
surv3 <- function(x)surv(12*5,lp=x)
Nomo1 <- nomogram(fit,
                  fun=list(surv1,surv2,surv3),
                  lp=F,
                  funlabel = c('1-year survival rate','3-year survival rate','5-year survival rate'),
                  maxscale = 100,
                  fun.at = c('0.9','0.85','0.8','0.7','0.6','0.5','0.4','0.3','0.2','0.1')
                  )
tiff(filename = "Nomogram.tif",width = 900,height = 600,res = 300)
plot(Nomo1, xfrac = 0.35)
dev.off()

运行结果报错如图1,得到的图如图2,没有风险预测值,求帮助

img

img

  • 写回答

17条回答 默认 最新

  • 玥轩_521 新星创作者: 网络协议与安全技术领域 2023-10-04 08:52
    关注
    获得1.50元问题酬金

    援引文心一言:
    从你的描述和代码中看,你正在使用R语言的rms包来做Cox回归模型并生成Nomogram图。但在你的描述中,你没有提供具体的错误消息,所以我不能直接确定问题的具体原因。然而,我可以根据你的描述提供一些可能的解决方案:

    错误的结果:你的Nomogram图没有显示风险预测值。这可能是因为你的Cox回归模型没有正确建立,或者你的Nomogram图没有正确生成。请确认你的模型fit是否正确,你可以通过summary(fit)查看模型的摘要以确认模型的正确性。此外,你应该检查Nomogram函数的输入是否正确。

    Nomogram函数的使用:在Rms包中,Nomogram函数的使用方法可能与你所给的例子有些许不同。你应该使用surv对象而不是fit对象来生成Nomogram。试试看这个:

    r
    surv.obj <- Surv(fit$time, fit$status)
    Nomo1 <- nomogram(surv.obj, fun=list(surv1,surv2,surv3), lp=F, funlabel = c('1-year survival rate','3-year survival rate','5-year survival rate'), maxscale = 100, fun.at = c('0.9','0.85','0.8','0.7','0.6','0.5','0.4','0.3','0.2','0.1'))
    tiff(filename = "Nomogram.tif",width = 900,height = 600,res = 300)
    plot(Nomo1, xfrac = 0.35)
    dev.off()
    数据的问题:你的数据可能存在一些问题,例如某些变量具有太多缺失值,或者某些分类变量的类别太多或太少。你可以通过检查数据的统计信息或做数据清理来排除这个问题。
    版本问题:你使用的R的版本可能也有些问题。如果有新版本的R,那么可能有更新的rms包版本,这可能解决你的问题。
    希望这些建议对你有所帮助。如果你还有其他问题或更具体的错误消息,请提供更多的信息以便我能提供更具体的帮助。

    评论

报告相同问题?

问题事件

  • 系统已结题 10月11日
  • 修改了问题 10月3日
  • 创建了问题 10月3日