The aim of this post is to demonstrate a landmark/milestone analysis of RCT time-to-event data with a Royston-Parmar flexible parametric survival model. The original reference is:
Royston P, Parmar M (2002). “Flexible Parametric Proportional-Hazards and Proportional-Odds Models for Censored Survival Data, with Application to Prognostic Modelling and Estimation of Treatment Effects.” Statistics in Medicine, 21(1), 2175–2197. doi:10.1002/ sim.1203
This model has been expertly coded and documented by Chris Jackson in the R package flexsurv (https://www.
I’ve written a lot recently about non-proportional hazards in immuno-oncology. One aspect that I have unfortunately overlooked is covariate adjustment. Perhaps this is because it’s so easy to work with extracted data from published Kaplan-Meier plots, where the covariate data is not available. But we know from theoretical and empirical work that covariate adjustment can lead to big increases in power, and perhaps this is equally important or even more important than the power gains from using a weighted log-rank test to match the anticipated non-proportional hazards.
In this blogpost I wanted to explore a Bayesian approach to non-proportional hazards. Take this data set as an example (the data is here).
library(tidyverse) library(survival) library(brms) ########################## dat <- read_csv("IPD_both.csv") %>% mutate(arm = factor(arm)) km_est<-survfit(Surv(time,event)~arm, data=dat) p1 <- survminer::ggsurvplot(km_est, data = dat, risk.table = TRUE, break.x.by = 6, legend.labs = c("1", "2"), legend.title = "", xlab = "Time (months)", ylab = "Overall survival", risk.table.fontsize = 4, legend = c(0.
In my opinion, many phase III trials in immuno-oncology are 10–20 % larger than they need (ought) to be.
This is because the method we use for the primary analysis doesn’t match what we know about how these drugs work.
Fixing this doesn’t require anything fancy, just old-school stats from the 1960s.
In this new preprint I try to explain how I think it should be done.