amari.error {JADE} | R Documentation |
Amari Error
Description
Computes the Amari Error to evaluate the performance of an ICA algorithm.
Usage
amari.error(W.hat, A, standardize = F)
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. |
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.
Value
The value of the Amari Error.
Author(s)
Klaus Nordhausen
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
Examples
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)