Skip to main content

Multiset Canonical Correlation Analysis

Python implementation of multiset Canonical Correlation Analysis (mCCA) methods: sumcor, maxvar, minvar, ssqcor, genvar.

Installing multiset_canonical_correlation_analysis

The only pre-requisite is to have Python 3 (>= version 3.11) installed. The mCCA package can be installed with

pip install multiset_canonical_correlation_analysis

Required third party packages will automatically be installed.

Quickstart

First, the imports:

import numpy as np
from multiset_canonical_correlation_analysis import mcca, simulations
from independent_vector_analysis.helpers_iva import _bss_isi

Create $K=100$ datasets with $T=10000$ samples of $N=5$ source components in each dataset. The $N$ SCVs all have a different maximum eigenvalue.

N = 5
K = 100
T = 10000
alpha = 1 - (K - np.array([10, 15, 20, 25, 30])) / (K - 1)
scv_cov = simulations.scv_covs_with_rank_R(N, K, 1, alpha=alpha, beta=0.0)
X, A, S = simulations.generate_datasets_from_covariance_matrices(scv_cov, T)

where

  • S : true sources of dimensions N x T x K
  • A : mixing matrix of dimensions N x N x K
  • X : observed datasets of dimensions N x T x K

Apply mCCA-genvar to find the canonical variables.

transform, U = mcca.mcca(X, 'genvar')

where

  • transform : transformation matrix of dimensions N x N x K
  • U : canonical variables of dimensions N x T x K, with U[:,:,k] = transform[:,:,k].T @ X[:,:,k]

Calculate the jISI to evaluate JBSS performance.

W = np.moveaxis(transform, [0, 1, 2], [1, 0, 2])
print(f'joint_isi genvar: {_bss_isi(W, A)[1]}')

A jISI smaller than 0.05 means successful JBSS, i.e., the canonical variables are permuted and scaled versions of the true sources.

Contact

In case of questions, suggestions, problems etc., please send an email to isabell.lehmann@sst.upb.de, or open an issue here on Github.

Citing

If you use this package in an academic paper, please cite [1].

@article{Lehmann2025,
  title={A Comprehensive Guide to Multiset Canonical Correlation Analysis and its Application to Joint Blind Source Separation},
  author={Lehmann, Isabell and Gabrielson, Ben and Hasija, Tanuj and Adali, T{\"u}lay},
  journal={tba},
  year={tba},
  publisher={tba}
}

[1] I. Lehmann, B. Gabrielson, et al., A Comprehensive Guide to Multiset Canonical Correlation Analysis and its Application to Joint Blind Source Separation, submitted in 2025

Metadata

Release files for multiset-canonical-correlation-analysis 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for multiset-canonical-correlation-analysis 0.0.2
File Size Uploaded
multiset_canonical_correlation_analysis-0.0.2.tar.gz 14.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for multiset-canonical-correlation-analysis 0.0.2
File Interpreter ABI Platform
multiset_canonical_correlation_analysis-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 30.9 kB

Release files / multiset_canonical_correlation_analysis-0.0.2.tar.gz

Download URL multiset_canonical_correlation_analysis-0.0.2.tar.gz
Size 14.7 kB
Tags Source
SHA-256 checksum
How to use checksums
fdcd0519b9bd56e7d6741bc1893e8dd3199ea68912ad838d34ce5e6a5237da23
BLAKE2b-256 checksum
How to use checksums
7a96a628f4c14cf4230a712a9d9428da079088b89c8035f1c532aa173e14d554
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / multiset_canonical_correlation_analysis-0.0.2-py3-none-any.whl

Download URL multiset_canonical_correlation_analysis-0.0.2-py3-none-any.whl
Size 16.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1b4dc7cf8a3296ed7a6f8ee416fddd0810a53e01e6d4e9b156193edd000763aa
BLAKE2b-256 checksum
How to use checksums
c9d8e357dad3f855645e260c228bc8bf2c36b0d74e233a3ba59e9f31dbc298b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page