Leave-one-out cross-validation as rioja (https://cran.r-project.org/package=rioja).

cv.w(
  modern_taxa,
  modern_climate,
  nPLS = 5,
  trainfun,
  predictfun,
  usefx = FALSE,
  fx_method = "bin",
  bin = NA,
  cpus = 4,
  test_mode = FALSE,
  test_it = 5
)

Arguments

modern_taxa

The modern taxa abundance data, each row represents a sampling site, each column represents a taxon.

modern_climate

The modern climate value at each sampling site.

nPLS

The number of components to be extracted.

trainfun

Training function you want to use, either WAPLS.w or TWAPLS.w.

predictfun

Predict function you want to use: if trainfun is WAPLS.w, then this should be WAPLS.predict.w; if trainfun is TWAPLS.w, then this should be TWAPLS.predict.w.

usefx

Boolean flag on whether or not use fx correction.

fx_method

Binned or p-spline smoothed fx correction: if usefx = FALSE, this should be NA; otherwise, fx function will be used when choosing "bin"; fx_pspline function will be used when choosing "pspline".

bin

Binwidth to get fx, needed for both binned and p-splined method. if usefx = FALSE, this should be NA;

cpus

Number of CPUs for simultaneous iterations to execute, check parallel::detectCores() for available CPUs on your machine.

test_mode

boolean flag to execute the function with a limited number of iterations, test_it, for testing purposes only.

test_it

number of iterations to use in the test mode.

Value

leave-one-out cross validation results

Examples

if (FALSE) {
# Load modern pollen data
modern_pollen <- read.csv("/path/to/modern_pollen.csv")
                                      
# Extract taxa
taxaColMin <- which(colnames(modern_pollen) == "taxa0")
taxaColMax <- which(colnames(modern_pollen) == "taxaN")
taxa <- modern_pollen[, taxaColMin:taxaColMax]

## LOOCV
test_mode <- TRUE # It should be set to FALSE before running
### without fx
cv_t_Tmin <- fxTWAPLS::cv.w(taxa,
                            modern_pollen$Tmin,
                            nPLS = 5,
                            fxTWAPLS::TWAPLS.w,
                            fxTWAPLS::TWAPLS.predict.w,
                            cpus = 2, # Remove the following line
                            test_mode = test_mode)
### with fx
cv_tf_Tmin <- fxTWAPLS::cv.w(taxa,
                             modern_pollen$Tmin,
                             nPLS = 5,
                             fxTWAPLS::TWAPLS.w,
                             fxTWAPLS::TWAPLS.predict.w,
                             usefx = TRUE,
                             fx_method = "bin",
                             bin = 0.02,
                             cpus = 2, # Remove the following line
                             test_mode = test_mode)  

# Run with progress bar
`%>%` <- magrittr::`%>%`
### without fx
cv_t_Tmin <- fxTWAPLS::cv.w(taxa,
                            modern_pollen$Tmin,
                            nPLS = 5,
                            fxTWAPLS::TWAPLS.w,
                            fxTWAPLS::TWAPLS.predict.w,
                            cpus = 2, # Remove the following line
                            test_mode = test_mode) %>% fxTWAPLS::pb()
### with fx
cv_tf_Tmin <- fxTWAPLS::cv.w(taxa,
                             modern_pollen$Tmin,
                             nPLS = 5,
                             fxTWAPLS::TWAPLS.w,
                             fxTWAPLS::TWAPLS.predict.w,
                             usefx = TRUE,
                             fx_method = "bin",
                             bin = 0.02,
                             cpus = 2, # Remove the following line
                             test_mode = test_mode) %>% fxTWAPLS::pb()
}