survHE: Survival analysis in health economic evaluation

Survival analysis in health economic evaluation

Contains a suite of functions to systematise the workflow involving survival analysis in health economic evaluation. survHE can fit a large range of survival models using both a frequentist approach (by calling the R package flexsurv) and a Bayesian perspective. For a selected range of models, both Integrated Nested Laplace Integration (via the R package INLA) and Hamiltonian Monte Carlo (via the R package rstan) are possible. HMC models are pre-compiled so that they can run in a very efficient and fast way. In addition to model fitting, survHE provides a set of specialised functions, for example to perform Probabilistic Sensitivity Analysis, export the results of the modelling to a spreadsheet, plotting survival curves and uncertainty around the mean estimates.

survHE can take care of the following modelling aspects:

  • Reconstruct individual level dataset from digitised data (e.g. from Kaplan-Meier curves)
  • Analyse datasets using a hybrid of R formula and specialised commands, i.e. fit.models, which allow the user to select the inferential engine required (mle, inla or hmc), for a range of parametric models (as suggested e.g. by NICE guidelines)
  • Perform Probabilistic Sensitivity Analysis directly on the computed parametric survival curves
  • Export the output of the statistical model to e.g. a spreadsheet, to complete the economic evaluation (e.g. using Markov models) — of course this step is not necessary and the whole analysis can be embedded in a much bigger (Bayesian) model and performed directly in R!
# Loads the package
library(survHE)
# Loads some data (Breast Cancer from the package 'flexsurv')
data(bc)
# Fits a model with treatment arm ('group') as the only covariate and 
# accounting for censoring ('censrec') using MLE, INLA or HMC
mle=fit.models(formula=Surv(recyrs,censrec)~group,data=bc,distr="exp",method="mle")
inla=fit.models(formula=Surv(recyrs,censrec)~group,data=bc,distr="exp",method="inla")
hmc=fit.models(formula=Surv(recyrs,censrec)~group,data=bc,distr="exp",method="hmc")
# Now prints & plots the output
print(mle); print(inla); print(hmc)
plot(mle,inla,hmc,labs=c("MLE","INLA", "HMC"))


Model fit for the Exponential model, obtained using Flexsurvreg 
(Maximum Likelihood Estimate). Running time: 0.019 seconds

                 mean         se      L95%      U95%
rate        0.0603838 0.00845542 0.0458911 0.0794534
groupMedium 0.8180219 0.17122084 0.4824352 1.1536086
groupPoor   1.5375232 0.16280169 1.2184378 1.8566087

Model fitting summaries
Akaike Information Criterion (AIC)....: 1668.212
Bayesian Information Criterion (BIC)..: 1681.805

Model fit for the Exponential model, obtained using INLA (Bayesian inference via 
Integrated Nested Laplace Approximation). Running time: 0.40596 seconds

                 mean         se      L95%      U95%
rate        0.0601112 0.00935594 0.0424187 0.0838046
groupMedium 0.8365350 0.19307100 0.4791634 1.2151537
groupPoor   1.5458158 0.17610338 1.1802573 1.8694318

Model fitting summaries
Akaike Information Criterion (AIC)....: 1668.192
Bayesian Information Criterion (BIC)..: 1681.744
Deviance Information Criterion (DIC)..: 1668.192

Model fit for the Exponential model, obtained using Stan (Bayesian inference via 
Hamiltonian Monte Carlo). Running time: 3.1361 seconds

                 mean         se      L95%      U95%
rate        0.0602191 0.00829199 0.0454316 0.0773948
groupMedium 0.8255911 0.16780272 0.5126338 1.1532398
groupPoor   1.5494440 0.16360608 1.2335042 1.8646969

Model fitting summaries
Akaike Information Criterion (AIC)....: 1670.220
Bayesian Information Criterion (BIC)..: 1688.343
Deviance Information Criterion (DIC)..: 1668.296

A full documentation is available here.

Installation

There are two ways of installing survHE. A “stable” version is packaged and binary files are available for Windows and as source. To install the stable version on a Windows machine, run the following commands

install.packages("survHE",
    repos=c("http://www.statistica.it/gianluca/R",
        "https://cran.rstudio.org",
        "https://www.math.ntnu.no/inla/R/stable"),
    dependencies=TRUE
)

Note that you need to specify a vector of repositories - the first one hosts survHE, while the second one should be an official CRAN mirror. You can select whichever one you like, but a CRAN mirror must be provided, so that install.packages() can also install the “dependencies” (e.g. other packages that are required for survHE to work). The third one is used to install the package INLA, which is used to do one version of the Bayesian analysis. This process can be quite lengthy, if you miss many of the relevant packages.

To install from source (e.g. on a Linux machine), run

install.packages("survHE",
    repos=c("http://www.statistica.it/gianluca/R",
        "https://cran.rstudio.org",
        "https://inla.r-inla-download.org/R/stable"),
    type="source",
    dependencies=TRUE
)

The second way involves using the “development” version of survHE - this will usually be updated more frequently and may be continuously tested. On Windows machines, you need to install a few dependencies, including Rtools first, e.g. by running

pkgs <- c("flexsurv","Rcpp","rms","xlsx","rstan","INLA","Rtools","devtools")
repos <- c("https://cran.rstudio.com", "https://inla.r-inla-download.org/R/stable") 
install.packages(pkgs,repos=repos,dependencies = "Depends")

before installing the package using devtools:

devtools::install_github("giabaio/survHE")

Under Linux or MacOS, it is sufficient to install the package via devtools:

install.packages("devtools")
devtools:install_github("giabaio/survHE")
Last updated: Wednesday 19 June 2019

Related

Next