loocv {OmicsPLS} | R Documentation |
K fold CV for O2PLS
Description
For (a grid of) values for a
, nx
and ny
, loocv
estimates the prediction error using k-fold CV.
Usage
loocv(
X,
Y,
a = 1:2,
a2 = 1,
b2 = 1,
fitted_model = NULL,
func = o2m,
app_err = F,
kcv,
stripped = TRUE,
p_thresh = 3000,
q_thresh = p_thresh,
tol = 1e-10,
max_iterations = 100
)
Arguments
X |
Numeric matrix. Vectors will be coerced to matrix with |
Y |
Numeric matrix. Vectors will be coerced to matrix with |
a |
Vector of integers. Contains the numbers of joint components. |
a2 |
Vector of integers. Contains the numbers of orthogonal components in |
b2 |
Vector of integers. Contains the numbers of orthogonal components in |
fitted_model |
List. Deprecated. O2PLS model fit with |
func |
Function to fit the O2PLS model with. Only |
app_err |
Logical. Deprecated. Should the apparent error also be computed? |
kcv |
Integer. The value of |
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. |
Details
Note that this function can be easily parallelized (on Windows e.g. with the parallel
package.).
The parameters a
, a2
and b2
can be integers or vectors of integers. A for loop is used to loop over all combinations.
The resulting output is a list, which is more easy to interpret if you use array(unlist(output_of_loocv$CVerr))
as in the example below.
The array wil have varying a
along the first dimension and a2
and b2
along the second and third respectively.
Typing example(loocv)
(hopefully) clarifies this function.
Value
List with two numeric vectors:
CVerr |
Contains the k-fold CV estimated RMSEP |
Fiterr |
Contains the apparent error |