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 References
These 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
Notices
These 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
|