Learn R Programming

JADE (version 1.1-0)

JADE: JADE algorithm for ICA

Description

This is an R version of Cardoso's JADE ICA algorithm for real data ported from matlab. The ported version is 1.5, some minor changes compared to the matlab function are explained in the details section. The matlab code can be found for example on the ICA central homepage.

Usage

JADE(X, n.comp = NULL, eps = 1e-06, maxiter = 100, na.action = na.fail)

Arguments

X
Numeric data matrix or dataframe.
n.comp
Number of components to extract.
eps
Convergence tolerance.
maxiter
Maximum number of iterations.
na.action
A function which indicates what should happen when the data contain 'NA's. Default is to fail.

Value

  • A list with class 'bss' containing the following components:
  • AThe estimated mixing matrix.
  • WThe estimated unmixing matrix.
  • SDataframe with the estimated independent components.
  • XmuThe location of the original data.

eqn

$W$

url

http://www.tsi.enst.fr/icacentral/

Details

Some minor modifications were done when porting the function to R, and they are: [object Object],[object Object],[object Object],[object Object]

References

Cardoso, J.-F. and Souloumiac, A., (1993), Blind beamforming for non Gaussian signals, IEE Proceedings-F, 140, 362--370. ftp://sig.enst.fr/pub/jfc/Papers/iee.ps.gz.

Examples

Run this code
# 3 source and 3 signals

S <- cbind(rt(1000, 4), rnorm(1000), runif(1000))
A <- matrix(rnorm(9), ncol = 3)
X <- S %*% t(A)
res<-JADE(X,3)
res$A
res$W
res$S[1:10,]
(sweep(X,2,res$Xmu) %*% t(res$W))[1:10,]
round(res$W %*% A,4) 

# 2 sources and 3 signals

S2 <- cbind(rt(1000, 4), rnorm(1000)) 
A2 <- matrix(rnorm(6), ncol = 2)
X2 <- S2 %*% t(A2)
res2 <-JADE(X2,2)
res2$A
res2$W
res2$S[1:10,]
(sweep(X2,2,res2$Xmu) %*% t(res2$W))[1:10,]
SIR(S2,res2$S)

Run the code above in your browser using DataLab