KF-PLS: Streaming PLS with Kalman-style updates
FrΓ©dΓ©ric Bertrand
Cedric, Cnam, Parisfrederic.bertrand@lecnam.net
2025-11-18
Source:vignettes/kf-pls.Rmd
kf-pls.RmdIdea
We maintain exponentially-weighted cross-products over mini-batches of rows, where is a forgetting factor and a small process-noise ridge. At any time we extract latent components via SIMPLS on . This is stable, fast, and matches a Kalman-style tracking of slowly varying covariance structure.
API
fit <- pls_fit(X, Y, ncomp = 3,
backend = "arma" # or "bigmem"
,algorithm = "kf_pls",
scores = "r",
tol = 1e-8,
# tuning:
# options(bigPLSR.kf.lambda = 0.995,
# bigPLSR.kf.q_proc = 1e-6)
)On bigmem, cross-products are streamed in row chunks; scores are produced via the packageβs chunked score kernel.