Learn R Programming

TRES (version 1.1.1)

TRR_sim: Generate simulation data for tensor response regression (TRR)

Description

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

Usage

TRR_sim(r, p, u, n)

Arguments

r

The dimension of response, a vector with length larger than 2.

p

The dimension of predictor, a scale.

u

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

n

The sample size.

Value

x

The predictor of dimension \(p\times n\)

y

The response of dimension \(r_1\times \cdots\times r_m \times n\)

Gamma

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

coefficients

The tensor coefficients of dimension \(r_1\times \cdots\times r_m \times p\)

Sigma

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

p, r, u

The input p,r,u

Details

The tensor response regression model is of the form, $$\mathbf{Y} = \mathbf{B}\bar{\times}_{(m+1)}\mathbf{X} +\boldsymbol{\varepsilon}$$ where predictor \(\mathbf{X} \in R^{p}\), response \(\mathbf{Y} \in R^{r_1\times \cdots\times r_m}\), and the error term is tensor normal distributed $$\boldsymbol{\varepsilon}\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

Li L, Zhang X (2017). <U+201C>Parsimonious Tensor Response Regression.<U+201D> Journal of the American Statistical Association, 112(519), 1131<U+2013>1146.

See Also

TPR.fit, TPR_sim.

Examples

Run this code
# NOT RUN {
r <- c(10, 10, 10)
u <- c(2, 2, 2)
p <- 5
n <- 100
dat <- TRR_sim(r = r, p = p, u = u, n = n)
x <- dat$x
y <- dat$y
fit_std <- TRR.fit(x, y, method="standard")

# }

Run the code above in your browser using DataLab