View source: R/Crossval_OmicsPLS.R
crossval_o2m | R Documentation |
Cross-validate procedure for O2PLS
crossval_o2m( X, Y, a, ax, ay, nr_folds, nr_cores = 1, stripped = TRUE, p_thresh = 3000, q_thresh = p_thresh, tol = 1e-10, max_iterations = 100, seed = "off" )
X |
Numeric matrix. Vectors will be coerced to matrix with |
Y |
Numeric matrix. Vectors will be coerced to matrix with |
a |
Vector of positive integers. Denotes the numbers of joint components to consider. |
ax |
Vector of non-negative integers. Denotes the numbers of X-specific components to consider. |
ay |
Vector of non-negative integers. Denotes the numbers of Y-specific components to consider. |
nr_folds |
Positive integer. Number of folds to consider. Note: |
nr_cores |
Positive integer. Number of cores to use for CV. You might want to use |
stripped |
Logical. Use the stripped version of o2m (usually when cross-validating)? |
p_thresh |
Integer. If |
q_thresh |
Integer. If |
tol |
Double. Threshold for which the NIPALS method is deemed converged. Must be positive. |
max_iterations |
Integer. Maximum number of iterations for the NIPALS method. |
seed |
Integer. A random seed to make the analysis reproducible. |
This is the standard CV approach. It minimizes the sum of the prediction errors of X and Y over a three-dimensional grid of integers.
Parallelization is possible on all platforms. On Windows it uses makePSOCKcluster
, then exports all necessary objects to the workers,
and then calls parLapply
. On OSX and Linux the more friendly mclapply
is used, which uses forking.
A print method is defined, printing the minimizers and minimum in a readable way. Also the elapsed time is tracked and reported.
List of class "cvo2m"
with the original and sorted Prediction errors and the number of folds used.
local({ X = scale(jitter(tcrossprod(rnorm(100),runif(10)))) Y = scale(jitter(tcrossprod(rnorm(100),runif(10)))) crossval_o2m(X, Y, a = 1:4, ax = 1:2, ay = 1:2, nr_folds = 5, nr_cores = 1) })
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.