生存竞争风险考克斯模型
Survival competing risk cox model
我正在使用 survival
包进行竞争风险分析,并希望使用预测进行模拟。
我打算从[0, 1]中抽取一个均匀的随机x,从与x相交的生存曲线中找到终止时间;然后从 [0, hazard1 + hazard2] 中抽取另一个随机 y 来决定选择哪个最终状态。
我可以提取生存曲线,但不知道各个竞争状态的危害是什么。我从下面 survival
包的 Vignettes "compete" 复制了示例:
data(mgus2)
cfit1 <- coxph(Surv(etime, event=="pcm") ~ age + sex + mspike, mgus2)
etime <- with(mgus2, ifelse(pstat==0, futime, ptime))
event <- with(mgus2, ifelse(pstat==0, 2*death, 1))
event <- factor(event, 0:2, labels=c("censor", "pcm", "death"))
cfit2 <- coxph(Surv(etime, event=="death") ~ age + sex + mspike, mgus2)
cfit1 <- coxph(Surv(etime, event=="pcm") ~ age + sex + mspike, mgus2)
newdata <- expand.grid(sex=c("F", "M"), age=c(60, 80), mspike=1.2)
newdata
temp <- matrix(list(), 3,3)
dimnames(temp) <- list(from=c("Entry", "PCM", "Death"),
to =c("Entry", "PCM", "Death"))
temp[1,2] <- list(survfit(cfit1, newdata, std.err=FALSE))
temp[1,3] <- list(survfit(cfit2, newdata, std.err=FALSE))
csurv <- survfit(temp, p0 =c(1,0,0))
看起来csurv$pstate
包含生存曲线和累积风险。但是我不明白他们的关系。我试图通过将两个累积风险相加来取消生存,并采用如下 exp 但结果与生存曲线不同。
exp(-(csurv$pstate[,2]+csurv$pstate[,3]))
csurv$pstate[,1]
它们有什么关系?我如何使用它们进行模拟?
文档说生存对象有一个 prev 组件,即 "prevalence in state"。 (也许 Terry 在更改名称时忘记修改文档?)因为它是概率,所以在任何给定时间概率的总和应该为 1。因此您不会对它们取幂。当我将 pstate 组件的 rowSums 制表时,所有总和(每行三个值)都在 1.0 的数值误差范围内。所以总和的幂等于 e
,而不是你所期望的。我会放弃 exp
操作。已经为您完成了 "behind the scenes."
我正在使用 survival
包进行竞争风险分析,并希望使用预测进行模拟。
我打算从[0, 1]中抽取一个均匀的随机x,从与x相交的生存曲线中找到终止时间;然后从 [0, hazard1 + hazard2] 中抽取另一个随机 y 来决定选择哪个最终状态。
我可以提取生存曲线,但不知道各个竞争状态的危害是什么。我从下面 survival
包的 Vignettes "compete" 复制了示例:
data(mgus2)
cfit1 <- coxph(Surv(etime, event=="pcm") ~ age + sex + mspike, mgus2)
etime <- with(mgus2, ifelse(pstat==0, futime, ptime))
event <- with(mgus2, ifelse(pstat==0, 2*death, 1))
event <- factor(event, 0:2, labels=c("censor", "pcm", "death"))
cfit2 <- coxph(Surv(etime, event=="death") ~ age + sex + mspike, mgus2)
cfit1 <- coxph(Surv(etime, event=="pcm") ~ age + sex + mspike, mgus2)
newdata <- expand.grid(sex=c("F", "M"), age=c(60, 80), mspike=1.2)
newdata
temp <- matrix(list(), 3,3)
dimnames(temp) <- list(from=c("Entry", "PCM", "Death"),
to =c("Entry", "PCM", "Death"))
temp[1,2] <- list(survfit(cfit1, newdata, std.err=FALSE))
temp[1,3] <- list(survfit(cfit2, newdata, std.err=FALSE))
csurv <- survfit(temp, p0 =c(1,0,0))
看起来csurv$pstate
包含生存曲线和累积风险。但是我不明白他们的关系。我试图通过将两个累积风险相加来取消生存,并采用如下 exp 但结果与生存曲线不同。
exp(-(csurv$pstate[,2]+csurv$pstate[,3]))
csurv$pstate[,1]
它们有什么关系?我如何使用它们进行模拟?
文档说生存对象有一个 prev 组件,即 "prevalence in state"。 (也许 Terry 在更改名称时忘记修改文档?)因为它是概率,所以在任何给定时间概率的总和应该为 1。因此您不会对它们取幂。当我将 pstate 组件的 rowSums 制表时,所有总和(每行三个值)都在 1.0 的数值误差范围内。所以总和的幂等于 e
,而不是你所期望的。我会放弃 exp
操作。已经为您完成了 "behind the scenes."