Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time



pyiva is an implementation of the independent vector analysis (IVA) algorithm using a multivariate Laplace prior. It uses the same score function as found in the original IVA paper. IVA is an extension of independent component analysis (ICA) to multiple statistically-dependent datasets, and can be used for dimensionality reduction and data fusion.

Primary author: Austin Kim (austinkim1004 at Code maintainer: Zois Boukouvalas (zoisb at Edited and packaged by Daniel C. Elton

This code is based on the Matlab code iva_laplace.m by Matthew Anderson (matt.anderson at


to install, run python install

Example usage

    from pyiva.iva_laplace import iva_laplace

    W = iva_laplace(X)

Documentation on iva_laplace()

Required arguments:

  • X : numpy array of shape (N, K, T) containing data observations from K data sets. Here X{k}=A{k}S{k}, where A{k} is an N x N unknown invertible mixing matrix and S{k} is N x T matrix with the nth row corresponding to T samples of the nth source in the kth dataset. For IVA it is assumed that each source is statistically independent of all the sources within a dataset and exactly dependent on at most one source in each of the other datasets. The data, X, is a 3-dimensional matrix of dimensions N x K x T. The latter enforces the assumption of an equal number of samples in each dataset.

Optional keyword arguments:

  • A : [], true mixing matrices A, automatically sets verbose
  • whiten : Boolean, default = True
  • verbose : Boolean, default = False : enables print statements
  • W_init : [], ... % initial estimates for demixing matrices in W
  • maxIter : 2*512, ... % max number of iterations
  • terminationCriterion : string, default = 'ChangeInCost' : criterion for terminating iterations, either 'ChangeInCost' or 'ChangeInW'
  • termThreshold : float, default = 1e-6, : termination threshold
  • alpha0 : float, default = 0.1 : initial step size scaling


  • W : the estimated demixing matrices so that ideally W{k}A{k} = P*D{k} where P is any arbitrary permutation matrix and D{k} is any diagonal invertible (scaling) matrix. Note P is common to all datasets; this is to indicate that the local permutation ambiguity between dependent sources across datasets should ideally be resolved by IVA.

During runtime the following are reported:

  • cost - the cost for each iteration
  • isi - joint inter-symbol-interference is available if user supplies true mixing matrices for computing a performance metric


If you use pyIVA, please cite

author = {Zois Boukouvalas and Austin Kim and Daniel C. Elton},
title = {{PyIVA}},
howpublished = {\url{}}

author = {{Boukouvalas}, Z. and {Elton}, D.~C. and {Chung}, P.~W. and {Fuge}, M.~D.},
title = "{Independent Vector Analysis for Data Fusion Prior to Molecular Property Prediction with Machine Learning}",
journal = {ArXiv e-prints},
archivePrefix = "arXiv",
eprint = {1811.00628},
primaryClass = "stat.ML",
keywords = {Statistics - Machine Learning, Condensed Matter - Materials Science, Computer Science - Machine Learning},
year = 2018,
month = nov,
adsurl = {},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}


[1] T. Kim, I. Lee, & T.-W. Lee, "Independent Vector Analysis: Definition and Algorithms," Proc. of 40th Asilomar Conference on Signals, Systems, and Computers, 2006, 1393-1396

[2] T. Kim, T. Eltoft, & T.-W. Lee, "Independent Vector Analysis: an extension of ICA to multivariate components," Lecture Notes in Computer Science: Independent Component Analysis and Blind Signal Separation, Independent Component Analysis and Blind Signal Separation, Springer Berlin / Heidelberg, 2006, 3889, 165-172

[3] T. Kim, H. T. Attias, S.-Y. Lee, & T.-W. Lee, "Blind Source Separation Exploiting Higher-Order Frequency Dependencies," IEEE Trans. Audio Speech Lang. Process., 2007, 15, 70-79


Implementation of the independent vector analysis (IVA) algorithm using a multivariate Laplace prior




No releases published


No packages published


You can’t perform that action at this time.