Description Usage Arguments Details Value Author(s) References See Also Examples
Performs an approximate joint matrix diagonalization on a list of matrices. More precisely, for a list of matrices Rx the algorithm finds a matrix V such that for all i V Rx[i] t(V) is approximately diagonal.
| 1 2 | 
| Rx | list of matrices to be diagaonlized. | 
| init | matrix used in first step of initialization. If NA a default based on PCA is used | 
| rm_x0 | boolean whether to also diagonalize first matrix in
 | 
| return_diag | boolean. Specifies whether to return the list of diagonalized matrices. | 
| tol | float, optional. Tolerance for terminating the iteration. | 
| max_iter | int, optional. Maximum number of iterations. | 
| n_components | number of components to extract. If NA is passed, all components are used. | 
| silent | boolean whether to supress status outputs. | 
For further details see the references.
object of class 'uwedge' consisting of the following elements
| V | joint diagonalizing matrix. | 
| Rxdiag | list of diagonalized matrices. | 
| converged | boolean specifying whether the algorithm
converged for the given  | 
| iterations | number of iterations of the approximate joint diagonalisation. | 
| meanoffdiag | mean absolute value of the off-diagonal values of the to be jointly diagonalised matrices, i.e., a proxy of the approximate joint diagonalisation objective function. | 
Niklas Pfister and Sebastian Weichwald
Pfister, N., S. Weichwald, P. B<c3><bc>hlmann and B. Sch<c3><b6>lkopf (2017). GroupICA: Independent Component Analysis for grouped data. ArXiv e-prints (arXiv:1806.01094).
Tichavsky, P. and Yeredor, A. (2009). Fast Approximate Joint Diagonalization Incorporating Weight Matrices. IEEE Transactions on Signal Processing.
The function groupICA uses uwedge.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | ## Example
set.seed(1)
# Generate data 20 matrix that can be jointly diagonalized
d <- 10
A <- matrix(rnorm(d*d), d, d)
A <- A%*%t(A)
Rx <- lapply(1:20, function(x) A %*% diag(rnorm(d)) %*% t(A))
# Perform approximate joint diagonalization
ptm <- proc.time()
res <- uwedge(Rx,
              rm_x0=FALSE,
              return_diag=TRUE,
              max_iter=1000)
print(proc.time()-ptm)
# Average value of offdiagonal elements:
print(res$meanoffdiag)
 | 
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.