| bat {TRES} | R Documentation |
Bat simulated data
Description
Synthetic data generated from tensor response regression (TRR) model. Each response observation is a two-dimensional image, and each binary predictor observation takes values 0 and 1, representing two groups.
Usage
data("bat")
Format
A list consisting of four components:
- x
A
1 \times 20matrix, each entry takes values 0 and 1, representing two groups.- y
A
64\times 64\times 20tensor, each matrixy@data[,,i]represents an image.- coeffiicients
A
64\times 64 \times 1tensor with the bat pattern.- Gamma
A list consisting of two
64 \times 14envelope basis.
Details
The dataset is generated from the tensor response regression (TRR) model:
Y_i = B X_i + \epsilon_i, i = 1,\ldots, n,
where n=20 and the regression coefficient B \in R^{64\times 64} is a given image with rank 14, representing the mean difference of the response Y between two groups. 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 error term 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^{64\times 14}, k=1,2. Then the envelope dimensions are u_1 = u_2 = 14. We generate another two matrices \Omega_k \in R^{14\times 14} = A_k A_k^T and \Omega_{0k} \in R^{50\times 50} = A_{0k}A_{0k}^T, where A_k \in R^{14\times 14} and A_{0k} \in R^{50\times 50} are randomly generated from Uniform(0,1) elementwise. Then we set 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. We set the first 10 predictors X_i, i=1,\ldots, 10, as 1 and the rest as 0. The error term is then generated from two-way tensor (matrix) normal distribution TN( 0; \Sigma_1, \Sigma_2).
References
Li, L. and Zhang, X., 2017. Parsimonious tensor response regression. Journal of the American Statistical Association, 112(519), pp.1131-1146.
Examples
## Fit bat dataset with the tensor response regression model
data("bat")
x <- bat$x
y <- bat$y
# Model fitting with ordinary least square.
fit_std <- TRR.fit(x, y, method="standard")
# Draw the coefficient and p-value plots
plot(fit_std)