Fast and memory efficient methods for truncated singular value decomposition and principal components analysis of large sparse and dense matrices.
Implicitly-restarted Lanczos methods for fast truncated singular value decomposition of sparse and dense matrices (also referred to as partial SVD). IRLBA stands for Augmented, Implicitly Restarted Lanczos Bidiagonalization Algorithm. The package provides the following functions (see help on each for details and examples).
irlba() partial SVD functionssvd() l1-penalized matrix decomposition for sparse PCA (based on Shen and Huang's algorithm)prcomp_irlba() principal components function similar to the prcomp function in stats package for computing the first few principal components of large matricessvdr() alternate partial SVD function based on randomized SVD (see also the rsvd package by N. Benjamin Erichson for an alternative implementation)partial_eigen() a very limited partial eigenvalue decomposition for symmetric matrices (see the RSpectra package for more comprehensive truncated eigenvalue decomposition)Help documentation for each function includes extensive documentation and
examples. Also see the package vignette, vignette("irlba", package="irlba").
An overview web page is here: https://bwlewis.github.io/irlba/.
fastpath option is deprecated.prcomp_irlba() discovered by Xiaojie Qiu, see https://github.com/bwlewis/irlba/issues/25, and other related problems reported in https://github.com/bwlewis/irlba/issues/32.ssvd() found by Alex Poliakov.irlba() bug associated with centering (PCA), see https://github.com/bwlewis/irlba/issues/21.irlba() scaling to conform to scale, see https://github.com/bwlewis/irlba/issues/22.prcomp_irlba() from a suggestion by N. Benjamin Erichson, see https://github.com/bwlewis/irlba/issues/23.svdr() convergence criterion.ssvd()).I will remove partial_eigen() in a future version. As its documentation
states, users are better off using the RSpectra package for eigenvalue
computations (although not generally for singular value computations).