This function generates a single multivariate response value \(\boldsymbol{Y}\) and a vector of explinatory variables \((X_1,\ldots,X_{totdim})\) drawn from a model with a given number of latent components.

simul_data_YX(totdim, ncomp)

Arguments

totdim

Number of column of the X vector (from ncomp to hardware limits)

ncomp

Number of latent components in the model (from 2 to 6)

Value

vector

\((Y_1,\ldots,Y_r,X_1,\ldots,X_{totdim})\)

Details

This function should be combined with the replicate function to give rise to a larger dataset. The algorithm used is a port of the one described in the article of Li which is a multivariate generalization of the algorithm of Naes and Martens.

Note

The value of \(r\) depends on the value of ncomp :

ncomp\(r\)2
333
44

References

T. Naes, H. Martens, Comparison of prediction methods for multicollinear data, Commun. Stat., Simul. 14 (1985) 545-576.
Morris, Elaine B. Martin, Model selection for partial least squares regression, Chemometrics and Intelligent Laboratory Systems 64 (2002) 79-89, doi: 10.1016/S0169-7439(02)00051-5 .

See also

simul_data_complete for highlighting the simulations parameters

Author

Frédéric Bertrand
frederic.bertrand@utt.fr
https://fbertran.github.io/homepage/

Examples

simul_data_YX(20,6)
#> Y 1 Y 2 Y 3 Y 4 X1 X2 X3 #> 1.6521069 1.6767627 1.6346312 1.6132278 0.4990016 4.5452299 -3.2486510 #> X4 X5 X6 X7 X8 X9 X10 #> 2.3508245 0.1799964 4.8791825 -3.5780348 2.6919449 1.0616228 4.3819963 #> X11 X12 X13 X14 X15 X16 X17 #> -1.1678799 0.6185691 3.2516226 -1.9117334 1.0510836 4.3806368 -1.1590954 #> X18 X19 X20 #> 0.6317238 3.2675463 -1.8953118
# \donttest{ if(require(plsdepot)){ dimX <- 6 Astar <- 2 (dataAstar2 <- t(replicate(50,simul_data_YX(dimX,Astar)))) library(plsdepot) resAstar2 <- plsreg2(dataAstar2[,4:9],dataAstar2[,1:3],comps=5) resAstar2$Q2 resAstar2$Q2[,4]>0.0975 dimX <- 6 Astar <- 3 (dataAstar3 <- t(replicate(50,simul_data_YX(dimX,Astar)))) library(plsdepot) resAstar3 <- plsreg2(dataAstar3[,4:9],dataAstar3[,1:3],comps=5) resAstar3$Q2 resAstar3$Q2[,4]>0.0975 dimX <- 6 Astar <- 4 (dataAstar4 <- t(replicate(50,simul_data_YX(dimX,Astar)))) library(plsdepot) resAstar4 <- plsreg2(dataAstar4[,5:10],dataAstar4[,1:4],comps=5) resAstar4$Q2 resAstar4$Q2[,5]>0.0975 rm(list=c("dimX","Astar")) }
#> Le chargement a nécessité le package : plsdepot
#> #> Attachement du package : ‘plsdepot’
#> The following object is masked from ‘package:chemometrics’: #> #> nipals
# }