Skip to content
An R package for performing patient level prediction in an observational database in the OMOP Common Data Model.
R Python C++ Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates Mar 4, 2019
.settings Nesting the vignette study in a diabetes population to reduce size. S… Apr 6, 2015
R minor edits Aug 5, 2019
data New simulation profile, with two outcomes instead of one, for better … Nov 5, 2015
demo updated copywrite year to 2019 Feb 26, 2019
docs updated website and vignette May 30, 2019
extras updated copywrite year to 2019 Feb 26, 2019
inst updated website and vignette May 30, 2019
man-roxygen Auto code formatting Feb 26, 2016
man fixed conflict May 30, 2019
src updated copywrite year to 2019 Feb 26, 2019
tests website update Apr 24, 2019
vignettes updated website and vignette May 30, 2019
.Rbuildignore Adding auto-tagging Mar 19, 2018
.cproject Nesting the vignette study in a diabetes population to reduce size. S… Apr 6, 2015
.gitattributes silly windoz cr/lf issues Jul 23, 2015
.gitignore - merged Logger feature in Jul 26, 2016
.project Nesting the vignette study in a diabetes population to reduce size. S… Apr 6, 2015
.travis.yml Bringing back codecov in Travis to address issue #127 Apr 11, 2019
DESCRIPTION minor edits Aug 5, 2019
NAMESPACE fixed conflict May 30, 2019
NEWS.md
PatientLevelPrediction.Rproj Fixed some more check problems, including Rcpp's new issue with funct… Sep 9, 2017
README.md updated copywrite year to 2019 Feb 26, 2019
_pkgdown.yml updated website Mar 9, 2019
compare_versions Adding auto-tagging Mar 19, 2018
deploy.sh better drat commit message Feb 10, 2016

README.md

PatientLevelPrediction

Build Status codecov.io

PatientLevelPrediction is part of the OHDSI Methods Library.

Introduction

PatientLevelPrediction is an R package for building and validating patient-level predictive models using data in the OMOP Common Data Model format.

Reps JM, Schuemie MJ, Suchard MA, Ryan PB, Rijnbeek PR. Design and implementation of a standardized framework to generate and evaluate patient-level prediction models using observational healthcare data. J Am Med Inform Assoc. 2018;25(8):969-975.

The figure below illustrates the prediction problem we address. Among a population at risk, we aim to predict which patients at a defined moment in time (t = 0) will experience some outcome during a time-at-risk. Prediction is done using only information about the patients in an observation window prior to that moment in time.

To define a prediction problem we have to define t=0 by a Target Cohort (T), the outcome we like to predict by an outcome cohort (O), and the time-at-risk (TAR). Furthermore, we have to make design choices for the model we like to develop, and determine the observational datasets to perform internal and external validation. This conceptual framework works for all type of prediction problems, for example those presented below (T=green, O=red).

Features

  • Takes one or more target cohorts (Ts) and one or more outcome cohorts (Os) and develops and validates models for all T and O combinations.
  • Allows for multiple prediction design options.
  • Extracts the necessary data from a database in OMOP Common Data Model format for multiple covariate settings.
  • Uses a large set of covariates including for example all drugs, diagnoses, procedures, as well as age, comorbidity indexes, and custom covariates.
  • Includes a large number of state-of-the-art machine learning algorithms that can be used to develop predictive models, including Regularized logistic regression, Random forest, Gradient boosting machines, Decision tree, Naive Bayes, K-nearest neighbours, Neural network and Deep learning (Convolutional neural networks, Recurrent neural network and Deep nets).
  • Allows you to add custom algorithms.
  • Contains functionality to externally validate models.
  • Includes functions to plot and explore model performance (ROC + Calibration).
  • Includes a shiny app to interactively view and explore results.
  • Implements existing models.
  • Builds ensemble models.
  • Builds Deep Learning models.
  • Generates learning curves.
  • Automatically creates a word document containing all the study results.

Screenshots

Calibration plot ROC plot
Calibration Plot ROC Plot

Demo of the Shiny Apps can be found here:

Technology

PatientLevelPrediction is an R package, with some functions implemented in C++ and python.

System Requirements

Requires R (version 3.3.0 or higher). Installation on Windows requires RTools. Libraries used in PatientLevelPrediction require Java and Python.

The python installation is required for some of the machine learning algorithms. We advise to install Python 3.7 using Anaconda (https://www.continuum.io/downloads).

Dependencies

  • Cyclops
  • DatabaseConnector
  • SqlRender
  • FeatureExtraction

Getting Started

  • To install the package please read the Package Installation guide

  • Have a look at the video below for an extensive demo of the package.

Video Vignette PLP Package

Please read the main vignette for the package:

In addition we have created vignettes that describe advanced functionality in more detail:

Package manual: PatientLevelPrediction.pdf

Getting Involved

We like to get involved in the development of this package through pull requests to our development branch.

License

PatientLevelPrediction is licensed under Apache License 2.0

Development

PatientLevelPrediction is being developed in R Studio.

Beta

Acknowledgements

  • The package is maintained by Jenna Reps and Peter Rijnbeek and has been developed with major contributions from Martijn Schuemie, Patrick Ryan, and Marc Suchard.
  • We like to thank the following persons for their contributions to the package: Seng Chan You, Ross Williams, Henrik John, Xiaoyong Pan, James Wiggins.
  • This project is supported in part through the National Science Foundation grant IIS 1251151.
You can’t perform that action at this time.