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) .



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). Installation on Windows requires RTools (devtools >= 1.12 required for RTools34, otherwise RTools33 works fine).


  • There are no dependencies.

Getting Started

  1. On Windows, make sure RTools is installed.
  2. In R, use the following commands to download and install Cyclops:
  1. To perform a Cyclops model fit, use the following commands in R:
cyclopsData <- createCyclopsDataFrame(formula)
cyclopsFit <- fitCyclopsModel(cyclopsData)

Getting Involved


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.

Build Status



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


Cyclops v1.3.0 (Release data: 2017-08-23)

Changes: 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 v1.2.3 (Not released)

Changes: 1. fixed predict error with with size == 0

Cyclops v1.2.2 (Release date: 2016-10-06)

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

Cyclops v1.2.0 (Release date: 2016-08-01)

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.


1.3.4 by Marc A. Suchard, 10 days 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], 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 Matrix, Rcpp, bit, ff, ffbase, RcppParallel, methods, survival, MASS

Suggests testthat, gnm, ggplot2, microbenchmark

Linking to Rcpp, BH, RcppEigen, RcppParallel

See at CRAN