The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

PDL::LinICA -- Linear Independent Component Analysis (ICA) for PerlDL

SYNOPSIS

        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.

WARNING

This package is not ready for prime-time yet.

DESCRIPTION

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

Averaged

The data is already averaged. This is most useful when $data is HUGE and you want to avoid extra copies at all costs.

Accuracy

A number that gives an approximate scale on how accurate the ICA is. Currently not defined too well.

REFERENCES

Deco & Obradovic: Information-theoretic ... NN. XXX

AUTHOR

Copyright (C) Tuomas J. Lukka 1997.