procotWKS {lazy.procrustes} R Documentation

## Weighted Orthogonal Procrustes Rotation by Koschat and Swayne's method

### Description

Weighted Orthogonal Procrustes Rotation by Koschat and Swayne's method

### Usage

procotWKS(A, C, D2, Tinit = diag(ncol(A)), Aainit = NULL, maxiter = 200,
eps = 1e-06, epsd = 0.001, SQUAREM = 3, nSQUAREM = 1,
minalpha = -999, maxalpha = -1, always = 0, reset1 = 0, reset2 = 1,
print = 1)

### Arguments

 A The matrix to be rotated C The target matrix D2 The weight matrix Tinit initial value of T matrix Aainit = Aa matrix which stays constant in this function. maxiter max # of iterations eps convergence criterion for rmse epsd convergence criterion for maximum absolute differences. SQUAREM = 3 : See the help of iSQUAREM in lazy.accel package. nSQUAREM = 1 : See the help of iSQUAREM in lazy.accel package. minalpha = -999 : See the help of iSQUAREM in lazy.accel package. maxalpha = -1 : See the help of iSQUAREM in lazy.accel package. always = 1 : See the help of iSQUAREM in lazy.accel package. reset1 = 0 : See the help of iSQUAREM in lazy.accel package. reset2 = 1 : See the help of iSQUAREM in lazy.accel package. print = 1 to print the result

### Details

This program minimizes
RSS = Tr( ( C - A T ) D2 ( C - A T )' )
w.r.t T subject to T'T = TT' = I,
using Koschat and Swayne (1991) algorithm.
The missing elements of C matrix will be estimated so that they also minimize RSS.

### Value

A list of B=A T, T, Cm, A, C, D2, rmse, rmse0
where B is the rotated matrix, T is the rotation matrix,
Cm is the target matrix with its missing elements replaced by LSE,
rmse and rmse0 are, resp, weighted and unweighted RMSE.

### References

Koschat, M.A., and Swayne, D.F., (1989). A weighted Procrustes criterion. Psychometrika, 56(2), pp. 229-239.

### Examples

seed <- 1701; set.seed(seed)
nvar <- 20; ndim <- 4
errstd <- 0.1
resg <- gendataWmm( 1, nvar, ndim )
A <- resg\$A; Cg <- resg\$C; Tg <- resg\$T
C <- resg\$C + errstd*matrix(rnorm(nvar*ndim),nvar)
pmiss <- 0.5
locmiss <- unique( sample(1:(nvar*ndim), pmiss*(nvar*ndim), replace=1) )
C[locmiss] <- NA
V <- diag(ndim)
V <- matrix(rnorm(nvar*ndim),nvar); V <- t(V)%*%V/nvar
Print(A,C,V)
res <- procotWKS( A, C, V )

[Package lazy.procrustes version 0.1.3 Index]