Como fazer a validação cruzada com um modelo de riscos proporcionais de Cox?

15

Suponha que eu tenha construído um modelo de previsão para a ocorrência de uma doença específica em um conjunto de dados (o conjunto de dados de construção do modelo) e agora quero verificar o quão bem o modelo funciona em um novo conjunto de dados (o conjunto de dados de validação). Para um modelo construído com regressão logística, eu calcularia a probabilidade prevista para cada pessoa no conjunto de dados de validação com base nos coeficientes de modelo obtidos no conjunto de dados de construção de modelo e, depois de dicotomizar essas probabilidades com algum valor de corte, eu posso construir uma tabela 2x2 isso me permite calcular a verdadeira taxa positiva (sensibilidade) e a verdadeira taxa negativa (especificidade). Além disso, eu posso construir toda a curva ROC variando o ponto de corte e, em seguida, obter a AUC para o gráfico ROC.

Agora, suponha que eu realmente tenha dados de sobrevivência. Portanto, usei um modelo de riscos proporcionais de Cox no conjunto de dados de criação de modelos e agora quero verificar como o modelo funciona no conjunto de dados de validação. Como o risco da linha de base não é uma função paramétrica nos modelos de Cox, não vejo como posso obter a probabilidade de sobrevivência prevista para cada pessoa no conjunto de dados de validação com base nos coeficientes do modelo obtidos no conjunto de dados de construção do modelo. Então, como posso verificar como o modelo funciona no conjunto de dados de validação? Existem métodos estabelecidos para fazer isso? E se sim, eles são implementados em algum software? Agradecemos antecipadamente por todas as sugestões!

Wolfgang
fonte

Respostas:

9

Uma curva ROC não é útil nesse cenário, embora a área ROC generalizada (índice c, que não requer dicotomização) seja. O rmspacote R calculará o índice-c e as versões com validação cruzada ou com correção de sobreajuste do bootstrap. Você pode fazer isso sem reter nenhum dado se pré-especificar completamente o modelo ou repetir um algoritmo de retrocesso a cada nova amostra. Se você realmente deseja fazer a validação externa, ou seja, se sua amostra de validação for enorme, poderá usar as seguintes rmsfunções: rcorr.cens, val.surv.

Frank Harrell
fonte
Obrigado pela resposta. Você poderia explicar por que uma curva ROC não é útil nessa configuração? Vi algumas aplicações proeminentes em que essa abordagem foi usada (por exemplo, Hippisley-Cox et al. (2007). Derivação e validação do QRISK, um novo escore de risco de doença cardiovascular para o Reino Unido: estudo de coorte aberto prospectivo. British Medical Journal , 335 (7611): 136), então agora estou pensando nos métodos deles.
Wolfgang
11
Aqui está uma analogia. Suponha que alguém esteja interessado em avaliar como o envelhecimento se relaciona com a capacidade de corrida. A abordagem ROC faria a pergunta, dada a capacidade de execução de alguém, qual é a probabilidade de ele estar acima de uma certa idade (arbitrária)? Em um estudo de coorte, apenas adiciona confusão para reverter os papéis das variáveis ​​independentes e dependentes, e as curvas ROC também tentam fazer cortes em um preditor, que é conhecido por ser uma má prática estatística - veja biostat.mc.vanderbilt.edu/ CatContinuous . Além de criar riscos, os pontos de corte devem realmente ser funções de todos os outros preditores.
31575 Frank Fellowski
Mais uma vez, obrigado por responder. Não estou totalmente convencido. Concordo totalmente que a categorização arbitrária de uma variável contínua é uma prática ruim, mas a abordagem ROC categoriza todos os possíveis pontos de corte e resume essas informações por meio da AUC. Portanto, não há arbitrariedade nisso. Também parece ser uma prática padrão e aceita para modelos de regressão logística. Então, você é contra o uso de curvas ROC em geral ou apenas no contexto de modelos de sobrevivência?
9119 Wolfgang
2
Curvas ROC em geral, a menos que você as use para o que elas realmente se destinam: tomada de decisão em massa de grupo único. Eles não ajudam na tomada de decisão individual em que determinado assunto você condicionaX=x ao invés de X>c(sabemos os valores preditores exatos para cada sujeito, não apenas eles excedem um ponto de corte). As curvas ROC também tentam até bons analistas a selecionar um ponto de corte. O que a curva ROC diz que você não pode obter as estatísticas de regressão padrão?
Frank Harrell
Minha experiência me diz que muitos pesquisadores / profissionais realmente querem regras de decisão dicotômicas (deixando de lado se isso é útil ou não). De qualquer forma, vou acompanhar algumas dessas funções R e ver onde isso me leva. Obrigado pela discussão.
Wolfgang
0

Sei que essa pergunta é bastante antiga, mas o que fiz quando encontrei o mesmo problema foi usar a função de previsão para obter uma "pontuação" para cada sujeito no conjunto de validação. Em seguida, dividiu-se o sujeito de acordo com a pontuação maior ou menor que a mediana e plotou a curva de Kaplan-Meier. Isso deve mostrar uma separação dos sujeitos, se o seu modelo é preditivo. Também testei a correlação do escore (na verdade, seu ln [para distribuição normal]) com a sobrevivência usando a função coxph do pacote de sobrevivência em R.

PMA
fonte