Partial Least Squares Regression Models with Big Matrices
Overview
Fast partial least squares (PLS) for dense and out-of-core data. Provides SIMPLS (straightforward implementation of a statistically inspired modification of the PLS method) and NIPALS (non-linear iterative partial least-squares) solvers, plus kernel-style PLS variants ('kernelpls' and 'widekernelpls') with parity to 'pls'. Optimized for 'bigmemory'-backed matrices with streamed cross-products and chunked BLAS (Basic Linear Algebra Subprograms) (XtX/XtY and XXt/YX), optional file-backed score sinks, and deterministic testing helpers. Includes an auto-selection strategy that chooses between XtX SIMPLS, XXt (wide) SIMPLS, and NIPALS based on (n, p) and a configurable memory budget. About the package, Bertrand and Maumy (2023) https://hal.science/hal-05352069, and https://hal.science/hal-05352061 highlighted fitting and cross-validating PLS regression models to big data. For more details about some of the techniques featured in the package, Dayal and MacGregor (1997) doi:10.1002/(SICI)1099-128X(199701)11:1%3C73::AID-CEM435%3E3.0.CO;2-%23, Rosipal & Trejo (2001) https://www.jmlr.org/papers/v2/rosipal01a.html, Tenenhaus, Viennet, and Saporta (2007) doi:10.1016/j.csda.2007.01.004, Rosipal (2004) doi:10.1007/978-3-540-45167-9_17, Song, Wang, and Bai (2024) doi:10.1016/j.chemolab.2024.105238. Includes kernel logistic PLS with 'C++'-accelerated alternating iteratively reweighted least squares (IRLS) updates, streamed reproducing kernel Hilbert space (RKHS) solvers with reusable centering statistics, and bootstrap diagnostics with graphical summaries for coefficients, scores, and cross-validation workflows, alongside dedicated plotting utilities for individuals, variables, ellipses, and biplots. The streaming backend uses far less memory and keeps memory bounded across data sizes. For PLS1, streaming is often fast enough while preserving a small memory footprint; for PLS2 it remains competitive with a bounded footprint. On small problems that fit comfortably in RAM (random-access memory), dense in-memory solvers are slightly faster; the crossover occurs as n or p grow and the Gram/cross-product cost dominates.
- Fixed RKHS score prediction to center cross-kernels with the fitted training statistics. A row's latent score is now invariant to the other rows included in the same prediction batch, including when using the streamed backend.
- Added an optional
filematrixrow-block provider for future streaming backends. It exposes sequential row/column/block reads as dense R matrices without changing existingbigmemorycode paths. - Added experimental
backend = "filematrix"support for NIPALS PLS1/PLS2. The backend uses block-wise file reads and avoids memory-mappedbigmemoryaccess for the predictor/response inputs. Other PLS algorithms remain outside the filematrix backend scope.
From NEWS.md in the release
Install
Health
- OK13 OK2026-09-08
- ERROR12 OK, 1 ERROR2026-09-07
- OK13 OK2026-08-05
- NOTE12 OK, 1 NOTE2026-08-01
- OK13 OK2026-06-09
Show 5 earlier changesHide 5 earlier changes
- NOTE12 OK, 1 NOTE2026-06-08
- OK13 OK2026-05-02
- NOTE11 OK, 3 NOTE2026-04-22
- ERROR10 OK, 3 NOTE, 1 ERROR2026-04-18
- NOTE11 OK, 3 NOTE2026-03-10
Documentation
- Help pages
- 31 (1 internal)includes a package overview page
- Examples that run
- 95%20 run in a plain check · 1 only when donttest examples are enabled (R CMD check --as-cran)
- Exported functions with examples
- 70%
- Documented parameters
- 94%
- Return-value docs
- 100%
- Help pages citing references
- 3%
- Automatic Algorithm Selection in bigPLSR
- Benchmarking bigPLSR against external PLS implementations
- Benchmarking PLS1 Implementations
- Benchmarking PLS2 Implementations
- Bootstrap strategies for bigPLSR
- Cross-validation and Information Criteria in bigPLSR
- Double RKHS PLS (rkhs_xy): Theory and Usage
- External PLS benchmarks for bigPLSR: detailed analysis
- Kernel and Streaming PLS Methods in bigPLSR
- Kernel Logistic PLS
Downloads
Repository
- PRs merged (all time)
- not measured
- Median days to close, 50 most recently updated closed issues
- 7
- Median days to close, 50 most recently updated closed PRs
- not measured
Stars over time
Issues over time
Commits over time
7 development-tooling and community-health practices detected across 4 families in the upstream repository
Checks run against github.com/fbertran/bigplsr on 2026-10-11.
The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel
GitHub Pages site last deployed 2026-09-29
pkgdown site last built 2025-11-18, before release 0.8.0 (2026-09-30)
Dependencies
Installing bigPLSR adds 6 packages (4 with compiled code, 17 MB of source tarballs). Heaviest: BH 14 MB, Rcpp 1.8 MB, RcppArmadillo 1.0 MB.
Code & Tests
Datasets
People & History
Pick two releases to compare their code metrics.
- 0.8.0Latest2026-09-30 · current release · diff ↗ ·
added 2 exports
is_filematrix_object, make_filematrix_row_provider - RR 4.6.0 released · 2026-04-24
- 0.7.22025-12-01
- RR 4.5.0 released · 2025-04-11
Package metadata
- First published
- 2025-12-01
- Total releases
- 2 / 1 yrs
- License
- GPL-3 OSI
- Minimum R
- ≥ 4.0.0
- Bundled data
- 6.4 KB / 1 file
- Download size
- 2.9 MB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("bigPLSR")The package provides a citation file that builds its entry when R runs it. Run citation() to see it.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-18, which the citation names so these numbers can be found later. More on citing and the projects behind them.