orthoDr: Semiparametric Dimension Reduction via Orthogonality Constrained Optimization

orthoDr is a package in R that solves dimension reduction problems using orthogonality constrained optimization approach. The package serves as a unified framework for many regression and survival analysis dimension reduction models that utilize semiparametric estimating equations. The main computational machinery of orthoDr is a first-order algorithm developed by Wen and Yin (2012) for optimization within the Stiefel manifold. We implement the algorithm through Rcpp and OpenMP for fast computation. In addition, we developed a general-purpose solver for such constrained problems with user-specified objective functions, which works as a drop-in version of optim(). The package also serves as a platform for future methodology developments along this line of work.

Ruoqing Zhu , Jiyang Zhang , Ruilin Zhao , Peng Xu , Wenzhuo Zhou , Xin Zhang

Supplementary materials

Supplementary materials are available in addition to this article. It can be downloaded at RJ-2019-006.zip

CRAN packages used

orthoDr, Rcpp, RcppArmadillo, ManifoldOpthm

CRAN Task Views implied by cited packages

NumericalMathematics, HighPerformanceComputing


Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".


For attribution, please cite this work as

Zhu, et al., "orthoDr: Semiparametric Dimension Reduction via Orthogonality Constrained Optimization", The R Journal, 2019

BibTeX citation

  author = {Zhu, Ruoqing and Zhang, Jiyang and Zhao, Ruilin and Xu, Peng and Zhou, Wenzhuo and Zhang, Xin},
  title = {orthoDr: Semiparametric Dimension Reduction via Orthogonality Constrained Optimization},
  journal = {The R Journal},
  year = {2019},
  note = {https://doi.org/10.32614/RJ-2019-006},
  doi = {10.32614/RJ-2019-006},
  volume = {11},
  issue = {2},
  issn = {2073-4859},
  pages = {24-37}