Processing math: 100%

5 votos

Cómo simular un modelo de riesgos proporcionales de Cox con cambio de punto y código en R

Tengo un modelo que tiene las siguientes características:

  • La covariable X sigue un Be(1/3).
  • Si X=0, % de tiempo de supervivencia Ysigue un E=Exponential(1).
  • Si se genera X=1, % de tiempo de supervivencia YEsi EΨ y Ψ+Eλ si E>Ψ, Ψ Dónde está el 'punto de cambio' (que Ψ=1) y Eλ=Exponential(λ) E independiente.

¿Alguien sabe cómo simular este modelo y traducirlo en código R?

19voto

Benjamin Ng Puntos 1

Bueno, después de un poco de investigación he encontrado la respuesta a mi pregunta, así que aquí está el código que permite la simulación:

simulation <- function(n,lambda,changepoint, surv.df=TRUE) {

# Define the covariate, restrictions and parameters.

X <- rbinom(n,prob=1/3,size=1)
E <- rexp(n,1)
EL <- rexp(n,lambda)

# Define the piecewise function.

Y <- ifelse(X==0,E,
          ifelse(E<=changepoint,E,changepoint+EL))

## Construction of the data frame.

if (surv.df) data.frame(Y,X) else cbind(Y,X)
}

Ahora, si quisiéramos hacer m Monte Carlo réplicas de este dataframe:

m = "number of replicas"

survive.df <- replicate(m, simulation(n = 100 ,lambda = 1,changepoint = 1), simplify=FALSE)

Para ver un conjunto de datos de los :

survive.df[[i]]

Un modelo de riesgos proporcionales de Cox con el dataset de la forma:

coxph(Surv(Y)~X , data=survive.df[[i]]) # Model.

cox.zph(coxph(Surv(Y)~X , data=survive.df[[i]])) # Schoenfield residuals.

¿Alguna sugerencia?

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