如何模拟具有变化点的 Cox 比例风险模型并在 R 中对其进行编码

机器算法验证 r 生存 cox模型 变化点 冒险
2022-04-16 13:35:02

我有一个具有以下特征的模型:

  • 协变量遵循XBe(1/3)
  • 如果,生存时间遵循X=0YE=Exponential(1)
  • 如果,生存时间如果生成为 ,如果生成为,其中是“变化点”(让)和独立于X=1YEEΨΨ+EλE>ΨΨΨ=1Eλ=Exponential(λ)E

有谁知道如何模拟这个模型并将其翻译成 R 代码?

1个回答

好吧,经过一番研究,我找到了我的问题的答案,所以这里是允许模拟的代码:

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)
}

现在,如果我们想做这个数据帧的m个 Monte Carlo 副本:

m = "number of replicas"

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

查看i数据集:

survive.df[[i]]

使用i数据集构建 Cox 比例风险模型

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

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

有什么建议么?