Fast Independent Component Analysis
[icasig] = fastica(mixedsig); the rows of icasig contain the estimated independent components. [icasig, A, W] = fastica(mixedsig); outputs the estimated separating matrix W and the corresponding mixing matrix A. [A, W] = fastica(mixedsig); gives only the estimated mixing matrix A and the separating matrix W. [whitesig, WM, DWM] = fastica(mixedsig, 'only', 'white') returns the whitened signals, the whitening matrix (WM) and the dewhitening matrix (DWM). (See also WHITENV.) In FastICA the whitening matrix performs whitening and the reduction of dimension. Dewhitening matrix is the pseudoinverse of whitening matrix. [E, D] = fastica(mixedsig, 'only', 'pca') returns the eigenvector (E) and diagonal eigenvalue (D) matrices containing the selected subspaces.
(string) The decorrelation approach used. Can be symmetric ('symm'), i.e. estimate all the independent component in parallel, or deflation ('defl'), i.e. estimate independent component one-by-one like in projection pursuit. Default is 'defl'.
(integer) Number of independent components to be estimated. Default equals the dimension of data.
(string) Chooses the nonlinearity g used in the fixed-point algorithm. Possible values:
Nonlinearity used
g(u)=u^3
g(u)=tanh(a1*u)
g(u)=u*exp(-a2*u^2/2)
g(u)=u^2
(string) Chooses the nonlinearity g used when fine-tuning. In addition to same values as for 'g', the possible value 'finetune' is: 'off' fine-tuning is disabled.
(number) Parameter a1 used when g='tanh'. Default is 1.
(number) Parameter a2 used when g='gaus'. Default is 1.
(number) Step size. Default is 1. If the value of mu is other than 1, then the program will use the stabilized version of the algorithm (see also parameter 'stabilization').
(string) Values 'on' or 'off'. Default 'off'. This parameter controls wether the program uses the stabilized version of the algorithm or not. If the stabilization is on, then the value of mu can momentarily be halved if the program senses that the algorithm is stuck between two points (this is called a stroke). Also if there is no convergence before half of the maximum number of iterations has been reached then mu will be halved for the rest of the rounds.
(number) Stopping criterion. Default is 0.0001.
(integer) Maximum number of iterations. Default is 1000.
(integer) Maximum number of iterations in fine-tuning. Default 100.
(number) [0 - 1] Percentage of samples used in one iteration. Samples are chosen in random. Default is 1 (all samples).
(matrix) Initial guess for A. Default is random. You can now do a "one more" like this: [ica, A, W] = fastica(mix, 'numOfIC',3); [ica2, A2, W2] = fastica(mix, 'initGuess', A, 'numOfIC', 4);
(string) Either 'on' or 'off'. Default is 'on': report progress of algorithm in text format.
(string) Plot running estimates of independent components: 'signals', 'basis', 'filters' or 'off'. Default is 'off'.
Number of iterations between plots. Default is 1 (plot after every iteration).
(integer) This and 'lastEig' specify the range for eigenvalues that are retained, 'firstEig' is the index of largest eigenvalue to be retained. Default is 1.
(integer) This is the index of the last (smallest) eigenvalue to be retained. Default equals the dimension of data.
(string) Either 'on' or 'off'. When set 'on', the eigenvalues are shown to the user and the range can be specified interactively. Default is 'off'. Can also be set to 'gui'. Then the user can use the same GUI that's in fastica_gui.
(matrix) Eigenvectors
(matrix) Eigenvalues
(matrix) Whitened signal
(matrix) Whitening matrix
(matrix) dewhitening matrix
(string) Compute only PCA i.e. reduction of dimension ('pca') or only PCA plus whitening ('white'). Default is 'all': do ICA estimation as well. This option changes the output format accordingly.
fastica(mixedsig) estimates the independent components from given multidimensional signals. Each row of matrix mixedsig is one observed signal. fastica uses Hyvarinen's fixed-point algorithm, see http://www.cis.hut.fi/projects/ica/fastica/.
A graphical user interface for fastica can be launched by the command fastica_gui
fastica can be called with numerous optional arguments. Optional arguments are given in parameter pairs, so that first argument is the name of the parameter and the next argument is the value for that parameter. Optional parameter pairs can be given in any order.
If values for all the 'whiteSig', 'whiteSig' and 'dewhiteMat' are supplied, they will be used in computing the ICA. PCA and whitening are not performed. Though 'mixedsig' is not used in the main algorithm it still must be entered - some values are still calculated from it.
[icasig] = FASTICA (mixedsig, 'approach', 'symm', 'g', 'tanh'); Do ICA with tanh nonlinearity and in parallel (like maximum likelihood estimation for supergaussian data). [icasig] = FASTICA (mixedsig, 'lastEig', 10, 'numOfIC', 3); Reduce dimension to 10, and estimate only 3 independent components. [icasig] = FASTICA (mixedsig, 'verbose', 'off', 'displayMode', 'off'); Don't output convergence reports and don't plot independent components. | ![]() | ![]() |