Learn R Programming

JADE (version 2.0-4)

amari.error: Amari Error

Description

Computes the Amari Error to evaluate the performance of an ICA algorithm.

Usage

amari.error(W.hat, A, standardize = F)

Value

The value of the Amari Error.

Arguments

W.hat

The estimated square unmixing matrix W.

A

The true square mixing matrix A.

standardize

Logical value if A and W.hat need to be standardized. Default is FALSE.

Author

Klaus Nordhausen

Details

The Amari Error can be used in simulation studies to evaluate the performance of an ICA algorithm. The Amari error is permutation invariant but not scale invariant. Therefore if different algorithms should be compared the matrices should be scaled in the same way. If standardize is TRUE, this will be done by the function by standardizing 'W.hat' and the inverse of 'A' in such a way, that every row has length 1, the largest absolute value of the row has a positive sign and the rows are ordered decreasingly according to their largest values.

Note that this function assumes the ICA model is \(X = S A'\), as is assumed by JADE and ics. However fastICA and PearsonICA assume \(X = S A\). Therefore matrices from those functions have to be transposed first.

The Amari Error is scaled in such a way, that it takes a value between 0 and 1. And 0 corresponds to an optimal separation.

References

Amari, S., Cichocki, A. and Yang, H.H. (1996), A new learning algorithm for blind signal separation, Advances in Neural Information Processing Systems, 8, 757--763.

Nordhausen, K., Ollila, E. and Oja, H. (2011), On the Performance Indices of ICA and Blind Source Separation. In the Proceedings of 2011 IEEE 12th International Workshop on Signal Processing Advances in Wireless Communications (SPAWC 2011), 486--490.

See Also

ComonGAP, SIR

Examples

Run this code
S <- cbind(rt(1000, 4), rnorm(1000), runif(1000))
A <- matrix(rnorm(9), ncol = 3)
X <- S %*% t(A)

W.hat <- JADE(X, 3)$W
amari.error(W.hat, A)
amari.error(W.hat, A, TRUE)

Run the code above in your browser using DataLab