Implements methods for multiple canonical correlation analysis (CCA) for more than two data blocks,
with a focus on multivariate repeated measures and functional data. The package provides two approaches:
(i) multiple kernel CCA, which embeds each data block into a reproducing kernel Hilbert space to capture
nonlinear dependencies, and (ii) multiple functional CCA, which represents repeated measurements as smooth
functions and performs analysis in a Hilbert space framework. Both approaches are formulated via covariance
operators and solved as generalized eigenvalue problems with regularization to ensure numerical stability.
The methods allow estimation of canonical variables, generalized canonical correlations, and low-dimensional
representations for exploratory analysis and visualization of dependence structures across multiple feature sets.
The implementation follows the framework developed in Górecki, Krzyśko, Gnettner and Kokoszka (2025)
multiCCA implements multiple canonical correlation analysis (MCCA) for
multi-block data. The package provides tools for
The implementation is designed for multi-view data integration, where multiple sets of features are observed for the same objects.
You can install the development version from GitHub:
# install.packages("pak")
pak::pak("Halmaris/multiCCA")
Generate a simple multi-block dataset:
library(multiCCA)
set.seed(1)
n <- 20
T_len <- 10
X <- list(
lapply(seq_len(n), function(i) matrix(rnorm(T_len * 3), T_len, 3)),
lapply(seq_len(n), function(i) matrix(rnorm(T_len * 2), T_len, 2))
)
Fit kernel MCCA:
fit <- mcca_fit(
method = "kernel",
X = X,
ncomp = 2
)
fit
Predict canonical component scores:
scores <- predict(fit, X)
head(scores[[1]])
Plot canonical components for one block:
plot_mcca_scatter(fit)
Compare canonical components between blocks:
plot_mcca_pair(fit)
Evaluate clusterability of canonical representations using the Hopkins statistic:
H <- hopkins_vs_components(fit, max_comp = 2)
plot_hopkins_curve(H)
Tomasz Górecki
Adam Mickiewicz University, Poznań