Cómo generar datos de supervivencia con covariables dependientes del tiempo usando R

9

Quiero generar tiempo de supervivencia a partir de un modelo de riesgos proporcionales de Cox que contiene una covariable dependiente del tiempo. El modelo es

h(t|Xi)=h0(t)exp(γXi+αmi(t))

donde se genera a partir de Binomial (1,0.5) y .m i ( t ) = β 0 + β 1 X i + β 2 X i tXimi(t)=β0+β1Xi+β2Xit

Los valores de parámetros verdaderos se utilizan comoγ=1.5,β0=0,β1=1,β2=1.5,h0(t)=1

Para la covariable independiente del tiempo (es decir, lo siguienteh(t|Xi)=h0(t)exp(γXi)

#For time independent case
# h_0(t) = 1
gamma <- -1
u <- runif(n=100,min=0,max=1)
Xi <- rbinom(n=100,size=1,prob=0.5)
T <- -log(u)/exp(gamma*Xi)

¿Alguien puede ayudarme a generar datos de supervivencia con una covariable variable en el tiempo?

Jeque
fuente
¿Qué tipo de función es ? ¿Es continuo? ¿Constante por partes? Probablemente se necesitará un algoritmo diferente en consecuencia. mi(t)
tristan
es una covariable dependiente del tiempo, por simplicidad puede considerar una relación proporcional con el tiempo. mi(t)
Jeque
He editado mi pregunta, considerando una función de mi(t)
Sheikh
¿Cómo realizó el código R de la ecuación anterior? significa que en cada momento de la muerte dentro de la misma identificación, el programa necesita averiguar cuáles son las covariables para todos, ya sea x es igual a 1 o 0. si todas equivalen a 1, el riesgo corre. después de eso calcular la función de supervivencia. le permite elegir la línea correcta para cada tema.
Qas Amell
Como señala Z. Zhang, eche un vistazo a este artículo . Además, puede ver mi respuesta a su pregunta donde muestro cómo simular para aquellos en el grupo en R.Xi=1
Benjamin Christoffersen

Respuestas:

9

De acuerdo con su código R, está asumiendo una distribución exponencial (peligro constante) para su riesgo de referencia. Sus funciones de peligro son por lo tanto:

h(tXi)={exp(αβ0)if Xi=0,exp(γ+α(β0+β1+β2t))if Xi=1.

t

Λ(tXi)={texp(αβ0)if Xi=0,0texp(γ+α(β0+β1+β2τ))dτif Xi=1.={texp(αβ0)if Xi=0,exp(γ+α(β0+β1))1αβ2(exp(αβ2t)1)if Xi=1.

Estos nos dan las funciones de supervivencia:

S(t)=exp(Λ(t))={exp(texp(αβ0))if Xi=0,exp(exp(γ+α(β0+β1))1αβ2(exp(αβ2t)1))if Xi=1.

Luego se genera muestreando y , sustituyendo por y reorganizando la fórmula apropiada (basada en ) para simular . Esto debería ser un álgebra sencilla que luego puede codificar en R, pero hágamelo saber por comentario si necesita más ayuda. U U n i f o r m ( 0 , 1 ) U S ( t ) X i tXiUUniform(0,1)US(t)Xit

tristan
fuente
1
Muchas gracias por el álgebra. Codificaré en R y me pondré en contacto con usted para obtener más ayuda.
Jeque
qué respuesta perfecta, @tristan. Tenía una pregunta similar y encontré tu respuesta. Simplemente impresionante.
Sam
@tristan Estoy un poco confundido sobre el significado de alfa en la primera ecuación que das donde Xi = 0. ¿Te importaría ampliar un poco sobre eso? Gracias.
Statwonk
1
@Statwonk se deduce de la ecuación de tasa de riesgo proporcionada por el póster original
tristán
Lo siento, pero no estoy seguro de cómo usar la función S (t) para simular los tiempos. Creo que deberías calcular S ^ {- 1} y esta función no es trivial para el caso X_i = 1.
Pmc