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,] -1.712616 -2.708999 0.5089005 1.805394 -0.5960683 -2.198365 1.651388
#>          [,8]     [,9]     [,10]    [,11]    [,12]     [,13]      [,14]
#> [1,] 2.335166 2.484493 -1.239708 0.119169 0.616752 -2.469253 -0.2062345
#>         [,15]     [,16]     [,17]     [,18]     [,19]     [,20]
#> [1,] 2.483004 -1.225264 0.1188616 0.5938215 -2.460134 -0.195174
#> 
#> $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] -0.5181719  0.2851329 -6.7860253  2.5495065 -1.5436408 -0.6119904
#> 
#> $epsilon
#>  [1]  0.0190179819  0.0092237542 -0.0123040978 -0.0095696117  0.0044599032
#>  [6]  0.0007421335 -0.0009226144  0.0010871323  0.0125932698 -0.0125990862
#> [11]  0.0012991337  0.0035771458  0.0045898592 -0.0090410580  0.0111044805
#> [16]  0.0018442834  0.0009917598 -0.0193532713  0.0137086949  0.0020194035
#> 
#> $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 -4.902020e-18    0 -1.574365e-18  1.184091e-17    0
#> ksi2 -4.902020e-18  1.000000e+00    0 -2.036874e-18 -1.030127e-17    0
#> ksi3  0.000000e+00  0.000000e+00    1  0.000000e+00  0.000000e+00    0
#> ksi4 -1.574365e-18 -2.036874e-18    0  1.000000e+00 -4.902020e-18    0
#> ksi5  1.184091e-17 -1.030127e-17    0 -4.902020e-18  1.000000e+00    0
#> ksi6  0.000000e+00  0.000000e+00    0  0.000000e+00  0.000000e+00    1
#> 
#> $f
#> [1] -0.3607455854 -0.1446953990 -0.0039547825 -0.0083423154  0.0001853034
#> [6]  0.0003924178
#> 
#> $z
#> [1] -0.8789175  0.1404376 -6.7899801  2.5411641 -1.5434554 -0.6115980
#> 
#> $Y
#>           [,1]      [,2]      [,3]      [,4]
#> [1,] -3.619587 -3.634135 -3.622975 -3.575727
#> 

dimX <- 6
Astar <- 2
simul_data_complete(dimX,Astar)
#> $simX
#>           [,1]      [,2]     [,3]      [,4]      [,5]     [,6]
#> [1,] -4.423119 -4.431336 1.048331 -4.423496 -4.413834 1.045084
#> 
#> $HH
#> [1] 3
#> 
#> $eta
#>          eta21      eta22
#> [1,] 0.4082483  0.0000000
#> [2,] 0.8164966  0.4472136
#> [3,] 0.4082483 -0.8944272
#> 
#> $r
#> [1] -6.365877  6.310611
#> 
#> $epsilon
#> [1] -0.0025442301 -0.0107615820  0.0037565033 -0.0029208804  0.0067408226
#> [6]  0.0005094681
#> 
#> $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.109716e-17
#> ksi2 1.109716e-17 1.000000e+00
#> 
#> $f
#> [1] 0.1493877 0.1110407
#> 
#> $z
#> [1] -6.216489  6.421651
#> 
#> $Y
#>          [,1]     [,2]      [,3]
#> [1,] -2.52821 -2.18031 -8.268568
#> 


dimX <- 6
Astar <- 3
simul_data_complete(dimX,Astar)
#> $simX
#>          [,1]      [,2]     [,3]     [,4]      [,5]     [,6]
#> [1,] 5.786717 -3.365062 8.110312 5.793858 -3.356623 8.116651
#> 
#> $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]  8.599434  7.975830 -9.162390
#> 
#> $epsilon
#> [1] -0.002758572  0.007852146 -0.005239954  0.004382694  0.016291245
#> [6]  0.001099254
#> 
#> $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.109716e-17    0
#> ksi2 1.109716e-17 1.000000e+00    0
#> ksi3 0.000000e+00 0.000000e+00    1
#> 
#> $f
#> [1] -0.348428362 -0.264057480  0.006344453
#> 
#> $z
#> [1]  8.251006  7.711772 -9.156045
#> 
#> $Y
#>          [,1]     [,2]      [,3]
#> [1,] 11.68288 6.844786 -5.222383
#> 


dimX <- 6
Astar <- 4
simul_data_complete(dimX,Astar)
#> $simX
#>            [,1]     [,2]     [,3]       [,4]     [,5]     [,6]
#> [1,] -0.4552968 5.430575 3.174759 -0.3671978 5.549447 3.267214
#> 
#> $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.7774988  0.7782884  5.9034128 -0.1237278
#> 
#> $epsilon
#> [1]  0.004691429 -0.012849206  0.009023812 -0.008232835  0.004998913
#> [6]  0.000454679
#> 
#> $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.109716e-17    0 2.293169e-19
#> ksi2 1.109716e-17 1.000000e+00    0 1.665841e-17
#> ksi3 0.000000e+00 0.000000e+00    1 0.000000e+00
#> ksi4 2.293169e-19 1.665841e-17    0 1.000000e+00
#> 
#> $f
#> [1] 0.79068418 0.15805796 0.01084444 0.01590103
#> 
#> $z
#> [1]  7.5681830  0.9363463  5.9142573 -0.1078268
#> 
#> $Y
#>          [,1]     [,2]       [,3]      [,4]
#> [1,] 3.159941 7.615641 0.02105927 -4.997839
#> 

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