if (FALSE) {
## Simulation of Datasets X (with group variables) and Y a multivariate response variable
n <- 200
sigma.e <- 0.5
p <- 400
q <- 10
theta.x1 <- c(rep(1,15),rep(0,5),rep(-1,15),rep(0,5),rep(1.5,15),
rep(0,5),rep(-1.5,15),rep(0,325))
theta.x2 <- c(rep(0,320),rep(1,15),rep(0,5),rep(-1,15),rep(0,5),
rep(1.5,15),rep(0,5),rep(-1.5,15),rep(0,5))
set.seed(125)
theta.y1 <- runif(10,0.5,2)
theta.y2 <- runif(10,0.5,2)
temp <- matrix(c(theta.y1,theta.y2),nrow=2,byrow=TRUE)
Sigmax <- matrix(0,nrow=p,ncol=p)
diag(Sigmax) <- sigma.e^2
Sigmay <- matrix(0,nrow=q,ncol=q)
diag(Sigmay) <- sigma.e^2
gam1 <- rnorm(n,0,1)
gam2 <- rnorm(n,0,1)
X <- matrix(c(gam1,gam2),ncol=2,byrow=FALSE)%*%matrix(c(theta.x1,theta.x2),nrow=2,byrow=TRUE)
+rmvnorm(n,mean=rep(0,p),sigma=Sigmax,method="svd")
Y <- matrix(c(gam1,gam2),ncol=2,byrow=FALSE)%*%t(svd(temp)$v)
+rmvnorm(n,mean=rep(0,q),sigma=Sigmay,method="svd")
ind.block.x <- seq(20,380,20)
grid.X <- 1:16
## Strategy with same value for both components
tun.gPLS <- tuning.gPLS.X(X, Y, folds = 10, validation = c("Mfold", "loo"),
ncomp=2,keepX = NULL, grid.X=grid.X, setseed=1, progressBar = FALSE,
ind.block.x = ind.block.x)
tun.gPLS$keepX # for each component
##For a sequential strategy
tun.gPLS.1 <- tuning.gPLS.X(X, Y, folds = 10, validation = c("Mfold", "loo"),
ncomp=1, keepX = NULL, grid.X=grid.X, setseed=1,
ind.block.x = ind.block.x)
tun.gPLS.1$keepX # for the first component
tun.gPLS.2 <- tuning.gPLS.X(X, Y, folds = 10, validation = c("Mfold", "loo"), ncomp=2,
keepX = tun.gPLS.1$keepX , grid.X=grid.X, setseed=1,
ind.block.x = ind.block.x)
tun.gPLS.2$keepX # for the second component
}
Run the code above in your browser using DataLab