JoVE Logo

Entrar

É necessária uma assinatura da JoVE para visualizar este conteúdo. Faça login ou comece sua avaliação gratuita.

Neste Artigo

  • Resumo
  • Resumo
  • Introdução
  • Protocolo
  • Resultados
  • Discussão
  • Divulgações
  • Agradecimentos
  • Materiais
  • Referências
  • Reimpressões e Permissões

Resumo

O presente protocolo descreve códigos em R para avaliar as habilidades de discriminação e calibração de um modelo de risco competitivo, bem como códigos para validação interna e externa do mesmo.

Resumo

O modelo de risco proporcional de Cox é amplamente aplicado para análises de sobrevida em cenários clínicos, mas não é capaz de lidar com múltiplos desfechos de sobrevida. Diferentemente do modelo tradicional de risco proporcional de Cox, os modelos de risco concorrentes consideram a presença de eventos concorrentes e sua combinação com um nomograma, um dispositivo gráfico de cálculo, que é uma ferramenta útil para os clínicos realizarem uma predição prognóstica precisa. Neste estudo, relatamos um método para estabelecer o nomograma de risco competitivo, ou seja, a avaliação de suas habilidades de discriminação (i.e., índice de concordância e área sob a curva) e calibração (i.e., curvas de calibração), bem como o benefício líquido (i.e., análise da curva de decisão). Além disso, validação interna usando reamostras de bootstrap do conjunto de dados original e validação externa usando um conjunto de dados externo do nomograma de risco concorrente estabelecido também foram realizadas para demonstrar sua capacidade de extrapolação. O nomograma de risco competitivo deve servir como uma ferramenta útil para os clínicos preverem o prognóstico com a consideração de riscos competitivos.

Introdução

Nos últimos anos, fatores prognósticos emergentes têm sido identificados com o desenvolvimento da medicina de precisão, e modelos prognósticos combinando fatores moleculares e clínico-patológicos vêm chamando cada vez mais atenção em cenários clínicos. No entanto, modelos não gráficos, como o modelo de risco proporcional de Cox, com resultados de valores de coeficientes, são de difícil compreensão para os clínicos1. Em comparação, um nomograma é uma ferramenta de visualização de modelos de regressão (incluindo o modelo de regressão de Cox, modelo de risco competitivo, etc.), um diagrama bidimensional projetado para a computação gráfica aproximada de uma função matemática2. Permite a avaliação de diferentes níveis de variáveis em um modelo clínico e o cálculo de escores de risco (ES) para predizer prognóstico.

A avaliação do modelo é essencial na construção do modelo, e duas características são geralmente aceitas para avaliação: discriminação e calibração. Em modelos clínicos, a discriminação refere-se à capacidade de um modelo separar indivíduos que desenvolvem eventos daqueles que não desenvolvem, como pacientes que morrem versus aqueles que permanecem vivos, e o índice de concordância (C-index) ou a área sob a curva receiver operating characteristic (AUC) são tipicamente usados para caracterizá-la 3,4. A calibração é um processo de comparação das probabilidades previstas de um modelo com as probabilidades reais, e curvas de calibração têm sido amplamente utilizadas para representá-lo. Além disso, a validação de modelos (validação interna e externa) é uma etapa importante na construção do modelo, e apenas modelos validados podem ser extrapolados5.

O modelo de risco proporcional de Cox é um modelo de regressão utilizado em pesquisas médicas para investigar as associações entre fatores prognósticos e status de sobrevida. No entanto, o modelo de risco proporcional de Cox considera apenas dois status de desfecho [Y (0, 1)], enquanto os sujeitos do estudo geralmente enfrentam mais de dois status, e riscos concorrentes surgem [Y (0, 1, 2)]1. A sobrevida global (SG), que é definida como o tempo desde a data de origem (por exemplo, tratamento) até a data do óbito por qualquer causa, é o desfecho mais importante na análise de sobrevida. No entanto, a OS falha em diferenciar a morte específica por câncer da morte não específica por câncer (por exemplo, eventos cardiovasculares e outras causas não relacionadas), ignorando riscos competitivos6. Nessas situações, o modelo de risco competitivo é preferido para a predição do status de sobrevida com a consideração de riscos competitivos7. A metodologia de construção e validação de modelos de riscos proporcionais de Cox está bem estabelecida, enquanto há poucos relatos sobre a validação de modelos de risco concorrentes.

Em nosso estudo anterior, um nomograma de risco competitivo específico, uma combinação de um nomograma e um modelo de risco competitivo e uma estimativa de escore de risco baseada em um modelo de risco competitivo foram estabelecidos8. Este estudo tem como objetivo apresentar diferentes métodos de avaliação e validação do nomograma de risco competitivo estabelecido, que deve servir como uma ferramenta útil para os clínicos predizerem o prognóstico com a consideração de riscos competitivos.

Access restricted. Please log in or start a trial to view this content.

Protocolo

O banco de dados de Vigilância, Epidemiologia e Resultados Finais (SEER) é um banco de dados de câncer de acesso aberto que contém apenas dados de pacientes não identificados (SEER ID: 12296-Nov2018). Portanto, este estudo foi isento da aprovação do comitê de revisão do Hospital Jinhua Afiliado, Faculdade de Medicina da Universidade de Zhejiang.

1. Preparação dos dados e preparação dos pacotes R

  1. Prepare e importe os dados.
    > Dataset <- read.csv(".../Breast cancer Data.xlsx") #Import dados.
    Observação : os dados são carregados no arquivo suplementar 1.
  2. Instale e carregue os pacotes R.
    > pacotes <- c("rms","cmprsk","mstate","survival","riskRegression","
    prodlim")
    > req.pcg <- função(pcg){
    novo <- pcg[!( pcg %in% installed.packages()[, "Pacote"])]
    if (length(new)) install.packages(new, dependencies = T)
    sapply (pcg, exigir, ch = T)
    }
    > req.pcg(pacotes)

    Observação : execute os seguintes procedimentos com base no software R (versão 3.6.2) usando os pacotes rms, cmprsk, mstate, survival, riskRegression e prodlim (http://www.r-projectrg/).

2. Estabelecer nomogramas de risco concorrentes em dois métodos distintos

  1. Estabelecer o nomograma de risco concorrente em um método direto.
    > mod_cph <- cph(Surv(Survivalmonths, status) ~ factor1+ factor2+...,
    x=T, y=T, surv=T, data=Conjunto de dados)
    > nom <- nomogram(mod_cph, fun=list(function(x) 1-surv_cph(36, x)...),
    funlabel=c("Evento de 3 anos1 Prob." ...), lp=F)
    #Take o 36º mês como exemplo.
    > mod_crr <- crr(Survivalmonths, fstatus, failcode=1, cov1=cov)
    > escore <- log(log((1-real.3y),(1-cif.min36)))/(maxbeta/100)
    > plot(nom)
  2. Estabelecer o nomograma de risco concorrente em um método ponderado.
    > df.w <- crprep("Survivalmonths"," fstatus",
    data=Conjunto de dados, trans=c(1,2), cens=0,
    keep=c("factor1"," factor2"...))
    > mod.w <- cph(Surv(Tstart, Tstop, status==1) ~ factor1+factor2+...,
    data=df.w, peso=peso.cens, subconjunto=código de falha==1, surv=T)
    > nom.w <- nomograma(mod.w...)

3. Capacidade de discriminação do nomograma de risco concorrente

  1. Índice C para discriminação
    1. Encaixe a matriz no modelo de risco concorrente mod_crr e obtenha um suv de matriz prevista.
      > SUV <- predict.crr(mod_crr, CoV)
    2. Obtenha as incidências acumuladas em um determinado mês do suv e calcule o índice C com a função rcorr.cens.
      > cif36 <- SUV[que(SUV[,1]==36),][-1]
      > rcorr <- rcorr.cens(1-cif36,Surv(Dataset$Survivalmonths,Dataset$tumordeath))
      > cindex <- rcorr[1]
  2. AUC para discriminação
    1. Pontuar o desempenho preditivo do modelo de risco concorrente usando a função Score (riskRegression package).
      > fgr.w <- FGR(Hist(Survivalmonths, fstatus) ~ factor1+ factor2+..., data=Dataset, cause=1)
      > pontuação <- Score(list("Fine-Gray" = fgr.w),
    2. Extraia a AUC da "pontuação".
      > score$AUC

4. Capacidade de calibração de modelos de risco concorrentes

  1. Curvas de calibração com intervalo de confiança de 95% do modelo de risco concorrente
    1. Obtenha um quadro de dados com as incidências cumulativas de cada indivíduo em um determinado tempo de falha.
      > cif36 <- data.frame(cif36) #Take o 36º mês como exemplo.
      > colnames(cif36.36_o)<-c("36m")
    2. Divida a coorte de acordo com as incidências cumulativas estimadas em cinco subgrupos e calcule as incidências cumulativas médias previstas de cada subgrupo.
      > grupo36 <- corte (cif36$'36m',
      quantil(CIF36$'36M', seq(0, 1, 0.2)),
      include.lowest = VERDADEIRO, rótulos = 1:5)
      > média36 <- as.vector(by(cif36 $'36m', group36, mean))
    3. Calcule as incidências cumulativas observadas, ou seja, as incidências cumulativas reais, usando a função cuminc, e então obtenha as incidências cumulativas observadas com um intervalo de confiança de 95% em um determinado tempo de falha.
      > cum36 <- cuminc(Dataset$Survivalmonths,Dataset$fstatus,group36)
      > obs36 <- timepoints(cum36,Dataset$Survivalmonths)$est[c(1:5),36]
      > obs36var <- timepoints(cum36,Dataset$Survivalmonths)$var[c(1:5),36]
      > df <- data.frame(média36, obs36, obs36var)
    4. Traçar a curva de calibração com as incidências cumulativas previstas como eixo x e as incidências cumulativas observadas como eixo y usando a função ggplot.
      > ggplot(df)+ geom_point(aes(x=mean36,y=obs36),col="red")+
      geom_point(aes(x=mean36,y=obs36),col="vermelho",pch=4)+
      geom_line(col="vermelho",aes(x=média36,y=obs36))+
      geom_errorbar(col="vermelho",aes(x=média36,y=obs36+1,96
      *sqrt(obs36var)),
      ymin =obs36-1.96*sqrt(obs36var), ymax = obs36+1.96
      *sqrt(obs36var))
      geom_abline(lty=3,lwd=2,col=c(rgb(0,118,192,
      maxColorValue=255)))
  2. Curva de calibração com escores de risco do modelo de risco concorrente
    1. Avalie cada nível de todas as variáveis e obtenha o RS total.
      > Dataset$factor1[Dataset$factor1==1] <- factor1.scale["Factor1_level1"]
      >
      ... #For exemplo, Dataset$histology[Dataset$histology==1]<-histology.scale["Histology1"]
      > Dataset$rs <- Dataset$factor1+Dataset$factor2+Dataset$factor3+...
      OBS: Obter o RS total de cada paciente somando os pontos de cada variável.
    2. Contar as frequências e calcular as incidências cumulativas observadas dos diferentes escores de risco total.
      > rs.freq <- as.data.frame(table(Dataset$rs))
      > OBS.36 <- vetor(mode="numérico", length=nrow(rs.freq))
      > para (i em 1: nrow(rs.freq)) {
      conjunto de dados <- subconjunto(Dataset,Dataset$rs== rs.freq [i,1])
      cif.dataset <- cuminc(dataset$Survivalmonths,dataset$death3)
      cif36.dataset <- pontos de tempo(cif.dataset,36)
      obs.36[i] <- cif36.dataset$est[1]}
    3. Defina o intervalo do eixo x e calcule as incidências cumulativas previstas dos escores de risco totais.
      > RS <- intervalo (nom$total.points)
      > x.36 <- seq(min(RS),max(RS),0.01)
      > pre.36 <- 1-(1-cif.min36)^exp(x.36*maxbeta/100)
    4. Traçar a curva de calibração com escores de risco.
      > plot(x.36, pre.36, type='l'...)
      > par(new=TRUE)
      > plot(as.vector(rs.freq[,1]), obs.36... )

5. Análise da curva de decisão de modelos de risco concorrentes

  1. Origine a função stdca para realizar a análise da curva de decisão.
    > fonte("stdca. R")
  2. Extrair as equações polinomiais do nomograma para calcular a probabilidade de sobrevivência.
    > nomogramEx(nomo = nom)
    > Dataset$predictors <- A * (Dataset$rs ^3) + B * (Dataset$rs ^2) + C * Dataset$rs + D
    #predictors são probabilidades previstas de morte específica por câncer calculadas pelo nomograma estabelecido
  3. Realizar a análise da curva de decisão.
    > stdca(data = Dataset, outcome = "status", ttoutcome = "Survivalmonths", timepoint = 36,
    preditores = "preditores", cmprsk = VERDADEIRO, suave = FALSO, probabilidade = FALSO)

    NOTA: Para avaliar um resultado na presença de um risco concorrente, TRUE deve ser escolhido para cmprsk.

6. Validação interna usando o método bootstrap

  1. Obtenha as incidências cumulativas médias previstas usando o método bootstrap.
    1. Redefina a amostra do conjunto de dados original (conjunto de dados) com replace para gerar o conjunto de dados de bootstrap (Dataset_in). Estabeleça um modelo de risco concorrente (mod.in_crr) com o conjunto de dados de bootstrap. Use a função predict.crr para prever mod.in_crr e loop b vezes para gerar suvall.in.
      B=b
      suvall.in <- lista()
      for(j em 1:B){
      Dataset_in <- Conjunto de dados[sample(c(1:nrow(Dataset)),nrow(Dataset),
      substituir = VERDADEIRO),]
      anexar(Dataset_ em)
      Cov. em <- model.matrix(~factor1+ factor2+...) [,-1]
      Mod. em _crr <- crr(Survivalmonths, fstatus, failcode=1, cov1=cov.in)
      detach(Dataset. interno)
      SUV. em <- predict.crr(mod. em _crr, cov)
      suvall.in[[j]] <- suv.in}
    2. Obtenha a média de incidências acumuladas previstas em um determinado mês.
      CIF36ALL. <- vetor (mode="numérico", length=nrow(Dataset))
      para (k em 1:B) {
      CIF36ALL. interno<- cif36all. interior + suvall. inner[[k]][which(suvall. inner[[k]][,1]==36),][-1]
      }
      cif36.in <- cif36all.in/B
  2. Calcule o índice C usando validação cruzada interna com a função rcorr.cens.
    Rcorr. < interno- rcorr.cens(1-cif36.in,Surv(Dataset$Survivalmonths,Dataset$tumordeath))
    cindex. < interno - rcorr. interno[1]
  3. Calibrar usando a validação interna cruzada.
    NOTA: Os códigos da curva de calibração do modelo de risco concorrente com validação interna são semelhantes aos códigos da secção 4, enquanto o SUV foi substituído por suv.in.

7. Validação externa do modelo de risco concorrente

  1. Obtenha as incidências cumulativas previstas usando dados externos. Obtenha as incidências cumulativas previstas com a matriz de variáveis de dados externos (cov.ex).
    suv.ex <- predict.crr(mod_crr,cov.ex)
    cif36.ex <- suv.ex [que(suv.ex $time=="36"),][-1]
  2. Calcule o índice C usando validação externa.
    rcorr.ex <- rcorr.cens(1-cif36.ex,Surv(Dataset.ex$Survivalmonths,Dataset.ex$tumordeath))
    cindex.ex <- rcorr.ex[1]
  3. Calibrar usando validação externa.
    NOTA: Os códigos da curva de calibração do modelo de risco concorrente com validação interna são semelhantes aos códigos da secção 4, enquanto o suv é substituído por suv.ex.

Access restricted. Please log in or start a trial to view this content.

Resultados

Neste estudo, os dados de pacientes com câncer de mama foram recuperados do banco de dados do SEER e serviram como exemplo de dados. O banco de dados SEER fornece dados sobre câncer, representando cerca de 34,6% da população dos Estados Unidos, e foi obtida permissão para acessar o banco de dados (número de referência 12296-Nov2018).

Dois nomogramas (Figura 1), ambos incluindo tipo histológico, grau diferenciado, estádio T e estádio N, foram estabelecido...

Access restricted. Please log in or start a trial to view this content.

Discussão

Este estudo comparou nomogramas de risco concorrentes estabelecidos por dois métodos distintos e realizou avaliação e validação dos nomogramas estabelecidos. Especificamente, este estudo forneceu um tutorial passo-a-passo para estabelecer o nomograma com base em um método direto, bem como calcular o índice C e traçar as curvas de calibração.

O pacote rms no software R é amplamente utilizado para a construção e avaliação de modelos de risco proporcional de Cox, mas não ...

Access restricted. Please log in or start a trial to view this content.

Divulgações

Os autores declaram não ter interesses concorrentes.

Agradecimentos

O estudo foi apoiado por subsídios do Projeto de Plano de Ciência e Tecnologia Médica da Província de Zhejiang (números de concessão 2013KYA212), o programa geral da Fundação de Ciências Naturais da Província de Zhejiang (número de bolsa Y19H160126) e o programa-chave do Departamento Municipal de Ciência e Tecnologia de Jinhua (número de concessão 2016-3-005, 2018-3-001d e 2019-3-013).

Access restricted. Please log in or start a trial to view this content.

Materiais

NameCompanyCatalog NumberComments
R softwareNoneNot ApplicableVersion 3.6.2 or higher 
Computer systemMicrosoft Windows 10 Windows 10 or higher

Referências

  1. Andersen, P. K., Gill, R. D. Cox's regression model for counting processes: A large sample study. The Annals of Statistics. 10 (4), 1100-1120 (1982).
  2. Lubsen, J., Pool, J., vander Does, E. A practical device for the application of a diagnostic or prognostic function. Methods of Information in Medicine. 17 (2), 127-129 (1978).
  3. Harrell, F. E., Lee, K. L., Mark, D. B. Multivariable prognostic models: Issues in developing models, evaluating assumptions and adequacy, and measuring and reducing errors. Statistics In Medicine. 15 (4), 361-387 (1996).
  4. Hung, H., Chiang, C. -T. Estimation methods for time-dependent AUC models with survival data. The Canadian Journal of Statistics / La Revue Canadienne de Statistique. 38 (1), 8-26 (2010).
  5. Moons, K. G. M., et al. Risk prediction models: I. Development, internal validation, and assessing the incremental value of a new (bio)marker. Heart. 98 (9), 683-690 (2012).
  6. Fu, J., et al. Real-world impact of non-breast cancer-specific death on overall survival in resectable breast cancer. Cancer. 123 (13), 2432-2443 (2017).
  7. Fine, J. P., Gray, R. J. A proportional hazards model for the subdistribution of a competing risk. Journal of the American Statistical Association. 94 (446), 496-509 (1999).
  8. Wu, L., et al. Establishing a competing risk regression nomogram model for survival data. Journal of Visualized Experiments. (164), e60684(2020).
  9. Zhang, Z., Geskus, R. B., Kattan, M. W., Zhang, H., Liu, T. Nomogram for survival analysis in the presence of competing risks. Annals of Translational Medicine. 5 (20), 403(2017).
  10. Zhang, Z. H., et al. Overview of model validation for survival regression model with competing risks using melanoma study data. Annals Of Translational Medicine. 6 (16), 325(2018).
  11. Newson, R. Confidence intervals for rank statistics: Somers' D and extensions. Stata Journal. 6 (3), 309-334 (2006).
  12. Davison, A. C., Hinkley, D. V., Schechtman, E. Efficient bootstrap simulation. Biometrika. 73 (3), 555-566 (1986).
  13. Roecker, E. B. Prediction error and its estimation for subset-selected models. Technometrics. 33 (4), 459-468 (1991).
  14. Steyerberg, E. W., Harrell, F. E. Prediction models need appropriate internal, internal-external, and external validation. Journal of Clinical Epidemiology. 69, 245-247 (2016).
  15. Zhang, Z., Chen, L., Xu, P., Hong, Y. Predictive analytics with ensemble modeling in laparoscopic surgery: A technical note. Laparoscopic, Endoscopic and Robotic Surgery. 5 (1), 25-34 (2022).

Access restricted. Please log in or start a trial to view this content.

Reimpressões e Permissões

Solicitar permissão para reutilizar o texto ou figuras deste artigo JoVE

Solicitar Permissão

Explore Mais Artigos

Cancer ResearchModelo de risco competitivonomogramadiscrimina ocalibra ovalida o de modelo

This article has been published

Video Coming Soon

JoVE Logo

Privacidade

Termos de uso

Políticas

Pesquisa

Educação

SOBRE A JoVE

Copyright © 2025 MyJoVE Corporation. Todos os direitos reservados