Multiset sparse partial least squares path modeling for high dimensional data analysis
This R application is based on plspm
Install the development version of sPLSPM
# install "devtools"
install.packages("devtools")
library(devtools)
# install "sPLSPM"
install_github("acsala/sPLSPM")
library(sPLSPM)
Generated_data <- sPLSPM::generate_data(number_of_ksi = 1,
number_of_patients = 150,
number_of_Xs_associated_with_ksis = c(15),
number_of_not_associated_Xs = 100,
mean_of_the_regression_weights_of_the_associated_Xs = c(0.9),
sd_of_the_regression_weights_of_the_associated_Xs = c(0.05),
Xnoise_min = -0.2, Xnoise_max = 0.2,
number_of_Ys_associated_with_ksis = c(15),
number_of_not_associated_Ys = 85,
mean_of_the_regression_weights_of_the_associated_Ys = c(0.9),
sd_of_the_regression_weights_of_the_associated_Ys = c(0.05),
Ynoise_min = -0.2, Ynoise_max = 0.2)
X <- Generated_data$X
Y <- Generated_data$Y
data_info1 <- Generated_data$data_info
Data <- cbind(X,Y)
dim(X)
dim(Y)
dim(Data)
## 2 DATASETS connectivity matrix
EXPL_X = c(0,0)
RESP_Y = c(1,0)
path_matrix = rbind(EXPL_X, RESP_Y)
## blocks of outer model
blocks = list(1:dim(X)[2], dim(X)[2]+1:dim(Y)[2])
dim(Data[,blocks[[1]]])
dim(Data[,blocks[[2]]])
## define vector of reflective modes
modes = c("B","A")
## fit the model
time_data <- system.time(
s_satpls <- splspm(Data, path_matrix, blocks, modes, scheme="path",
scaled=T, penalization = "enet", nonzero = c(40,20),
cross_validate = T, lambda = 1, maxiter = 100)
)
s_satpls$outer_model
s_satpls$model$iter
s_satpls$nonzero
s_satpls$lambda