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,] 0.3249479 -1.302068 3.521977 1.286913 0.09277795 -1.698084 3.301232
#>           [,8]     [,9]     [,10]    [,11]    [,12]      [,13]    [,14]
#> [1,] 0.8790774 1.540645 -1.397721 1.816054 1.929831 -0.8677635 1.803039
#>         [,15]     [,16]    [,17]    [,18]      [,19]   [,20]
#> [1,] 1.551342 -1.428901 1.821296 1.928866 -0.9087361 1.81602
#> 
#> $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]  3.5832333  3.7769876 -5.7734951 -0.6660961  0.5808390 -0.1603459
#> 
#> $epsilon
#>  [1] -0.0085617466  0.0052469322  0.0038326312  0.0053674943 -0.0104330966
#>  [6] -0.0001248337  0.0133863839 -0.0118234602 -0.0127681172  0.0157861392
#> [11] -0.0009161949  0.0034679718  0.0124481917 -0.0013463205 -0.0020712461
#> [16] -0.0153937623  0.0043261318  0.0025029332 -0.0285243903  0.0116344297
#> 
#> $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.5481464154 -0.1296797340 -0.0413287955  0.0013237678 -0.0001064198
#> [6] -0.0005108544
#> 
#> $z
#> [1]  3.0350869  3.6473079 -5.8148239 -0.6647723  0.5807326 -0.1608567
#> 
#> $Y
#>           [,1]     [,2]     [,3]      [,4]
#> [1,] 0.3086506 0.328639 0.306521 0.3387533
#> 

dimX <- 6
Astar <- 2
simul_data_complete(dimX,Astar)
#> $simX
#>           [,1]      [,2]      [,3]      [,4]      [,5]      [,6]
#> [1,] -11.92382 -11.93983 -12.24377 -11.93565 -11.93258 -12.24643
#> 
#> $HH
#> [1] 3
#> 
#> $eta
#>          eta21      eta22
#> [1,] 0.4082483  0.0000000
#> [2,] 0.8164966  0.4472136
#> [3,] 0.4082483 -0.8944272
#> 
#> $r
#> [1] -29.4884597  -0.3327661
#> 
#> $epsilon
#> [1]  0.018729106  0.002720558 -0.013029374  0.006899366  0.009973634
#> [6] -0.015698764
#> 
#> $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.24499429  0.02645113
#> 
#> $z
#> [1] -29.7334540  -0.3063149
#> 
#> $Y
#>           [,1]      [,2]      [,3]
#> [1,] -12.11383 -24.43199 -11.83788
#> 


dimX <- 6
Astar <- 3
simul_data_complete(dimX,Astar)
#> $simX
#>          [,1]      [,2]      [,3]     [,4]      [,5]      [,6]
#> [1,] 3.705658 -3.714216 -5.083066 3.689309 -3.706379 -5.081213
#> 
#> $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] -4.157965 -5.856378 -7.411954
#> 
#> $epsilon
#> [1]  0.006571784 -0.001347999 -0.004402565 -0.009776634  0.006489552
#> [6] -0.002549603
#> 
#> $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.002308828 -0.033314083  0.065541470
#> 
#> $z
#> [1] -4.155656 -5.889693 -7.346413
#> 
#> $Y
#>          [,1]     [,2]    [,3]
#> [1,] 5.033656 -8.66688 2.25251
#> 


dimX <- 6
Astar <- 4
simul_data_complete(dimX,Astar)
#> $simX
#>           [,1]     [,2]     [,3]     [,4]     [,5]     [,6]
#> [1,] -7.615509 2.714557 4.993652 -2.73239 7.556177 9.864435
#> 
#> $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]  6.020839  8.600495 10.301002 -5.952019
#> 
#> $epsilon
#> [1] -1.035508e-02  1.870966e-02  5.797451e-05  1.296144e-02  5.262091e-04
#> [6]  1.103775e-02
#> 
#> $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.072417358  0.022668719  0.025597331  0.008497631
#> 
#> $z
#> [1]  5.948422  8.623164 10.326599 -5.943521
#> 
#> $Y
#>          [,1]     [,2]      [,3]      [,4]
#> [1,] 7.865419 8.415744 -10.13458 -5.559469
#> 

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