Calculate Sample Specific Errors
sse.sample(
modern_taxa,
modern_climate,
fossil_taxa,
trainfun,
predictfun,
nboot,
nPLS,
nsig,
usefx = FALSE,
fx_method = "bin",
bin = NA,
cpus = 4,
seed = NULL,
test_mode = FALSE,
test_it = 5
)
The modern taxa abundance data, each row represents a sampling site, each column represents a taxon.
The modern climate value at each sampling site
Fossil taxa abundance data to reconstruct past climates, each row represents a site to be reconstructed, each column represents a taxon.
Training function you want to use, either
WAPLS.w
or TWAPLS.w
.
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
.
The number of bootstrap cycles you want to use.
The number of components to be extracted.
The significant number of components to use to reconstruct past climates, this can be obtained from the cross-validation results.
Boolean flag on whether or not use fx
correction.
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".
Binwidth to get fx, needed for both binned and p-splined method.
if usefx = FALSE
, this should be NA
;
Number of CPUs for simultaneous iterations to execute, check
parallel::detectCores()
for available CPUs on your machine.
Seed for reproducibility.
Boolean flag to execute the function with a limited number
of iterations, test_it
, for testing purposes only.
Number of iterations to use in the test mode.
The bootstrapped standard error for each site.
fx
, TWAPLS.w
,
TWAPLS.predict.w
, WAPLS.w
, and
WAPLS.predict.w
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]
# Load reconstruction data
Holocene <- read.csv("/path/to/Holocene.csv")
taxaColMin <- which(colnames(Holocene) == "taxa0")
taxaColMax <- which(colnames(Holocene) == "taxaN")
core <- Holocene[, taxaColMin:taxaColMax]
## SSE
nboot <- 5 # Recommended 1000
nsig <- 3 # This should be got from the random t-test of the cross validation
sse_tf_Tmin2 <- fxTWAPLS::sse.sample(
modern_taxa = taxa,
modern_climate = modern_pollen$Tmin,
fossil_taxa = core,
trainfun = fxTWAPLS::TWAPLS.w2,
predictfun = fxTWAPLS::TWAPLS.predict.w,
nboot = nboot,
nPLS = 5,
nsig = nsig,
usefx = TRUE,
fx_method = "bin",
bin = 0.02,
cpus = 2,
seed = 1
)
# Run with progress bar
`%>%` <- magrittr::`%>%`
sse_tf_Tmin2 <- fxTWAPLS::sse.sample(
modern_taxa = taxa,
modern_climate = modern_pollen$Tmin,
fossil_taxa = core,
trainfun = fxTWAPLS::TWAPLS.w2,
predictfun = fxTWAPLS::TWAPLS.predict.w,
nboot = nboot,
nPLS = 5,
nsig = nsig,
usefx = TRUE,
fx_method = "bin",
bin = 0.02,
cpus = 2,
seed = 1
) %>% fxTWAPLS::pb()
}