Depois que o artigo "Ensine você a desenhar um nomograma após a regressão COX na linguagem R" foi lançado, muitas pessoas me enviaram mensagens dizendo que minha curva de calibração era feia e meu rosto corou levemente.
Vamos revisá-lo novamente hoje e revisar o código original. Veja o artigo original para o significado específico.
library(survival)
library(rms)
data(package="survival")
bc<-cancer
bc <- na.omit(bc)
dd <- datadist(bc)
options(datadist="dd")
f <- cph(Surv(time, status) ~ age + sex + ph.ecog + pat.karno +wt.loss,
x=T, y=T, surv=T, data=bc, time.inc=36)
surv <- Survival(f)
nom <- nomogram(f, fun=list(function(x) surv(36, x), function(x) surv(60, x),
function(x) surv(120, x)), lp=F, funlabel=c("3-year survival", "5-year survival", "10-year survival"),
maxscale=10, fun.at=c(0.95, 0.9, 0.85, 0.8, 0.75, 0.7, 0.6, 0.5))
plot(nom)
validate(f, method="boot", B=1000, dxy=T)
rcorrcens(Surv(time, status) ~ predict(f), data = bc)
Nesta etapa, a verificação interna foi concluída e a discriminação foi concluída, e a calibração está pronta. O código original é assim. Na verdade, é fácil corrigir a imagem. Precisamos ajustar os dois parâmetros de u e m de acordo com os dados originais. u representa por quanto tempo você deseja ver o tempo de sobrevivência, observe que o time.inc de f3 também deve ser modificado simultaneamente e m representa o tamanho da amostra da amostra. O
novo código é o seguinte
f3 <- cph(Surv(time, status) ~ age + sex + ph.ecog + pat.karno +wt.loss, x=T, y=T, surv=T,
data=bc, time.inc=720)
cal3 <- calibrate(f3, cmethod="KM", method="boot", u=720, m=50, B=1000)
plot(cal3)
f5<- cph(Surv(time, status) ~ age + sex + ph.ecog + pat.karno +wt.loss, x=T, y=T, surv=T,
data=bc, time.inc=360)
cal5 <- calibrate(f5, cmethod="KM", method="boot", u=360, m=50, B=1000)
Você também pode embelezá-lo e adicionar um pouco de cor.
Você também pode colocar as duas imagens juntas. Para
artigos mais interessantes, preste atenção à conta pública: pesquisa baseada em zero