R/YTplsR.R
nbcomp.bootplsR.Rd
Provides a wrapper for the bootstrap function boot
from the
boot
R package.
Implements non-parametric bootstraps for PLS
Regression models by (Y,T) resampling to select the number of components.
nbcomp.bootplsR( Y, X, R = 500, sim = "ordinary", ncpus = 1, parallel = "no", typeBCa = TRUE, verbose = TRUE )
Y | Vector of response. |
---|---|
X | Matrix of predictors. |
R | The number of bootstrap replicates. Usually this will be a single
positive integer. For importance resampling, some resamples may use one set
of weights and others use a different set of weights. In this case |
sim | A character string indicating the type of simulation required.
Possible values are |
ncpus | integer: number of processes to be used in parallel operation: typically one would chose this to the number of available CPUs. |
parallel | The type of parallel operation to be used (if any). If missing, the default is taken from the option "boot.parallel" (and if that is not set, "no"). |
typeBCa | Compute BCa type intervals ? |
verbose | Display info during the run of algorithm? |
A numeric, the number of components selected by the bootstrap.
More details on bootstrap techniques are available in the help of the
boot
function.
A new bootstrap-based stopping criterion in PLS component construction,
J. Magnanensi, M. Maumy-Bertrand, N. Meyer and F. Bertrand (2016), in The Multiple Facets of Partial Least Squares and Related Methods,
doi: 10.1007/978-3-319-40643-5_18
A new universal resample-stable bootstrap-based stopping criterion for PLS component construction,
J. Magnanensi, F. Bertrand, M. Maumy-Bertrand and N. Meyer, (2017), Statistics and Computing, 27, 757–774.
doi: 10.1007/s11222-016-9651-4
New developments in Sparse PLS regression, J. Magnanensi, M. Maumy-Bertrand,
N. Meyer and F. Bertrand, (2021), Frontiers in Applied Mathematics and Statistics,
doi: 10.3389/fams.2021.693126
.
Jérémy Magnanensi, Frédéric Bertrand
frederic.bertrand@utt.fr
https://fbertran.github.io/homepage/
data(pine, package="plsRglm") Xpine<-pine[,1:10] ypine<-log(pine[,11]) res <- nbcomp.bootplsR(ypine, Xpine)#> [1] 1 #> ____************************************************____ #> ____Component____ 1 ____ #> ____Predicting X without NA neither in X nor in Y____ #> ****________________________________________________**** #> #> [1] 2 #> ____************************************************____ #> ____Component____ 1 ____ #> ____Component____ 2 ____ #> ____Predicting X without NA neither in X nor in Y____ #> ****________________________________________________**** #> #> [1] 3 #> ____************************************************____ #> ____Component____ 1 ____ #> ____Component____ 2 ____ #> ____Component____ 3 ____ #> ____Predicting X without NA neither in X nor in Y____ #> ****________________________________________________**** #> #> [1] "Optimal number of components: K = 2"nbcomp.bootplsR(ypine, Xpine, typeBCa=FALSE)#> [1] 1 #> ____************************************************____ #> ____Component____ 1 ____ #> ____Predicting X without NA neither in X nor in Y____ #> ****________________________________________________**** #> #> [1] 2 #> ____************************************************____ #> ____Component____ 1 ____ #> ____Component____ 2 ____ #> ____Predicting X without NA neither in X nor in Y____ #> ****________________________________________________**** #> #> [1] 3 #> ____************************************************____ #> ____Component____ 1 ____ #> ____Component____ 2 ____ #> ____Component____ 3 ____ #> ____Predicting X without NA neither in X nor in Y____ #> ****________________________________________________**** #> #> [1] "Optimal number of components: K = 2"#> [1] 2# \donttest{ nbcomp.bootplsR(ypine, Xpine, typeBCa=FALSE, verbose=FALSE)#> [1] 2#> [1] 1 #> ____************************************************____ #> ____Component____ 1 ____ #> ____Predicting X without NA neither in X nor in Y____ #> ****________________________________________________**** #> #> Error in bca.ci(boot.out, conf, index[1L], L = L, t = t.o, t0 = t0.o, : #> estimated adjustment 'w' is infinitenbcomp.bootplsR(ypine, Xpine, sim="permutation", typeBCa=FALSE)#> [1] 1 #> ____************************************************____ #> ____Component____ 1 ____ #> ____Predicting X without NA neither in X nor in Y____ #> ****________________________________________________**** #> #> [1] "Optimal number of components: K = 0"#> [1] 0# }