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 offdiagonal 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 eprints (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.