MILCA and SNICA are Independent Component Analysis (ICA)-algorithms which use an accurate Mutual Information (MI) estimator to find the least dependent components under a linear transformation (SNICA uses non-negativity constraint). The MI estimator is data efficient, adaptive and has minimal bias [3]. The direct access to the dependency between the components can be used not only as a contrast function to find the most independent components but also in performance tests, reliability tests and for cluster analysis (when the signals are not independent). We provide here algorithms for performing ICA (or rather LCA) and these tests. Furthermore, we extended all these approaches to use additional time structure information which is often contained in physical data. For an overview see [1].
Have a look at the MILCA demonstration page with audio and image examples. MILCA and SNICA were recently applied to spectroscopic analysis of complex chemical mixtures [7]. This web page contains data used in this paper along with simple matlab codes to reproduce paper figures.
Along with the basic MILCA, the package contains also the extended version which use time structure (MILCAdelay), reliability tests (ICATests), a clustering algorithm (MIClustering), and mutual information estimators for testing independences of arbitrary signals (MIhigherdim and MIxnyn). Specifically:
MILCA (standard ICA) - uses only the instantaneous information in the signal, optimal for signals with white spectra (no time structure) Input: original (mixed) components Output: least dependent components, de-mixing matrix
MILCAdelay - uses in addition any time structure in the signals. Can separate also two Gaussians with different spectra [1]. Input: original (mixed) components Output: least dependent components, de-mixing matrix
ICATests (Reliability Tests)- can be used for any ICA-output, not necessarily from MILCA [2,1] Input: any ICA-output Output: dependency matrix, variability matrix, square array of 2-d plots showing MI vs. rotation angle from all two-channel combinations
MIClustering - hierarchical clustering algorithm based on the grouping property of MI [4,1] Input: any ICA-output Output: Dendrogram of the dependency
MIxnyn - calculates mutual information between two input channels of arbitrary dimensions [3,1] Input: multidimensional input signal Output: MI value
MIhigherdim - calculates mutual information (redundancy) between any number of one-dimensional input channels [3,1] Input: multidimensional input signal Output: MI value
SNICA - "Stochastic Non-negative Independent Component Analysis" algorithm. This is a new Monte Carlo approach to blind separation of non-negative well-grounded sources from their linear mixtures based on a constrained search for statistically least-dependent components. SNICA is particularly suited for multivariate spectral curve resolution. You can download the zip file with the SNICA source codes (along with the test example) here. If you have questions or comments, feel free to email to Sergey Astakhov.
To reduce computational time, all MATLAB functions call executables which have to be generated from the included C source code. For those who are not so familiar with C, here is a short description how to generate the executables. The C-executables are autonomous (MATLAB is not required). Run a program without arguments to get help. DOWNLOAD - ZIP-file with all C-Source-Codes, m-files (including tutorial) and data DOWNLOAD windows version produced with the free DJGPP (gcc) Compiler (freely available Borland C compiler can be used as well) Main ReferencesThese are the main references if you want to publish results obtained by our codes: Harald Stögbauer, Alexander Kraskov, Sergey A. Astakhov, and Peter Grassberger , Phys. Rev. E 70 (6) 066123, 2004, Least Dependent Component Analysis Based on Mutual Information (preprint) Harald Stögbauer, Alexander Kraskov, Sergey A. Astakhov, and Peter Grassberger , Phys. Rev. E 70 (6) 066123, 2004, Harald Stögbauer, Ralph G. Andrzejak, Alexander Kraskov and Peter Grassberger, INDEPENDENT COMPONENT ANALYSIS AND BLIND SIGNAL SEPARATION LECTURE NOTES IN COMPUTER SCIENCE 3195: 209-216, 2004 Reliability of ICA estimates with mutual information Harald Stögbauer, Ralph G. Andrzejak, Alexander Kraskov and Peter Grassberger, INDEPENDENT COMPONENT ANALYSIS AND BLIND SIGNAL SEPARATION LECTURE NOTES IN COMPUTER SCIENCE 3195: 209-216, 2004 A. Kraskov, H. Stögbauer, and P. Grassberger, Phys. Rev. E 69 (6) 066138, 2004 Estimating mutual information (preprint) A. Kraskov, H. Stögbauer, and P. Grassberger, Phys. Rev. E 69 (6) 066138, 2004 A. Kraskov, H. Stögbauer, R. G. Andrzejak, and P. Grassberger, EUROPHYSICS LETTERS 70 (2): 278-284, 2005 Hierarchical clustering using mutual information (preprint) A. Kraskov, H. Stögbauer, R. G. Andrzejak, and P. Grassberger, EUROPHYSICS LETTERS 70 (2): 278-284, 2005 Sergey A. Astakhov, Harald Stögbauer, Alexander Kraskov, and Peter Grassberger , Spectral Mixture Decomposition by Least Dependent Component Analysis (preprint) Sergey A. Astakhov, Harald Stögbauer, Alexander Kraskov, and Peter Grassberger , Sergey A. Astakhov, Alexander Kraskov, Harald Stögbauer, and P. Grassberger , ANALYTICAL CHEMISTRY 2006; 78(5); 1620-1627 Monte Carlo Algorithm for Least Dependent Non-Negative Mixture Decomposition (preprint)Sergey A. Astakhov, Alexander Kraskov, Harald Stögbauer, and P. Grassberger , ANALYTICAL CHEMISTRY 2006; 78(5); 1620-1627 Yulia B. Monakhova, Sergey A. Astakhov, Alexander Kraskov, and Svetlana P. Mushtakova (2010), Chemometrics and Intelligent Laboratory Systems, 103, 108-115 Independent components in spectroscopic analysis of complex mixture (preprint)Yulia B. Monakhova, Sergey A. Astakhov, Alexander Kraskov, and Svetlana P. Mushtakova (2010), Chemometrics and Intelligent Laboratory Systems, 103, 108-115
NoticesThese programs and packages are free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
These programs are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You will receive a copy of the GNU General Public License enclosed in the downloaded archive. See also http://www.gnu.org/licences/. © Sergey Astakhov Peter Grassberger Alexander Kraskov Harald Stögbauer |