Learn R Programming

TRES (version 1.1.1)

TPR_sim: Generate simulation data for tensor predictor regression (TPR)

Description

This function is used to generate simulation data used in tensor prediction regression.

Usage

TPR_sim(p, r, u, n)

Arguments

p

The dimension of predictor, a vector in the form of \((p_1,\cdots, p_m)\).

r

The dimension of response, a scale.

u

The structural dimension of envelopes at each mode, a vector with the same length as p.

n

The sample size.

Value

x

The predictor of dimension \(p_1\times \cdots\times p_m \times n\)

y

The response of dimension \(r\times n\)

Gamma

The envelope subspace basis of dimension \(p_k \times u_k, \ k=1,\ldots,m\)

coefficients

The tensor coefficients of dimension \(p_1\times \cdots\times p_m \times r\)

Sigma

A lists of estimated covariance matrices at each mode for the tensor predictors, i.e., \(\boldsymbol{\Sigma}_1,\dots,\boldsymbol{\Sigma}_m\)

p, r, u

The input p,r,u

Details

The tensor predictor regression model is of the form, $$\mathbf{Y} = \mathbf{B}_{(m+1)}\mathrm{vec}(\mathbf{X}) +\boldsymbol{\varepsilon}$$ where response \(\mathbf{Y} \in R^{r}\), predictor \(\mathbf{X} \in R^{p_1\times \cdots\times p_m}\), and the error term is multivariate normal distributed. The predictor is tensor normal distributed, $$\mathbf{X}\sim TN(0;\boldsymbol{\Sigma}_1,\dots,\boldsymbol{\Sigma}_m)$$ According to the tensor envelope structure, we have $$\mathbf{B} = [\Theta;\boldsymbol{\Gamma}_1,\ldots,\boldsymbol{\Gamma}_m,\mathbf{I}_p], \quad \mbox{for some } \boldsymbol{\Theta} \in R^{u_1\times\cdots\times u_m \times p}$$ $$\boldsymbol{\Sigma}_k = \boldsymbol{\Gamma}_k\boldsymbol{\Omega}_k\boldsymbol{\Gamma}_k^{T}+\boldsymbol{\Gamma}_{0k}\boldsymbol{\Omega}_{0k}\boldsymbol{\Gamma}_{0k}^\top, \quad \mbox{for some } \boldsymbol{\Omega}_k, \boldsymbol{\Omega}_{0k},\ k=1,\ldots,m.$$

References

Zhang, X., Li, L. (2017). Tensor Envelope Partial Least-Squares Regression. Technometrics, 59(4), 426-436.

See Also

TPR.fit, TRR_sim.

Examples

Run this code
# NOT RUN {
p <- c(10, 10, 10)
u <- c(1, 1, 1)
r <- 5
n <- 200
dat <- TPR_sim(p = p, r = r, u = u, n = n)
x <- dat$x
y <- dat$y
fit_std <- TPR.fit(x, y, method="standard")

# }

Run the code above in your browser using DataLab