4 votos

comparar modelos de Cox no anidados

Lo que quiero hacer es comparar dos modelos de regresión de Cox no anidados utilizando R. Sólo por ejemplo:

library(survival)
data(cancer)
fit1 <- coxph(Surv(time,status)~ age, data=cancer)
fit2 <- coxph(Surv(time,status)~ sex, data=cancer)

He leído casi todas las preguntas relativas a la comparación de modelos no anidados en este sitio web. Sin embargo, cuando se trata de datos de supervivencia, las cosas cambian bastante. Aquí hay maneras de comparar modelos no anidados (algunos de ellos no funcionan en el modelo de regresión de Cox):

  • AIC/BIC: cuanto menos mejor, pero no hay ninguna prueba para hacer la comparación.
  • Prueba basada en LR: coxtest {lmtest}, jtest {lmtest}, vuong test {games}, Clarke test {games}. Estas pruebas se desarrollaron para tratar con modelos no anidados, pero no son aplicables a los modelos de regresión de Cox (supongo que porque el modelo de Cox utiliza la verosimilitud parcial). Comparación de modelos de Cox no anidados que está cerca de mi pregunta, pero tengo problemas para implicar este método en el código R. ¿Existe algún paquete que pueda utilizarse para realizar pruebas basadas en LR para modelos de Cox no anidados?
  • Prueba global: fit3 <- coxph(Surv(tiempo,estado)~ edad+sexo, datos=cáncer) . Fit3 se puede utilizar para hacer anova(fit1,fit3,fit2). Pero en realidad, las variables no son la edad y el sexo, sino dos variables extremadamente relevantes que son la edad continua y la edad discreta. Así que fit3 es irracional.
  • Índice C: puede utilizarse para comparar las predicciones de los modelos de Cox. Pero es menos sensible que la prueba basada en LR. Hasta ahora no he encontrado una prueba para comparar dos índices c.

Considero utilizar métodos bootstrap para comparar el AIC/BIC y el índice c. ¡Cualquier ayuda en esta pregunta es muy apreciada !

3voto

Jim Puntos 1

Puede comparar los modelos de regresión de Cox ( coxph ) en R con plrtest que es una prueba de razón de verosimilitud parcial para no anidado coxph modelos:

require("survival")
require("nonnestcox") #github.com/thomashielscher/nonnestcox
pbc  <- subset(pbc, !is.na(trt))
mod1 <- coxph(Surv(time, status==2) ~ age, data=pbc, x=T)
mod2 <- coxph(Surv(time, status==2) ~ age + albumin + bili + edema + protime, data=pbc,  x=T)
mod3 <- coxph(Surv(time, status==2) ~ age + log(albumin) + log(bili) + edema + 
log(protime), data=pbc, x=T)
plrtest(mod3, mod2, nested=F) # non-nested models
plrtest(mod3, mod1, nested=T) # nested models

-1voto

Félix Saparelli Puntos 3130

Puede consultar este enlace: http://www.drizopoulos.com/courses/emc/ep03_%20survival%20analysis%20in%20r%20companion#proportional-hazards-assumption

Según tengo entendido, en la sección 4.3 se recomienda utilizar una prueba de razón de verosimilitud utilizando la fórmula anova() función.

fit1 <- coxph(Surv(time,status)~ age, data=cancer)
fit2 <- coxph(Surv(time,status)~ sex, data=cancer)
anova(fit1,fit2)

Da la salida:

Analysis of Deviance Table
Cox model: response is  Surv(time, status)
 Model 1: ~ age
 Model 2: ~ sex
   loglik  Chisq Df P(>|Chi|)    
1 -747.79                        
2 -744.59 6.3927  0 < 2.2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X