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?


¿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(t∣Xi)={exp⁡(αβ0)if Xi=0,exp⁡(γ+α(β0+β1+β2t))if Xi=1.

t

Λ(t∣Xi)={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 tXiU∼Uniform(0,1)US(t)Xit


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.