# survHE: Survival analysis in health economic evaluation

## Survival analysis in health economic evaluation

Contains a suite of functions to streamline systematically 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 (HMC; 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`!

`survHE`

functions and how they interact
A full documentation (published in the *Journal of Statistical Software*) is available here.

## Installation

There are two ways of installing `survHE`

. A “stable” version (as of 7 October 2020, it is on version `1.1.1`

) is packaged and binary files are available for Windows and as source. To install the stable version from CRAN, run the following commands

`install.packages("survHE")`

This process can be quite lengthy, if you miss many of the relevant packages. Also, the pre-compiled `rstan`

models do take some time at *installation* (but this steps produces substantial savings at *compilation* and *running* time!).

`survHE`

is also available from the GitHub repository. The `master`

branch is the same as the official one, hosted on CRAN. You can still install it from GitHub using the following commands on the `R` terminal. On a Windows machine:

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

before installing the package using `devtools`

:

`::install_github("giabaio/survHE") devtools`

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

:

```
install.packages("devtools")
:install_github("giabaio/survHE") devtools
```

Finally, there is a *development* version, which is stored in the `devel`

branch of the GitHub repository. This version is continuously updated (and we welcome comments and suggestions - you can open an “Issue” here). The process for installation is essentially the same as above with the only final difference

`:install_github("giabaio/survHE", ref="devel") devtools`

(the option `ref="devel"`

instructs `R` to look for the relevant files in the branch named `devel`

).

### Installation issues

Installation of the development version via `devtools:install_github()`

can fail in a `MS Windows`

environment with the following error message:

`in .shlib_internal(args) : C++14 standard requested but CXX14 is not defined Error `

This is due to known issues (see for example here) with new(er) versions of `rstan`

(which `survHE`

uses for full Bayesian modelling). `rstan`

uses by default version 14 of the `C++`

compiler, so `R`

needs to know and act accordingly. This can be solved by running the following code

```
<- file.path(Sys.getenv("HOME"), ".R")
dotR if (!file.exists(dotR))
dir.create(dotR)
<- file.path(dotR, "Makevars.win")
M if (!file.exists(M))
file.create(M)
cat("\nCXX14FLAGS=-O3 -Wno-unused-variable -Wno-unused-function",
"CXX14 = $(BINPREF)g++ -m$(WIN) -std=c++1y",
"CXX11FLAGS=-O3 -Wno-unused-variable -Wno-unused-function",
file = M, sep = "\n", append = TRUE)
```

Last updated: 11 December 2022

## Relevant publications

*Journal of Statistical Software, Articles*95 (14): 1–47. https://doi.org/10.18637/jss.v095.i14.