Skip to contents

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.

Usage

simul_data_complete(totdim, ncomp)

Arguments

totdim

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

ncomp

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

Value

simX

Vector of explanatory variables

HH

Dimension of the response \(\boldsymbol{Y}\)

eta

See Li et al.

r

See Li et al.

epsilon

See Li et al.

ksi

See Li et al.

f

See Li et al.

z

See Li et al.

Y

See Li et al.

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\)
23
33
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_YX for data simulation purpose

Examples


simul_data_complete(20,6)                          
#> $simX
#>           [,1]     [,2]      [,3]      [,4]      [,5]       [,6]      [,7]
#> [1,] -2.306685 -2.14373 -3.348304 -2.130038 -1.549489 -0.8264116 -2.625356
#>            [,8]      [,9]      [,10]     [,11]     [,12]     [,13]     [,14]
#> [1,] -0.8254187 -1.598486 -0.7695298 -2.702558 -2.353086 -2.141245 -2.214223
#>          [,15]      [,16]     [,17]     [,18]     [,19]     [,20]
#> [1,] -1.593623 -0.8068237 -2.701092 -2.373383 -2.148641 -2.239003
#> 
#> $HH
#> [1] 4
#> 
#> $eta
#>      eta61 eta62 eta63 eta64 eta65 eta66
#> [1,]   0.5   0.5   0.5   0.5   0.5   0.5
#> [2,]   0.5   0.5   0.5   0.5   0.5   0.5
#> [3,]   0.5   0.5   0.5   0.5   0.5   0.5
#> [4,]   0.5   0.5   0.5   0.5   0.5   0.5
#> 
#> $r
#> [1] -8.8191973 -1.8115850  1.0466093  1.2270912 -1.9172318  0.5717738
#> 
#> $epsilon
#>  [1] -0.0170665226  0.0122152868  0.0133918870  0.0004393659  0.0012136771
#>  [6]  0.0188427849 -0.0025772374 -0.0056315108  0.0054725144  0.0252369012
#> [11] -0.0083436789  0.0261593570  0.0005817083  0.0039600267  0.0103350805
#> [16] -0.0120570244 -0.0068768931  0.0058614814 -0.0068140191 -0.0208200538
#> 
#> $ksi
#>            ksi1       ksi2  ksi3       ksi4       ksi5  ksi6
#>  [1,] 0.2236068  0.2672612  0.25  0.2236068  0.2672612  0.25
#>  [2,] 0.2236068 -0.2672612  0.25 -0.2236068  0.2672612 -0.25
#>  [3,] 0.2236068  0.2672612 -0.25 -0.2236068  0.2672612  0.25
#>  [4,] 0.2236068 -0.2672612 -0.25  0.2236068  0.2672612 -0.25
#>  [5,] 0.2236068  0.2672612  0.25  0.2236068 -0.2672612 -0.25
#>  [6,] 0.2236068 -0.2672612  0.25 -0.2236068 -0.2672612  0.25
#>  [7,] 0.2236068  0.2672612 -0.25 -0.2236068 -0.2672612 -0.25
#>  [8,] 0.2236068 -0.2672612 -0.25  0.2236068 -0.2672612  0.25
#>  [9,] 0.2236068 -0.1336306 -0.25  0.2236068 -0.1336306 -0.25
#> [10,] 0.2236068 -0.1336306  0.25  0.2236068 -0.1336306  0.25
#> [11,] 0.2236068  0.2672612  0.00  0.2236068  0.2672612  0.00
#> [12,] 0.2236068 -0.1336306 -0.25 -0.2236068  0.1336306  0.25
#> [13,] 0.2236068 -0.1336306  0.25 -0.2236068  0.1336306 -0.25
#> [14,] 0.2236068  0.2672612  0.00 -0.2236068 -0.2672612  0.00
#> [15,] 0.2236068 -0.1336306 -0.25  0.2236068 -0.1336306 -0.25
#> [16,] 0.2236068 -0.1336306  0.25  0.2236068 -0.1336306  0.25
#> [17,] 0.2236068  0.2672612  0.00  0.2236068  0.2672612  0.00
#> [18,] 0.2236068 -0.1336306 -0.25 -0.2236068  0.1336306  0.25
#> [19,] 0.2236068 -0.1336306  0.25 -0.2236068  0.1336306 -0.25
#> [20,] 0.2236068  0.2672612  0.00 -0.2236068 -0.2672612  0.00
#> 
#> $crossksi
#>              ksi1         ksi2 ksi3         ksi4         ksi5 ksi6
#> ksi1 1.000000e+00 2.775558e-17    0  0.00000e+00  0.00000e+00    0
#> ksi2 2.775558e-17 1.000000e+00    0  0.00000e+00  0.00000e+00    0
#> ksi3 0.000000e+00 0.000000e+00    1  0.00000e+00  0.00000e+00    0
#> ksi4 0.000000e+00 0.000000e+00    0  1.00000e+00 -2.45101e-18    0
#> ksi5 0.000000e+00 0.000000e+00    0 -2.45101e-18  1.00000e+00    0
#> ksi6 0.000000e+00 0.000000e+00    0  0.00000e+00  0.00000e+00    1
#> 
#> $f
#> [1] -0.061934576 -0.177532878  0.040214321  0.006030781  0.006116911
#> [6] -0.001756045
#> 
#> $z
#> [1] -8.8811318 -1.9891179  1.0868237  1.2331219 -1.9111148  0.5700178
#> 
#> $Y
#>           [,1]      [,2]      [,3]      [,4]
#> [1,] -4.954835 -4.926723 -4.961451 -5.011309
#> 

dimX <- 6
Astar <- 2
simul_data_complete(dimX,Astar)
#> $simX
#>          [,1]     [,2]     [,3]     [,4]     [,5]    [,6]
#> [1,] 2.115537 2.104685 6.774481 2.106884 2.114472 6.76871
#> 
#> $HH
#> [1] 3
#> 
#> $eta
#>          eta21      eta22
#> [1,] 0.4082483  0.0000000
#> [2,] 0.8164966  0.4472136
#> [3,] 0.4082483 -0.8944272
#> 
#> $r
#> [1] 8.991172 5.383611
#> 
#> $epsilon
#> [1] -0.0009790579 -0.0118313058 -0.0043782094 -0.0096317506 -0.0020437642
#> [6] -0.0101495646
#> 
#> $ksi
#>           ksi1       ksi2
#> [1,] 0.4082483 -0.2886751
#> [2,] 0.4082483 -0.2886751
#> [3,] 0.4082483  0.5773503
#> [4,] 0.4082483 -0.2886751
#> [5,] 0.4082483 -0.2886751
#> [6,] 0.4082483  0.5773503
#> 
#> $crossksi
#>              ksi1         ksi2
#> ksi1 1.000000e+00 1.942637e-17
#> ksi2 1.942637e-17 1.000000e+00
#> 
#> $f
#> [1]  0.1485999 -0.1842899
#> 
#> $z
#> [1] 9.139772 5.199321
#> 
#> $Y
#>          [,1]     [,2]       [,3]
#> [1,] 3.738075 9.824263 -0.8844636
#> 


dimX <- 6
Astar <- 3
simul_data_complete(dimX,Astar)
#> $simX
#>           [,1]    [,2]      [,3]      [,4]      [,5]      [,6]
#> [1,] 0.7476861 -3.0036 -12.43988 0.7230864 -3.008962 -12.45602
#> 
#> $HH
#> [1] 3
#> 
#> $eta
#>          eta31      eta32      eta33
#> [1,] 0.4082483  0.0000000 -0.9128709
#> [2,] 0.8164966  0.4472136  0.3651484
#> [3,] 0.4082483 -0.8944272  0.1825742
#> 
#> $r
#> [1] -12.011840 -13.055323  -3.754353
#> 
#> $epsilon
#> [1]  0.005575675  0.008642815  0.001424047 -0.019024046  0.003281305
#> [6] -0.014708548
#> 
#> $ksi
#>           ksi1       ksi2 ksi3
#> [1,] 0.4082483 -0.2886751 -0.5
#> [2,] 0.4082483 -0.2886751  0.5
#> [3,] 0.4082483  0.5773503  0.0
#> [4,] 0.4082483 -0.2886751 -0.5
#> [5,] 0.4082483 -0.2886751  0.5
#> [6,] 0.4082483  0.5773503  0.0
#> 
#> $crossksi
#>              ksi1         ksi2 ksi3
#> ksi1 1.000000e+00 1.942637e-17    0
#> ksi2 1.942637e-17 1.000000e+00    0
#> ksi3 0.000000e+00 0.000000e+00    1
#> 
#> $f
#> [1] 0.39136991 0.03542457 0.02723037
#> 
#> $z
#> [1] -11.620470 -13.019898  -3.727123
#> 
#> $Y
#>           [,1]      [,2]     [,3]
#> [1,] -1.325714 -16.62291 6.198576
#> 


dimX <- 6
Astar <- 4
simul_data_complete(dimX,Astar)
#> $simX
#>           [,1]      [,2]      [,3]      [,4]      [,5]      [,6]
#> [1,] -7.648636 -8.665154 -2.398943 -4.913243 -5.965114 0.3012907
#> 
#> $HH
#> [1] 4
#> 
#> $eta
#>          eta41      eta42      eta43      eta44
#> [1,] 0.4082483  0.0000000  0.0000000 -0.9128709
#> [2,] 0.8164966  0.4472136  0.1825742  0.3651484
#> [3,] 0.4082483 -0.8944272 -0.3651484  0.1825742
#> [4,] 0.0000000  0.4472136 -0.9128709  0.0000000
#> 
#> $r
#> [1] -11.967303   6.651990  -1.027613  -3.333239
#> 
#> $epsilon
#> [1]  0.004241273  0.015336435  0.006948330  0.018056800 -0.006201699
#> [6] -0.014395664
#> 
#> $ksi
#>           ksi1       ksi2 ksi3       ksi4
#> [1,] 0.4082483 -0.2886751 -0.5  0.4082483
#> [2,] 0.4082483 -0.2886751  0.5  0.4082483
#> [3,] 0.4082483  0.5773503  0.0  0.4082483
#> [4,] 0.4082483 -0.2886751 -0.5 -0.4082483
#> [5,] 0.4082483 -0.2886751  0.5 -0.4082483
#> [6,] 0.4082483  0.5773503  0.0 -0.4082483
#> 
#> $crossksi
#>              ksi1         ksi2 ksi3         ksi4
#> ksi1 1.000000e+00 1.942637e-17    0 0.000000e+00
#> ksi2 1.942637e-17 1.000000e+00    0 2.775558e-17
#> ksi3 0.000000e+00 0.000000e+00    1 0.000000e+00
#> ksi4 0.000000e+00 2.775558e-17    0 1.000000e+00
#> 
#> $f
#> [1] -0.285430026 -0.063746263 -0.050368159 -0.008726327
#> 
#> $z
#> [1] -12.252733   6.588244  -1.077981  -3.341965
#> 
#> $Y
#>           [,1]      [,2]      [,3]     [,4]
#> [1,] -1.887161 -8.435736 -11.07922 3.989194
#> 

rm(list=c("dimX","Astar"))