Standardize an Observation Array

Share:

Description

Standardizes an array of array-valued observations simultaneously from each mode. The method can be seen as a higher-order analogy for the regular multivariate standardization of random vectors.

Usage

1

Arguments

x

Array of an order higher than two with the last dimension corresponding to the sampling units.

Details

The algorithm first centers the n observed tensors Xi to have an element-wise mean of zero. Then it estimates the mth mode covariance matrix Cov_m(X) = E(X(m) X(m)^T)/(p1 ... p(m-1) p(m+1) ... pr), where X(m) is the centered m-flattening of X, for each mode and transforms the observations with the inverse square roots of the covariance matrices from the corresponding modes.

Value

A list containing the following components:

x

Array of the same size as x containing the standardized observations.

S

List containing inverse square roots of the covariance matrices of different modes.

Author(s)

Joni Virta

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# Generate sample data.
n <- 100
x <- t(cbind(rnorm(n, mean = 0),
             rnorm(n, mean = 1),
             rnorm(n, mean = 2),
             rnorm(n, mean = 3),
             rnorm(n, mean = 4),
             rnorm(n, mean = 5)))
             
dim(x) <- c(3, 2, n)

# Standardize
z <- tensorStandardize(x)$x

# The m-mode covariance matrices of the standardized tensors
mModeCovariance(z, 1)
mModeCovariance(z, 2)