Learn R Programming

TRES (version 1.1.5)

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

Description

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

Usage

TPRsim(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

A list of 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., \(\Sigma_1,\dots, \Sigma_m\).

p, r, u

The input p,r,u.

Details

The tensor predictor regression model is of the form, $$Y = B_{(m+1)}vec(X) + \epsilon$$ where response \(Y \in R^{r}\), predictor \(X \in R^{p_1\times \cdots\times p_m}\), \(B \in \in R^{p_1 \times\cdots\times p_m \times r}\) and the error term is multivariate normal distributed. The predictor is tensor normal distributed, $$X\sim TN(0;\Sigma_1,\dots,\Sigma_m)$$ According to the tensor envelope structure, we have $$B = [\Theta; \Gamma_1,\ldots, \Gamma_m, I_p],$$ $$\Sigma_k = \Gamma_k \Omega_k \Gamma_k^{T}+ \Gamma_{0k} \Omega_{0k} \Gamma_{0k}^T,$$ for some \(\Theta \in R^{u_1 \times\cdots\times u_m \times p}\), \(\Omega_k \in R^{u_k \times u_k}\) and \(\Omega_{0k} \in \in R^{(p_k - u_k) \times (p_k - u_k)}\), \(k=1,\ldots,m\).

References

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

See Also

TPR.fit, TRRsim.

Examples

Run this code
# NOT RUN {
p <- c(10, 10, 10)
u <- c(1, 1, 1)
r <- 5
n <- 200
dat <- TPRsim(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