Document explaining the code for indefinite procrustes analysis. First, the indefinite procrustes solution code comes from the following place:

devtools::source_url(url="https://raw.githubusercontent.com/jagterberg/indefinite_procrustes/master/indefinite_procrustes.R")

Here are the results from simulating an adjacency matrix from the block probability matrix \(B = \begin{pmatrix} .2 & .7 \\ .7 & .2 \end{pmatrix}\) with \(\frac{n}{2}\) vertices in each block (here, \(n = 1000\)). The printed results below on are the output from each iteration of the alabama::auglag() R function, which runs the Augmented Lagrangian on our indefinite procrustes problem. The code is attempting to solve \[\underset{{U \in \mathcal{O}_{p,q}}}{\operatorname{argmin}} ||XU - Y||_F^2 \] numerically (where \(X,Y \in \mathbb{R}^{n \times d}\), and \(p+q = d\)), although this is reformulated according to that given in Kintzel (2005). The plot examines the corresponding plotted point clouds in \(\mathbb{R}^2\) both before and after transformation.

Note: the solution can be read off directly from the output (the par argument) by simply thinking of it as a \(2 \times 2\) matrix (filling in each entry by row first).

procrustes.simulation2(seed=24,n=1000)
## Max(abs(heq)):  0 
## Outer iteration:  1 
## Max(abs(heq)):  0 
## par:  1 0 0 1 
## fval =   1804 
##  
## Outer iteration:  2 
## Max(abs(heq)):  0.1148691 
## par:  -1.0193 -0.000992118 -0.000648026 0.940814 
## fval =   2.17 
##  
## Outer iteration:  3 
## Max(abs(heq)):  0.09216882 
## par:  -1.01984 0.000225279 -0.000539056 0.952802 
## fval =   1.883 
##  
## Outer iteration:  4 
## Max(abs(heq)):  0.0445553 
## par:  -1.01568 -0.0199204 -0.000775022 0.977469 
## fval =   1.51 
##  
## Outer iteration:  5 
## Max(abs(heq)):  0.01161022 
## par:  -1.00413 -0.00460996 -0.00149823 0.994179 
## fval =   1.204 
##  
## Outer iteration:  6 
## Max(abs(heq)):  0.001164626 
## par:  -1.00045 -0.000543588 -0.000621033 0.9995 
## fval =   1.186 
##  
## Outer iteration:  7 
## Max(abs(heq)):  0.001164675 
## par:  -0.999691 -0.000544454 -0.000620266 1.00027 
## fval =   1.185 
##  
## Outer iteration:  8 
## Max(abs(heq)):  0.001164675 
## par:  -0.999691 -0.000544454 -0.000620266 1.00027 
## fval =   1.185 
##  
## Outer iteration:  9 
## Max(abs(heq)):  0.001164675 
## par:  -0.999691 -0.000544454 -0.000620266 1.00027 
## fval =   1.185 
##  
## Outer iteration:  10 
## Max(abs(heq)):  0.001164675 
## par:  -0.999691 -0.000544454 -0.000620266 1.00027 
## fval =   1.185 
##  
## Outer iteration:  11 
## Max(abs(heq)):  0.001164675 
## par:  -0.999691 -0.000544454 -0.000620266 1.00027 
## fval =   1.185 
##  
## Outer iteration:  12 
## Max(abs(heq)):  0.001164675 
## par:  -0.999691 -0.000544454 -0.000620266 1.00027 
## fval =   1.185 
## 

For many of the simulations on the indefinite 2-block model, the optimal matrix is very close to either the identity or the negative identity (or some combination thereof). Since we are interested in performance more generally, we will also examine a 3-block model with \(B := \begin{pmatrix} .6 & .9 &.9 \\ .9 & .6 &.9 \\ .9 &.9 &.3 \end{pmatrix}\), with \(\frac{n}{3}\) vertices in each block. Included are: The results from the auglag() function, an interactive 3D plot to examine the point clouds in \(\mathbb{R}^3\), and individual plots along each axis.

## Max(abs(heq)):  0 
## Outer iteration:  1 
## Max(abs(heq)):  0 
## par:  1 0 0 0 1 0 0 0 1 
## fval =   453.4 
##  
## Outer iteration:  2 
## Max(abs(heq)):  0.5106092 
## par:  1.01858 0.000272692 -0.00138302 0.000262269 -0.881751 -0.0158836 0.00116394 -0.0105253 0.699487 
## fval =   9.41 
##  
## Outer iteration:  3 
## Max(abs(heq)):  0.3983555 
## par:  1.01996 0.00027098 -0.001273 0.0005214 -0.896358 -0.0162111 0.00245921 -0.0103328 0.775593 
## fval =   6.587 
##  
## Outer iteration:  4 
## Max(abs(heq)):  0.1485976 
## par:  1.0309 0.000272027 -0.00239004 0.00185934 -0.922126 -0.033 0.00823035 -0.00814526 0.960118 
## fval =   3.585 
##  
## Outer iteration:  5 
## Max(abs(heq)):  0.0384057 
## par:  1.01902 0.000318213 -0.00136246 7.04812e-05 -0.983063 -0.0174074 0.000163381 -0.0153585 0.987659 
## fval =   2.67 
##  
## Outer iteration:  6 
## Max(abs(heq)):  0.003099165 
## par:  1.00155 0.00032269 -0.00141068 8.79183e-05 -0.999218 -0.0179381 0.000219172 -0.0152346 1.00064 
## fval =   2.504 
##  
## Outer iteration:  7 
## Max(abs(heq)):  0.002729786 
## par:  1.00114 0.000322821 -0.00141129 8.78964e-05 -0.999643 -0.017946 0.000219131 -0.0152405 1.00105 
## fval =   2.505 
##  
## Outer iteration:  8 
## Max(abs(heq)):  0.002730084 
## par:  1.00109 0.000322838 -0.00141136 8.78919e-05 -0.999697 -0.017947 0.00021912 -0.0152413 1.0011 
## fval =   2.505 
##  
## Outer iteration:  9 
## Max(abs(heq)):  0.002730084 
## par:  1.00109 0.000322838 -0.00141136 8.78919e-05 -0.999697 -0.017947 0.00021912 -0.0152413 1.0011 
## fval =   2.505 
##  
## Outer iteration:  10 
## Max(abs(heq)):  0.002730084 
## par:  1.00109 0.000322838 -0.00141136 8.78919e-05 -0.999697 -0.017947 0.00021912 -0.0152413 1.0011 
## fval =   2.505 
##  
## Outer iteration:  11 
## Max(abs(heq)):  0.002730084 
## par:  1.00109 0.000322838 -0.00141136 8.78919e-05 -0.999697 -0.017947 0.00021912 -0.0152413 1.0011 
## fval =   2.505 
##  
## Outer iteration:  12 
## Max(abs(heq)):  0.002730084 
## par:  1.00109 0.000322838 -0.00141136 8.78919e-05 -0.999697 -0.017947 0.00021912 -0.0152413 1.0011 
## fval =   2.505 
##  
## Outer iteration:  13 
## Max(abs(heq)):  0.002730084 
## par:  1.00109 0.000322838 -0.00141136 8.78919e-05 -0.999697 -0.017947 0.00021912 -0.0152413 1.0011 
## fval =   2.505 
## 

You must enable Javascript to view this page properly.

Kintzel, Ulric. 2005. “Polar Decompositions and Procrustes Problems in Finite Dimensional Indefinite Scalar Product Spaces.” PhD thesis.