Learn R Programming

TRES (version 1.1.5)

square: Square simulated data

Description

Synthetic data generated from tensor predictor regression (TPR) model. Each response observation is univariate, and each predictor observation is a matrix.

Usage

data("square")

Arguments

Format

A list consisting of four components:

x

A \(32 \times 32 \times 200\) tensor, each matrix x@data[,,i] represents a predictor observation.

y

A \(1 \times 200\) matrix, each entry represents a response observation.

coefficients

A \(32\times 32 \times 1\) tensor with a square pattern.

Gamma

A list consisting of two \(32 \times 2\) envelope basis.

Details

The dataset is generated from the tensor predictor regression (TPR) model: $$Y_i = B_{(m+1)}vec(X_i) + \epsilon_i, \quad i = 1,\ldots, n,$$ where \(n=200\) and the regression coefficient \(B \in R^{32\times 32}\) is a given image with rank 2, which has a square pattern. All the elements of the coefficient matrix \(B\) are either 0.1 or 1. To make the model conform to the envelope structure, we construct the envelope basis \(\Gamma_k\) and the covariance matrices \(\Sigma_k, k=1,2\), of predictor \(X\) as following. With the singular value decomposition of \(B\), namely \(B = \Gamma_1 \Lambda \Gamma_2^T\), we choose the envelope basis as \(\Gamma_k \in R^{32 \times 2}, k=1,2\). Then the envelope dimensions are \(u_1 = u_2 = 2\). We set matrices \(\Omega_k = I_2\) and \(\Omega_{0k} = 0.01 I_{30}\), \(k=1,2\). Then we generate the covariance matrices \(\Sigma_k = \Gamma_k \Omega_k \Gamma_k^T + \Gamma_{0k}\Omega_{0k}\Gamma_{0k}^T\), followed by normalization with their Frobenius norms. The predictor \(X_i\) is then generated from two-way tensor (matrix) normal distribution \(TN(0; \Sigma_1, \Sigma_2)\). And the error term \(\epsilon_i\) is generated from standard normal distribution.

References

Zhang, X. and Li, L., 2017. Tensor envelope partial least-squares regression. Technometrics, 59(4), pp.426-436.

Examples

Run this code
# NOT RUN {
## Fit square dataset with the tensor predictor regression model
data("square")
x <- square$x
y <- square$y
# Model fitting with ordinary least square.
fit_std <- TPR.fit(x, y, method="standard")
# Draw the coefficient plot.
plot(fit_std)

# }

Run the code above in your browser using DataLab