Learn R Programming

SimNPH

Simulate Non Proportional Hazards

This package provides several functions to simulate survival data with non proportional hazards using the general purpose simulation package SimDesign.

This package follows the structure of SimDesing and provides functions that can readily be used as generate, analyse and summarise arguments in SimDesign's runSimulation function.

Usage

Installation

The current development version can be installed with:

remotes::install_git("https://github.com/SimNPH/SimNPH.git")

Getting Started

Documentation for all functions can be found in the respective help topics in the package after installation or here

Some examples of data generation, testing and estimation can be found in this vignette.

Results of the Simulation Study

The results of the simulation study done by the CONFIRMS consortium in the course of the EMA tender are published in the paper A Comparison of Statistical Methods for Time-To-Event Analyses in Randomized Controlled Trials Under Non-Proportional Hazards, Klinglmüller et al. (2025) and are presented in a shinylive App.

Reproducing the Results of the Simulation study

The parameters for the simulations were set using the following scripts:

  • scripts/set_parameters_delayed_effect.R
  • scripts/set_parameters_crossing_hazards.R
  • scripts/set_parameters_subgroup.R
  • scripts/set_parameters_progression.R

The simulations were then run using the following scripts:

  • scripts/run_simulations_delayed_effect.R
  • scripts/run_simulations_crossing_hazards.R
  • scripts/run_simulations_subgroup.R
  • scripts/run_simulations_progression.R

Which in turn use scripts/run_simulations_common.R.

All scripts are executed with the base directory of this repository as working directory.

Changes since the conduct of the simulation study:

  • The version number of SimNPH was increased, to reproduce the simulation study, remove the check from run_simulations_...
  • Simulation parameters and results were previously stored in the folder data. This folder was renamed to data_sim_study because data is reserved for the use in R packages. Change the paths accordingly.
  • The run_simulations_... scripts use the parameters from a specified data. If you want to use parameter-values you generated yourself, update the path accordingly.

Re-Using the Scenarios

If you want to re-use the scenarios from the simulation study to investigate additional methods, use the scripts and documentation provided in the SimTemplate github repository. Also refer to the documentation on contributing. If you do so please cite the simulation study, you can get a bibtex entry with citation(package="SimNPH").

Copy Link

Version

Install

install.packages('SimNPH')

Monthly Downloads

298

Version

0.5.7

License

BSL-1.0

Issues

Pull Requests

Stars

Forks

Maintainer

Tobias Fellinger

Last Published

April 8th, 2025

Functions in SimNPH (0.5.7)

analyse_aft

Analyse Dataset with accelarated failure time models
design_group_sequential

Create a data.frame with an example group sequential design
create_summarise_function

Create a summarise function from a named list of functions
analyse_weibull

Analyse Dataset with Weibull Regression
analyse_logrank_fh_weights

Analyse Dataset with the Fleming Harrington weighted Logrank Test
r2m

Functions to Convert Between Days and Months and Medians and Rates
mixture_haz_fun

Fast implementation of hazard, cumulative hazard, ... for mixtures of subpopulations
results_pivot_longer

Functions for Plotting and Reporting Results
upsert_merge

Merge results from additional or updated simulations
combination_tests_delayed

Results of an example simulation
progression_cdf_fun

Fast implementation of cumulative density function, survival function, ... for scenarios with progression
analyse_maxcombo

Analyse Dataset with the Maxcombo Test
analyse_rmst_diff

Analyse the Dataset using the difference in RMST
generate_subgroup

Generate Dataset with different treatment effect in subgroup
shhr_gg

Plot of survival, hazard and hazard ratio of two groups as a function of time using ggplot and patchwork
labs_from_labels

Add ggplot axis labels from labels attribute
summarise_estimator

Generic Summarise function for esitmators
wrap_all_in_trycatch

Wrappers around Analyse Functions
generate_crossing_hazards

Generate Dataset with crossing hazards
design_fixed_followup

Create a data.frame with an example fixed design
summarise_test

Generic summarise function for tests
random_censoring_exp

Apply Random Exponentially Distributed Censoring
generate_delayed_effect

Generate Dataset with delayed effect
rename_results_column

Rename Columns in Simulation Results and Update Attributes
assumptions_progression

Create an empty assumtions data.frame for generate_progression
analyse_group_sequential

Create Analyse Functions for Group Sequential Design
recruitment_uniform

Add recruitment time to Dataset
analyse_diff_median_survival

Analyse the dataset using differnce in median survival
analyse_logrank

Analyse Dataset with the Logrank Test
analyse_gehan_wilcoxon

Create Analyse function for Gehan Wilcoxon test
analyse_coxph

Analyse Dataset with the Cox Protportional Hazards Model
SimNPH

SimNPH
analyse_describe

Create a Function for Descriptive Statistics of a Dataset
analyse_ahr

Analyse the dataset using extimators for the the average hazard ratio
analyse_modelstly_weighted

Create Analyse function for the modestly weighted logrank test
analyse_milestone_survival

Analyse the Dataset using difference or quotient of milestone survival
analyse_piecewise_exponential

Create Analyse function for piecewise exponential model