JADE {JADE} | R Documentation |
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.
The function uses frjd
for the joint diagonalization.
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. |
Details
Some minor modifications were done when porting the function to R, and they are:
- 1
the model assumed here is
X=S A' +\mu
. ThereforeS
andX
have one row per observation. Note that this still differs from the model definition in R ofFastICA
andPearsonICA
but agrees withics
.- 2
The whitening covariance matrix is divided by n-1 and not n (n = number of observations).
- 3
The initial value for the joint diagonalisation is always I.
- 4
The original eps would be
\frac{1}{100\sqrt{n}}
.
It is also worth mentioning that the estimated independent components S
are scaled to unit variance and are ordered in such a way, that their fourth moments are in the decreasing order.
The signs of the unmixing matrix W
are fixed so that the sum of the elements on each row is positive.
The code is based on the original matlab code ("MatlabjadeR.m").
Value
A list with class 'bss' containing the following components:
A |
The estimated mixing matrix. |
W |
The estimated unmixing matrix. |
S |
Dataframe with the estimated independent components. |
Xmu |
The location of the original data. |
Author(s)
Jean-Francois Cardoso. Ported to R by Klaus Nordhausen
References
Cardoso, J.-F. and Souloumiac, A., (1993), Blind beamforming for non Gaussian signals, IEE Proceedings-F, 140, 362–370.
Miettinen, J., Taskinen S., Nordhausen, K. and Oja, H. (2015), Fourth Moments and Independent Component Analysis, Statistical Science, 30, 372–390.
Miettinen, J., Nordhausen, K. and Taskinen, S. (2017), Blind Source Separation Based on Joint Diagonalization in R: The Packages JADE and BSSasymp, Journal of Statistical Software, 76, 1–31, <doi:10.18637/jss.v076.i02>.
Examples
# 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)