# icajade: ICA via JADE Algorithm In ica: Independent Component Analysis

## Description

Computes ICA decomposition using Cardoso and Souloumiac's (1993, 1996) Joint Approximate Diagonalization of Eigenmatrices (JADE) approach.

## Usage

 ```1 2``` ```icajade(X, nc, center = TRUE, maxit = 100, tol = 1e-6, Rmat = diag(nc)) ```

## Arguments

 `X` Data matrix with `n` rows (samples) and `p` columns (variables). `nc` Number of components to extract. `center` If `TRUE`, columns of `X` are mean-centered before ICA decomposition. `maxit` Maximum number of algorithm iterations to allow. `tol` Convergence tolerance. `Rmat` Initial estimate of the `nc`-by-`nc` orthogonal rotation matrix.

## Details

ICA Model The ICA model can be written as `X=tcrossprod(S,M)+E`, where columns of `S` contain the source signals, `M` is the mixing matrix, and columns of `E` contain the noise signals. Columns of `X` are assumed to have zero mean. The goal is to find the unmixing matrix `W` such that columns of `S=tcrossprod(X,W)` are independent as possible.

Whitening Without loss of generality, we can write `M=P%*%R` where `P` is a tall matrix and `R` is an orthogonal rotation matrix. Letting `Q` denote the pseudoinverse of `P`, we can whiten the data using `Y=tcrossprod(X,Q)`. The goal is to find the orthongal rotation matrix `R` such that the source signal estimates `S=Y%*%R` are as independent as possible. Note that `W=crossprod(R,Q)`.

JADE The JADE approach finds the orthogonal rotation matrix `R` that (approximately) diagonalizes the cumulant array of the source signals. See Cardoso and Souloumiac (1993,1996) and Helwig and Hong (2013) for specifics of the JADE algorithm.

## Value

 `S` Matrix of source signal estimates (`S=Y%*%R`). `M` Estimated mixing matrix. `W` Estimated unmixing matrix (`W=crossprod(R,Q)`). `Y` Whitened data matrix. `Q` Whitening matrix. `R` Orthogonal rotation matrix. `vafs` Variance-accounted-for by each component. `iter` Number of algorithm iterations.

## Author(s)

Nathaniel E. Helwig <[email protected]>

## References

Cardoso, J.F., & Souloumiac, A. (1993). Blind beamforming for non-Gaussian signals. IEE Proceedings-F, 140, 362-370.

Cardoso, J.F., & Souloumiac, A. (1996). Jacobi angles for simultaneous diagonalization. SIAM Journal on Matrix Analysis and Applications, 17, 161-164.

Helwig, N.E. & Hong, S. (2013). A critique of Tensor Probabilistic Independent Component Analysis: Implications and recommendations for multi-subject fMRI data analysis. Journal of Neuroscience Methods, 213, 263-273.

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44``` ```########## EXAMPLE 1 ########## # generate noiseless data (p==r) set.seed(123) nobs <- 1000 Amat <- cbind(icasamp("a","rnd",nobs),icasamp("b","rnd",nobs)) Bmat <- matrix(2*runif(4),2,2) Xmat <- tcrossprod(Amat,Bmat) # ICA via JADE with 2 components imod <- icajade(Xmat,2) acy(Bmat,imod\$M) cor(Amat,imod\$S) ########## EXAMPLE 2 ########## # generate noiseless data (p!=r) set.seed(123) nobs <- 1000 Amat <- cbind(icasamp("a","rnd",nobs),icasamp("b","rnd",nobs)) Bmat <- matrix(2*runif(200),100,2) Xmat <- tcrossprod(Amat,Bmat) # ICA via JADE with 2 components imod <- icajade(Xmat,2) cor(Amat,imod\$S) ########## EXAMPLE 3 ########## # generate noisy data (p!=r) set.seed(123) nobs <- 1000 Amat <- cbind(icasamp("a","rnd",nobs),icasamp("b","rnd",nobs)) Bmat <- matrix(2*runif(200),100,2) Emat <- matrix(rnorm(10^5),1000,100) Xmat <- tcrossprod(Amat,Bmat)+Emat # ICA via JADE with 2 components imod <- icajade(Xmat,2) cor(Amat,imod\$S) ```

ica documentation built on May 2, 2019, 4:51 a.m.