inst/doc/stratified-analysis.R

## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  eval = FALSE
)

## ----setup--------------------------------------------------------------------
#  library(OdysseusSurvivalModule)
#  
#  survivalData <- data.frame(
#    subject_id = 1:12,
#    time = c(20, 35, 42, 50, 63, 70, 74, 85, 91, 105, 118, 140),
#    status = c(1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0),
#    age_years = c(34, 37, 41, 48, 52, 58, 61, 66, 71, 73, 77, 82),
#    gender = c("Female", "Male", "Female", "Male", "Female", "Male", "Female", "Male", "Female", "Male", "Female", "Male")
#  )

## ----gender-strata------------------------------------------------------------
#  fitGender <- singleEventSurvival(
#    survivalData = survivalData,
#    timeScale = "days",
#    model = "km",
#    strata = "gender"
#  )
#  
#  names(fitGender)
#  fitGender[["overall"]]$summary
#  fitGender[["gender=Female"]]$summary
#  fitGender[["gender=Male"]]$summary
#  fitGender$logrank_test_gender

## ----age-strata---------------------------------------------------------------
#  fitAge <- singleEventSurvival(
#    survivalData = survivalData,
#    timeScale = "days",
#    model = "km",
#    strata = "age_group",
#    ageBreaks = list(c(18, 49), c(50, 64), c(65, Inf))
#  )
#  
#  names(fitAge)
#  fitAge[["age_group=18-49"]]$summary
#  fitAge[["age_group=50-64"]]$summary
#  fitAge[["age_group=65+"]]$summary
#  fitAge$logrank_test_age_group

## ----both-strata--------------------------------------------------------------
#  fitBoth <- singleEventSurvival(
#    survivalData = survivalData,
#    timeScale = "days",
#    model = "km",
#    strata = c("gender", "age_group"),
#    ageBreaks = list(c(18, 49), c(50, 64), c(65, Inf))
#  )
#  
#  names(fitBoth)
#  fitBoth$logrank_test_gender
#  fitBoth$logrank_test_age_group

## ----stratum-curves-----------------------------------------------------------
#  femaleCurve <- fitGender[["gender=Female"]]$data
#  olderCurve <- fitAge[["age_group=65+"]]$data
#  
#  head(femaleCurve)
#  head(olderCurve)

## ----plot-strata--------------------------------------------------------------
#  plot(
#    fitGender[["gender=Female"]]$data$time,
#    fitGender[["gender=Female"]]$data$survival,
#    type = "s",
#    col = "firebrick",
#    xlab = "Time (days)",
#    ylab = "Survival probability",
#    ylim = c(0, 1),
#    main = "Gender-specific Kaplan-Meier curves"
#  )
#  
#  lines(
#    fitGender[["gender=Male"]]$data$time,
#    fitGender[["gender=Male"]]$data$survival,
#    type = "s",
#    col = "steelblue"
#  )
#  
#  legend(
#    "topright",
#    legend = c("Female", "Male"),
#    col = c("firebrick", "steelblue"),
#    lty = 1,
#    bty = "n"
#  )

## ----stratified-other-models--------------------------------------------------
#  fitCox <- singleEventSurvival(
#    survivalData = survivalData,
#    timeScale = "days",
#    model = "cox",
#    covariates = c("age_years"),
#    strata = "gender"
#  )
#  
#  fitWeibull <- singleEventSurvival(
#    survivalData = survivalData,
#    timeScale = "days",
#    model = "weibull",
#    covariates = c("age_years"),
#    strata = "age_group",
#    ageBreaks = list(c(18, 49), c(50, 64), c(65, Inf))
#  )
#  
#  fitCox[["gender=Female"]]$summary
#  fitWeibull[["age_group=65+"]]$summary

Try the OdysseusSurvivalModule package in your browser

Any scripts or data that you put into this service are public.

OdysseusSurvivalModule documentation built on April 3, 2026, 5:06 p.m.