Learn R Programming

ThreeWay (version 1.1.3)

varimcoco: Varimax Rotation for Tucker3 and Tucker2

Description

Performs varimax rotation of the core and component matrix rotations to simple structure.

Usage

varimcoco(A, B, C, H, wa_rel, wb_rel, wc_rel, rot1, rot2, rot3, nanal)

Arguments

A
Columnwise orthomornal component matrix for the A-mode
B
Columnwise orthomornal component matrix for the B-mode
C
Columnwise orthomornal component matrix for the C-mode
H
Matricized core array (frontal slices)
wa_rel
relative weight (>=0) for the simplicity of A
wb_rel
relative weight (>=0) for the simplicity of B
wc_rel
relative weight (>=0) for the simplicity of C
rot1
binary indicator (1 if the A-mode is rotated, 0 otherwise, default 1)
rot2
binary indicator (1 if the B-mode is rotated, 0 otherwise, default 1)
rot3
binary indicator (1 if the C-mode is rotated, 0 otherwise, default 1)
nanal
Number of random starts, default 5

Value

A list including the following components:
AS
Rotated component matrix for the A-mode
BT
Rotated component matrix for the B-mode
CU
Rotated component matrix for the C-mode
K
Rotated matricized core array (frontal slices)
S
Rotation matrix for the A-mode
T
Rotation matrix for the B-mode
U
Rotation matrix for the C-mode
f
Best solution for three-way orthomax function value
f1
Varimax value of H
f2a
Varimax value of AS
f2b
Varimax value of BT
f2c
Varimax value of CU
func
Function values upon convergence for all the runs of the orthomax algorithm

References

H.A.L. Kiers (1998). Joint orthomax rotation of the core and component matrices resulting from three-mode principal components analysis. Journal of Classification 15:245--263.

See Also

orthmax2, varim

Examples

Run this code
data(Bus)
# T3 solution
BusT3 <- T3funcrep(Bus, 7, 5, 37, 2, 2, 2, 0, 1e-6)
# Simplicity of A (with weight = 2.5), B (with weight = 2) and C (with weight = 1.5)
T3vmABC <- varimcoco(BusT3$A, BusT3$B, BusT3$C, BusT3$H, 2.5, 2, 1.5)
# Simplicity of only A (with weight = 2.5) and B (with weight = 2)
# rot3=0; the value of wc_rel (= 0) does not play an active role
T3vmAB <- varimcoco(BusT3$A, BusT3$B, BusT3$C, BusT3$H, 2.5, 2, 0, 1, 1, 0)
# simplicity repeatedly with different relative weights for A, B and C
T3vm <- list()
weight.a <- c(1, 3, 6)
weight.b <- c(0, 2, 5)
weight.c <- c(1, 4)
i <- 1
for (wa_rel in weight.a){
 for (wb_rel in weight.b){
  for (wc_rel in weight.c){
   T3vm[[i]] <- varimcoco(BusT3$A, BusT3$B, BusT3$C, 
    BusT3$H, wa_rel, wb_rel, wc_rel)
   i <- i+1
  }
 }
}

Run the code above in your browser using DataLab