## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----setup-------------------------------------------------------------------- set.seed(123) library(landmaRk) library(tidyverse) library(survival) library(prodlim) ## ----------------------------------------------------------------------------- library(JMbayes2) data("aids") aids$patient <- as.numeric(aids$patient) str(aids) ## ----------------------------------------------------------------------------- # DF with Static covariates aids_dfs <- split_wide_df( aids, ids = "patient", times = "obstime", static = c("Time", "death", "drug", "gender", "prevOI"), dynamic = c("CD4"), measurement_name = "value" ) static <- aids_dfs$df_static head(static) ## ----------------------------------------------------------------------------- # DF with Dynamic covariates dynamic <- aids_dfs$df_dynamic head(dynamic[["CD4"]]) ## ----------------------------------------------------------------------------- landmarking_object <- LandmarkAnalysis( data_static = static, data_dynamic = dynamic, event_indicator = "death", ids = "patient", event_time = "Time", times = "obstime", measurements = "value", K = 5 ) landmarking_object <- landmarking_object |> compute_risk_sets(landmarks = c(6, 8)) ## ----------------------------------------------------------------------------- landmarking_object <- landmarking_object |> fit_longitudinal( landmarks = c(6, 8), method = "lme4", formula = value ~ prevOI + obstime + (obstime | patient), dynamic_covariates = c("CD4"), validation_fold = 5 ) |> predict_longitudinal( landmarks = c(6, 8), method = "lme4", dynamic_covariates = c("CD4"), validation_fold = 5, ) |> fit_survival( formula = Surv(event_time, event_status) ~ drug, landmarks = c(6, 8), horizons = 12 + c(6, 8), method = "coxph", dynamic_covariates = c("CD4"), validation_fold = 5 ) |> predict_survival( landmarks = c(6, 8), horizons = 12 + c(6, 8), validation_fold = 5 ) ## ----------------------------------------------------------------------------- summary(landmarking_object, type = "longitudinal", landmark = 6, dynamic_covariate = "CD4") ## ----------------------------------------------------------------------------- summary(landmarking_object, type = "survival", landmark = 6, horizon = 18) ## ----------------------------------------------------------------------------- performance_metrics( landmarking_object, landmarks = c(6, 8), horizons = c(18, 20), auc_t = TRUE, c_index = FALSE, h_times = c(3, 6, 12) ) ## ----------------------------------------------------------------------------- performance_metrics( landmarking_object, landmarks = c(6, 8), horizons = c(18, 20), auc_t = TRUE, c_index = FALSE, h_times = c(3, 6, 12), train = FALSE ) ## ----------------------------------------------------------------------------- landmarking_object <- LandmarkAnalysis( data_static = static, data_dynamic = dynamic, event_indicator = "death", ids = "patient", event_time = "Time", times = "obstime", measurements = "value", K = 5 ) landmarking_object <- landmarking_object |> compute_risk_sets(landmarks = c(6, 8)) ## ----------------------------------------------------------------------------- metrics <- list() for (k in 1:5) { metrics[[k]] <- landmarking_object |> fit_longitudinal( landmarks = c(6, 8), method = "lme4", formula = value ~ prevOI + obstime + (obstime | patient), dynamic_covariates = c("CD4"), validation_fold = k ) |> predict_longitudinal( landmarks = c(6, 8), method = "lme4", dynamic_covariates = c("CD4"), validation_fold = k, allow.new.levels = TRUE ) |> fit_survival( formula = Surv(event_time, event_status) ~ drug, landmarks = c(6, 8), horizons = 12 + c(6, 8), method = "coxph", dynamic_covariates = c("CD4"), validation_fold = k ) |> predict_survival( landmarks = c(6, 8), horizons = 12 + c(6, 8), validation_fold = k ) |> performance_metrics( landmarks = c(6, 8), horizons = c(18, 20), auc_t = TRUE, brier = TRUE, c_index = FALSE, h_times = c(3, 6, 12) ) } metrics