Cyclic Coordinate Descent for Logistic, Poisson and Survival Analysis

This model fitting tool incorporates cyclic coordinate descent and majorization-minimization approaches to fit a variety of regression models found in large-scale observational healthcare data. Implementations focus on computational optimization and fine-scale parallelization to yield efficient inference in massive datasets. Please see: Suchard, Simpson, Zorych, Ryan and Madigan (2013) .

Build Status CRAN_Status_Badge CRAN_Status_Badge

Cyclops is part of the OHDSI Methods Library.


Cyclops (Cyclic coordinate descent for logistic, Poisson and survival analysis) is an R package for performing large scale regularized regressions.


  • Regression of very large problems: up to millions of observations, millions of variables
  • Supports (conditional) logistic regression, (conditional) Poisson regression, as well as (conditional) Cox regression
  • Uses a sparse representation of the independent variables when appropriate
  • Supports using no prior, a normal prior or a Laplace prior
  • Supports automatic selection of hyperparameter through cross-validation
  • Efficient estimation of confidence intervals for a single variable using a profile-likelihood for that variable


  cyclopsData <- createCyclopsDataFrame(formula)
  cyclopsFit <- fitCyclopsModel(cyclopsData)


Cyclops in an R package, with most functionality implemented in C++. Cyclops uses cyclic coordinate descent to optimize the likelihood function, which makes use of the sparse nature of the data.

System Requirements

Requires R (version 3.1.0 or higher). Compilation on Windows requires RTools >= 3.4.


In R, to install the latest stable version, install from CRAN:


To install the latest development version, install from GitHub. Note that this will require RTools to be installed.


User Documentation



Cyclops is licensed under Apache License 2.0. Cyclops contains the TinyThread libray.

The TinyThread library is licensed under the zlib/libpng license as described here.


Cyclops is being developed in R Studio.



  • This project is supported in part through the National Science Foundation grants IIS 1251151 and DMS 1264153.


Cyclops v2.0.2


  1. use RNGversion("3.5.0") in unit-tests to reproduce old RNG behavior
  2. fix prior-type checks when specifying multiple types

Cyclops 2.0.1


  1. patch two memory leaks in ModelData.cpp and ModelSpecifics.hpp

Cyclops 2.0.0


  1. simplify internal transformation-reductions loops
  2. implemented non-negative weights
  3. allow for run-time selection of 32-/64-bit reals
  4. remove dependence on GNUmake
  5. temporarily remove dependence on RcppParallel (until TBB is again R-compliant)

Cyclops 1.3.4


  1. fix undeclared dependencies in unit-tests: MASS and microbenchmarks
  2. fix issues with ATLAS compilation
  3. add contexts to testthat files
  4. fix ASAN errors in AbstractModelSpecifics

Cyclops 1.3.3


  1. fix testthat expected error message

Cyclops 1.3.2


  1. explicitly includes <complex> header, needed for R 3.5 builds
  2. remove pragma statements used to quiet RcppEigen and RcppParallel

Cyclops 1.3.1


  1. fixes covariate indices returned from .checkCovariates when excluding covariates from regularization

Cyclops 1.3.0


  1. implements specialized priors through callbacks for use, for example, in the BrokenAdaptiveRidge package to provide L0-based model selection
  2. implements specialized control through callbacks for use, for example, auto-and-grid-based cross-validation hyperparameter searches
  3. removes src/boost that clashes with BH 1.65.0

Cyclops 1.2.3


  1. fixed predict error with with size == 0

Cyclops 1.2.2


  1. fixed solaris build errors
  2. added compatibility for C++14 (make_unique)
  3. fixed multiple ASan warnings

Cyclops 1.2.0

Changes: initial submission to CRAN

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


3.1.2 by Marc A. Suchard, 7 months ago

Report a bug at

Browse source code at

Authors: Marc A. Suchard [aut, cre] , Martijn J. Schuemie [aut] , Trevor R. Shaddox [aut] , Yuxi Tian [aut] , Jianxiao Yang [aut] , Eric Kawaguchi [aut] , Sushil Mittal [ctb] , Observational Health Data Sciences and Informatics [cph] , Marcus Geelnard [cph, ctb] (provided the TinyThread library) , Rutgers University [cph, ctb] (provided the HParSearch routine) , R Development Core Team [cph, ctb] (provided the ZeroIn routine)

Documentation:   PDF Manual  

Task views: Survival Analysis

Apache License 2.0 license

Imports rlang, Matrix, Rcpp, Andromeda, dplyr, methods, survival, bit64

Suggests testthat, MASS, gnm, ggplot2, microbenchmark, cmprsk

Linking to Rcpp, BH, RcppEigen

Imported by EvidenceSynthesis.

Suggested by EmpiricalCalibration.

See at CRAN