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

CRAN_Status_Badge CRAN_Status_Badge


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.


  • 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 v2.0.1 (Not yet released)

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

Cyclops v2.0.0 (Release date: 2018-09-18)

Changes: 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 v1.3.4 (Release date: 2018-06-11)

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

Changes: 1. fix testthat expected error message

Cyclops v1.3.2 (Release date: 2018-05-04)

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

Cyclops v1.3.1 (Not released)

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

Cyclops v1.3.0 (Release date: 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.


2.0.1 by Marc A. Suchard, 4 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] , 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, methods, survival, MASS

Suggests testthat, gnm, ggplot2, microbenchmark

Linking to Rcpp, BH, RcppEigen

See at CRAN