PDL::LinICA -- Linear Independent Component Analysis (ICA) for PerlDL
use PDL::LinICA; $ica = new PDL::LinICA($data,4, # 4th degree linear ica. { Accuracy => 0.01 }); # "scale" of data, for minimization $newdata = $ica->get_newdata(); # Get transformed data print $ica->check_independence(5,3,4); # How independent are dimensions # 3 and 4 to 5th degree? $nodata = $ica->transform($otherdata); # Transform some other data. undef $ica; # Make sure nothing lingers.
This package is not ready for prime-time yet.
This package implements the linear independent component analysis (ICA) algorithm described in [1]. The package first does a full PCA analysis by finding the eigenvalues and -vectors of the covariance matrix and transforming the data so that its covariance matrix becomes diagonal.
After this a rotation matrix parametrized by an antisymmetric matrix is optimized to yield the lowest values of diagonal cumulants.
The package includes some functions to test the resulting alleged statistical independence between any components of your choosing. This is very useful for data where you really cannot calculate the full off-diagonal moment tensor.
The available options are
The data is already averaged. This is most useful when $data is HUGE and you want to avoid extra copies at all costs.
A number that gives an approximate scale on how accurate the ICA is. Currently not defined too well.
Deco & Obradovic: Information-theoretic ... NN. XXX
Copyright (C) Tuomas J. Lukka 1997.
To install PDL, copy and paste the appropriate command in to your terminal.
cpanm
cpanm PDL
CPAN shell
perl -MCPAN -e shell install PDL
For more information on module installation, please visit the detailed CPAN module installation guide.