Learn R Programming

concor (version 1.0-0.1)

svdbips: SVD for bipartitioned matrix x

Description

SVD for bipartitioned matrix x. SIMULTANEOUS SOLUTIONS. ("simultaneous svdbip")

Usage

svdbips(x,K,H,r)

Arguments

x
is a p x q matrix
K
is a row vector which contains the numbers pk, k=1,...,kx, of the partition of x with kx row blocks : $\sum_k p_k=p$
H
is a row vector which contains the numbers qh, h=1,...,ky, of the partition of x with ky column blocks : $\sum_h q_h=q$
r
is the wanted number of solutions

Value

  • list with following components
  • uis a p x r matrix of kx row blocks uk (pk x r); uk'*uk = Identity
  • vis a q x r matrix of ky row blocks vh (qh x r); vh'*vh = Identity
  • s2is a kx x ky x r array; for a fixed solution k, each matrix s2[,,k] contains kxky values $(u_h'*x_{kh}*v_k)^2$, the "partial (squared) singular values" relative to $x_{kh}$.

Details

One set of r solutions is calculated by maximizing $\sum_i \sum_k \sum_h (u_k[,i]'*x_{kh}*v_h[,i])^2$, with kx+ky orthonormality constraints (for each uk and each vh). For each fixed r value, the solution is totally new (does'nt consist to complete a previous calculus of one set of r-1 solutions). rmax=min([min(K),min(H)]). When r=1, it is svdbip (thus it is svdcp when r=1 and kx=1).

Convergence of algorithm may be not global. So the below proposed initialisation of the algorithm may be not very suitable for some data sets. Several different random initialisations with normed vectors might be considered and the best result then choosen....

References

Lafosse R. & Ten Berge J. A simultaneous CONCOR method for the analysis of two partitioned matrices. submitted.

Examples

Run this code
x<-matrix(runif(200),10,20)
s1<-svdbip(x,c(3,4,3),c(5,5,10),2);sum(sum(sum(s1$s2)))
ss<-svdbips(x,c(3,4,3),c(5,5,10),2);sum(sum(sum(ss$s2)))

Run the code above in your browser using DataLab