Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/seabbs/speedymarkov

Speed up Discrete Markov Model Simulations.
https://github.com/seabbs/speedymarkov

code-optimization code-profiling health-economic-evaluation markov-modelling rcpp rstats

Last synced: 8 days ago
JSON representation

Speed up Discrete Markov Model Simulations.

Awesome Lists containing this project

README

        

---
output: github_document
---

```{r, echo = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/"
)
```

# Speed up Discrete Markov Model Cost Effectiveness Simulations

[![badge](https://img.shields.io/badge/Launch-SpeedyMarkov-blue.svg)](https://mybinder.org/v2/gh/seabbs/SpeedyMarkov/master?urlpath=rstudio)
[![CRAN_Release_Badge](http://www.r-pkg.org/badges/version-ago/SpeedyMarkov)](https://CRAN.R-project.org/package=SpeedyMarkov)
[![develVersion](https://img.shields.io/badge/devel%20version-0.1.0-blue.svg?style=flat)](https://github.com/seabbs/SpeedyMarkov)
[![DOI](https://zenodo.org/badge/223414207.svg)](https://zenodo.org/badge/latestdoi/223414207)

**Work in progress**

This package:

* Compares a functional markov modelling approach to a reference approach for several example models.
* Explores approaches to speeding up Markov modelling in a principled fashion making use of C++ when required.
* Details the benefits of parallisation and provide a code structure in which parallisation is easy to make use of.
* Provides a toolkit for use in discrete Markov modelling.
* Provides optimised code that may be ported into other applications and workflows.

The work in this package was started at the Health Economic 2019 hackathon hosted at Imperial. Much of this work is based on that developed by the [hermes6](https://github.com/HealthEconomicsHackathon/hermes6) team. The original reference approach was developed by [Howard Thom](https://orcid.org/0000-0001-8576-5552).

## Installation

Install the CRAN version (when released):

```{r cran-installation, eval = FALSE}
install.packages("SpeedyMarkov")
```

Alternatively install the development version from GitHub:

```{r gh-installation, eval = FALSE}
# install.packages("remotes")
remotes::install_github("seabbs/SpeedyMarkov")
```

## Documentation

[![Documentation](https://img.shields.io/badge/Documentation-release-lightgrey.svg?style=flat)](https://www.samabbott.co.uk/SpeedyMarkov/)
[![Development documentation](https://img.shields.io/badge/Documentation-development-lightblue.svg?style=flat)](https://www.samabbott.co.uk/SpeedyMarkov/dev)
[![Functions](https://img.shields.io/badge/Documentation-functions-orange.svg?style=flat)](https://www.samabbott.co.uk/SpeedyMarkov/reference/index.html)

## Testing

[![Travis-CI Build Status](https://travis-ci.org/seabbs/SpeedyMarkov.svg?branch=master)](https://travis-ci.org/seabbs/SpeedyMarkov)
[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/seabbs/SpeedyMarkov?branch=master&svg=true)](https://ci.appveyor.com/project/seabbs/SpeedyMarkov)
[![Coverage Status](https://img.shields.io/codecov/c/github/seabbs/SpeedyMarkov/master.svg)](https://codecov.io/github/seabbs/SpeedyMarkov?branch=master)

## Quick start

The first step is to specify a Markov model in the format specified by `SpeedyMarkov`. An example framework is `example_two_state_markov` which is a two state Markov model that compares an intervention to a baseline. See `?example_two_state_markov` for more details.

```{r}
SpeedyMarkov::example_two_state_markov()
```

Once a model has been specified a cost effectiveness analysis can run using the following function call.

```{r}
SpeedyMarkov::markov_ce_pipeline(SpeedyMarkov::example_two_state_markov(),
duration = 100, samples = 10, discount = 1.035,
baseline = 1, willingness_to_pay_thresold = 20000)
```

See [Functions](https://www.samabbott.co.uk/SpeedyMarkov/reference/index.html) for more details of the functions included in the package (`markov_ce_pipeline` for example wraps multiple modular - user customisable - functions). The package vignettes also provide more detail.

## Contributing

File an issue [here](https://github.com/seabbs/SpeedyMarkov/issues) if there is a feature that you think is missing from the package, or better yet submit a pull request.

Please note that the `SpeedyMarkov` project is released with a [Contributor Code of Conduct](https://github.com/seabbs/SpeedyMarkov/blob/master/.github/CODE_OF_CONDUCT.md). By contributing to this project, you agree to abide by its terms.

## Citing

If using `SpeedyMarkov` please consider citing the package in the relevant work. Citation information can be generated in R using the following (after installing the package),

```{r}
citation("SpeedyMarkov")
```

## Docker

This package has been developed in docker based on the `rocker/tidyverse` image, to access the development environment enter the following at the command line (with an active docker daemon running),

```{bash, eval = FALSE}
docker pull seabbs/SpeedyMarkov
docker run -d -p 8787:8787 -e USER=SpeedyMarkov -e PASSWORD=SpeedyMarkov --name SpeedyMarkov seabbs/speedymarkov
```

The rstudio client can be accessed on port `8787` at `localhost` (or your machines ip). The default username is ceplotr and the default password is SpeedyMarkov. Alternatively, access the development environment via [binder](https://mybinder.org/v2/gh/seabbs/SpeedyMarkov/master?urlpath=rstudio).