From 465ce64487a938779d3c2d2f33feb28c1bf8ef60 Mon Sep 17 00:00:00 2001 From: Jens Sauer Date: Sun, 17 Jan 2021 11:43:34 +0100 Subject: [PATCH] Add cox time dependend analysis for death and sm Simple analysis of influence of relapse and sm on death. The SM part is not working currently (due to limited events). --- cox-time.R | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 cox-time.R diff --git a/cox-time.R b/cox-time.R new file mode 100644 index 0000000..4c09f78 --- /dev/null +++ b/cox-time.R @@ -0,0 +1,53 @@ +# Cox time-depended hazard models for death and sm +# +# License: GPL version 3 +# Jens Mathis Sauer (c) 2020 + +sma_cox_time_death_setup <- function() { + data <- tmerge(data1 = secmal %>% select(uuid), + data2 = secmal, + id = uuid, + tstop = event_time_asct) + data <- tmerge(data, secmal, id = uuid, death = event(event_time_asct, + event_status)) + data <- tmerge(data, secmal, id = uuid, relapse = tdc( + event_time_asct - event_time_relapse)) + data <- tmerge(data, secmal, id = uuid, sm = tdc( + event_time_asct - event_time_sm)) + + return(data) +} + +# Calculate HR of death with time dependend relapse status +sma_cox_death_relapse <- function() { + data <- sma_cox_time_death_setup() + cox <- coxph(Surv(tstart, tstop, death) ~ relapse + cluster(uuid), data) + + return(cox) +} + +sma_cox_death_sm <- function() { + data <- sma_cox_time_death_setup() + cox <- coxph(Surv(tstart, tstop, death) ~ sm + cluster(uuid), data) + + return(cox) +} + +sma_cox_time_sm_setup <- function() { + data <- tmerge(data1 = secmal %>% select(uuid), + data2 = secmal, + id = uuid, + tstop = time_at_risk) + data <- tmerge(data, secmal, id = uuid, sm = event(event_time_sm)) + data <- tmerge(data, secmal, id = uuid, relapse = tdc( + event_time_asct - event_time_relapse)) + + return(data) +} + +sma_cox_sm_rel <- function() { + data <- sma_cox_time_sm_setup() + cox <- coxph(Surv(tstart, tstop, sm) ~ relapse + cluster(uuid), data) + + return(cox) +}