Time-Varying Restricted Mean Survival Time from Survival Matrices

Utilities for restricted mean survival time (RMST) and time-varying restricted mean survival time quantities computed from survival curves provided on a time grid. The package is model-agnostic and accepts only a time vector and survival matrices, returning RMST-based quantities and bootstrap summaries. For restricted mean survival time methodology, see Royston and Parmar (2013) .


tvrmst

Time-Varying Restricted Mean Survival Time from Survival Matrices

tvrmst is a matrix-first framework for computing dynamic restricted mean survival time (RMST) curves, treatment contrasts, and bootstrap confidence intervals.

The package separates survival estimation from functional summarization and operates directly on subject-level survival probability matrices.

Motivation

Restricted mean survival time (RMST) is defined as

$$ \mathrm{RMST}(\tau) = \int_0^\tau S(u),du. $$

RMST is often more interpretable and robust than hazard ratios, especially under non-proportional hazards. Most implementations target a single horizon $\tau$. tvrmst extends this to the full dynamic curve:

$$ \tau \mapsto \mathrm{RMST}(\tau). $$

This enables:

  • Continuous-time treatment contrasts

  • Time-dependent benefit visualization

  • Individual-level RMST trajectories

Mathematical Framework

For subject $i$, with predicted survival $S_i(t)$:

$$ \mathrm{RMST}_i(\tau) = \int_0^\tau S_i(u),du. $$

Population mean dynamic RMST:

$$ \mathrm{RMST}(\tau) = \frac{1}{n}\sum_{i=1}^{n}\mathrm{RMST}_i(\tau). $$

Two-arm contrast (A vs B):

$$ \Delta(\tau) = \mathrm{RMST}_B(\tau) - \mathrm{RMST}_A(\tau). $$

All integrals use deterministic trapezoidal integration on a common time grid.

Design Principles

  1. Matrix-first abstraction: rows are subjects, columns are time points.

  2. Model-agnostic workflow: works with any upstream survival estimator.

  3. Unbalanced-arm support: group sizes can differ.

tvrmst does not fit survival models.

Installation

# install.packages("remotes")
remotes::install_github("your-username/tvrmst")

Core API

Data structure

  • as_survmat()
  • nobs_survmat()
  • bind_survmat()

Estimands

  • rmst_dynamic()
  • rmst_delta()

Bootstrap

  • bootstrap_curve()
  • boot_rmst_delta()

Visualization

  • plot_rmst_individual_by_group()
  • plot_rmst_two_arms()
  • plot_delta_curve()
  • plot_boot_curve()

Coercion helper

  • as_survprob_matrix()

Basic Workflow

1) Prepare two-arm survival matrices

library(tvrmst)
set.seed(1)

time <- seq(0, 5, by = 0.05)
nA <- 100
nB <- 80

lambdaA <- rexp(nA, rate = 0.2)
lambdaB <- rexp(nB, rate = 0.15)

S_A <- outer(lambdaA, time, function(l, t) exp(-l * t))
S_B <- outer(lambdaB, time, function(l, t) exp(-l * t))

xA <- as_survmat(S_A, time, group = rep("A", nA))
xB <- as_survmat(S_B, time, group = rep("B", nB))
x_all <- bind_survmat(xA, xB)

2) Dynamic RMST

res_all <- rmst_dynamic(x_all)

Key outputs:

  • res_all$individual: subject-level dynamic RMST curves

  • res_all$mean: population mean dynamic RMST curve

3) Two-arm contrast

d <- rmst_delta(xA, xB)

Returns full $\Delta(\tau)$ over the grid.

4) Bootstrap confidence intervals

boot <- boot_rmst_delta(xA, xB, R = 300, seed = 1)

Computes percentile confidence bands pointwise along the delta curve.

Visualization

plot_rmst_individual_by_group(res_all, group = x_all$group)

plot_rmst_two_arms(xA, xB)

plot_delta_curve(d$time, d$delta)

plot_boot_curve(boot)

Relation to Existing RMST Workflows

Compared with fixed-horizon RMST tools, tvrmst provides:

  • Continuous dynamic RMST curves
  • Individual RMST trajectories
  • Direct compatibility with ML survival predictions
  • A clean separation between model fitting and functional summarization

This supports modern benchmarking and production survival pipelines.

Citation

citation("tvrmst")

License

MIT

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("tvrmst")

0.0.6 by Imad EL BADISY, 7 months ago


Browse source code at https://github.com/cran/tvrmst


Authors: Imad EL BADISY [aut, cre]


Documentation:   PDF Manual  


MIT + file LICENSE license


Imports stats

Suggests ggplot2, survival, testthat, roxygen2


See at CRAN