pub fn multi_cca<T: BixverseFloat>(
x: &[MatRef<'_, T>],
params: Option<MultiCcaParams<T>>,
) -> Result<MultiCcaResult<T>, MethodsErrors>Expand description
Sparse multiple canonical correlation analysis.
Every block must have the same number of rows and at least two columns. Components are extracted sequentially; each sweep cycles the blocks in order, so the block order is part of the specification rather than an implementation detail.
Initialised from the leading right singular vectors of each block. Sign
conventions for singular vectors are arbitrary and differ between LAPACK
and faer, and the objective is not invariant to flipping a single
block’s weights, only to flipping all of them at once. A deterministic
convention is applied here (largest-magnitude entry made positive) so
repeated runs agree; a run of PMA on the same data may still land on a
different local optimum.
§Params
x- TheKblocks, eachn x p_k, rows aligned across blocksparams- Optional MultiCcaParams; MultiCcaParams::default otherwise
§Returns
The MultiCcaResult, or CoreErrors::InvalidArgument for fewer than
two blocks, a block with fewer than two columns, or an L1 bound outside
[1, sqrt(p_k)]; CoreErrors::ShapeMismatch when the row counts
disagree.
§References
Witten & Tibshirani, Statistical Applications in Genetics and Molecular Biology, 2009