Computes the Minimum Distance index MD to evaluate the performance of an ICA algorithm.
Usage
MD(W.hat, A)
Arguments
W.hat
The estimated square unmixing matrix W.
A
The true square mixing matrix A.
Details
MD(W.hat,A) = 1/sqrt(p-1) inf_(P D) ||P D W.hat A - I||,
where P is a permutation matrix and D a diagonal matrix with nonzero diagonal entries.
The step that minimizes the index of the set over all permutation matrix can be expressed as a linear sum assignment problem (LSAP)
for which we use as solver the Hungarian method implemented as solve_LASP in the clue package.
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 MD index 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 MD index.
Author(s)
Klaus Nordhausen
References
Ilmonen, P., Nordhausen, K., Oja, H. and Ollila, E. (2010): A New Performance Index for ICA: Properties, Computation and Asymptotic Analysis.
In Vigneron, V., Zarzoso, V., Moreau, E., Gribonval, R. and Vincent, E. (editors) Latent Variable Analysis and Signal Separation, 229–236, Springer.
See Also
ComonGAP, SIR, amari.error, solve_LSAP
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
MD(W.hat, A)
Results
R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> library(JADE)
> png(filename="/home/ddbj/snapshot/RGM3/R_CC/result/JADE/MD.Rd_%03d_medium.png", width=480, height=480)
> ### Name: MD
> ### Title: Minimum Distance index MD
> ### Aliases: MD
> ### Keywords: multivariate
>
> ### ** 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
> MD(W.hat, A)
[1] 0.2316592
>
>
>
>
>
> dev.off()
null device
1
>