Changelog
msPCA 0.5.0
-
mspca()andtpm()now take two possible inputs: the covariance/correlation matrix or the data matrix directly. In practice, the functions take single generic argumentMtogether with atype = c("Sigma", "X")selector.type = "Sigma"(the default) treatsMas a covariance/correlation matrix (p x p);type = "X"treatsMas a raw data matrix (n observations x p variables). The"Sigma"default preserves the behaviour of existing matrix-based calls. - The raw-data path applies the algorithm to the data directly: each product
Sigma %*% betais evaluated ast(X) %*% (X %*% beta) / (n - 1)at cost O(np), and the p x p matrix is never materialized. This substantially improves scalability whenn << p. The covariance back-end was refactored behind a covariance-operator abstraction (DenseOp/GramOp) shared by both input modes. - Added preprocessing controls for
type = "X":center,scale(covariance vs correlation), anddivisor(“n-1” or “n”). - Added validation for both input modes: a
Sigmainput is checked for squareness, symmetry and positive semidefiniteness (checkPSD,symTolerance,psdTolerance); anXinput is checked for finiteness, dimensions and (when scaling) zero-variance columns. -
mspca()results now includevariance_explained(per-PC) andtotal_variance;X-mode results also recordinputType,center,scale,divisor,nObsandp. -
mspca()andtpm()now return S3 objects of class"mspca"and"tpm"respectively, enabling use of standard R generics. - Added
print.mspca(): S3 print method displaying the sparse loading matrix restricted to the union of active variables, the percentage of variance explained per PC, and the number of non-zero loadings. Replaces the removedprint_mspca(). - Added
summary.mspca(): produces a per-PC table of sparsity, variance explained, FVE, and cumulative FVE, followed by the full pairwise feasibility violation matrix.
msPCA 0.4.1
CRAN release: 2026-06-12
- Standardized function man page titles to consistent title style.
- Removed unnecessary
library(datasets)calls from examples while keeping explicitdatasets::mtcarsusage, and addeddatasetstoSuggeststo align example dependencies with CRAN guidance. - Improved efficiency and clarity of R code
- Added a vignette
msPCA 0.4.0
CRAN release: 2026-05-22
- Renamed hyperparameters controlling truncated power method restart budgets for clearer and more consistent API naming.
- Documentation polish across function docs and package materials.
- Removed
pairwise_correlation()andorthogonality_violation()and replaced them with a unifiedfeasibility_violation_off()helper for feasibility diagnostics across constraint types.
msPCA 0.3.0
CRAN release: 2026-05-15
- Improved scalability of
mspca()andtpw()through algorithmic and implementation optimizations. - Function
mspca()now accepts a new hyper-parameterminRestartTPMthat limits the number of random restarts for the truncated power method after the first outer iteration - Improved scaling of the penalty parameters for the case of zero-correlation constraints
- Fixed incorrect acronym for truncated power method (TPW <- TPM)
msPCA 0.2.0
CRAN release: 2026-01-12
- Added support for no-correlation constraints between PCs as well as orthogonality constraints. User chooses between orthogonality and uncorrelatedness constraints via the
feasibilityConstraintTypeparameter tomsPCA(). - Renamed return field from
orthogonality_violationtofeasibility_violationto support both constraint types. - Renamed function
feasibility_violation()asorthogonality_violation()to be more explicit - Created function
pairwise_correlation() - Added warning message when no feasible solution is found