Functions for reconstructing (predicting) environmental values from biological assemblages using weighted averaging partial least squares (WAPLS) regression and calibration.
WAPLS(y, x, npls=5, iswapls=TRUE, standx=FALSE, lean=FALSE,
check.data=TRUE, ...)WAPLS.fit(y, x, npls=5, iswapls=TRUE, standx=FALSE, lean=FALSE)
# S3 method for WAPLS
predict (object, newdata=NULL, sse=FALSE, nboot=100,
match.data=TRUE, verbose=TRUE, ...)
# S3 method for WAPLS
crossval(object, cv.method="loo", verbose=TRUE, ngroups=10,
nboot=100, h.cutoff=0, h.dist=NULL, ...)
# S3 method for WAPLS
performance(object, ...)
# S3 method for WAPLS
rand.t.test(object, n.perm=999, ...)
# S3 method for WAPLS
screeplot(x, rand.test=TRUE, ...)
# S3 method for WAPLS
print(x, ...)
# S3 method for WAPLS
summary(object, full=FALSE, ...)
# S3 method for WAPLS
plot(x, resid=FALSE, xval=FALSE, npls=1,
xlab="", ylab="", ylim=NULL, xlim=NULL, add.ref=TRUE,
add.smooth=FALSE, ...)
# S3 method for WAPLS
residuals(object, cv=FALSE, ...)
# S3 method for WAPLS
coef(object, ...)
# S3 method for WAPLS
fitted(object, ...)
Function WAPLS
returns an object of class WAPLS
with the following named elements:
species coefficients (the updated "optima").
weighted mean of the environmental variable.
logical indicating whether analysis was WAPLS (TRUE) or PLS (FALSE).
sample scores.
variable (species) scores.
number of pls components extracted.
fitted values for the training set.
original function call.
environmental variable used in the model.
additional information returned for a PLS model.
Function crossval
also returns an object of class WAPLS
and adds the following named elements:
predicted values of each training set sample under cross-validation.
prediction residuals.
If function predict
is called with newdata=NULL
it returns the fitted values of the original model, otherwise it returns a list with the following named elements:
predicted values for newdata
.
If sample specific errors were requested the list will also include:
mean of the bootstrap estimates of newdata.
standard error of the bootstrap estimates for each new sample.
root mean squared error for the training set samples, across all bootstram samples.
standard error of prediction, calculated as the square root of v1^2 + v2^2.
Function performance
returns a matrix of performance statistics for the WAPLS model. See performance
, for a description of the summary.
Function rand.t.test
returns a matrix of performance statistics together with columns indicating the p-value and percentage change in RMSE with each higher component (see van der Veot (1994) for details).
a data frame or matrix of biological abundance data.
a vector of environmental values to be modelled or an object of class wa
.
new biological data to be predicted.
logical logical to perform WAPLS or PLS. Defaults to TRUE = WAPLS.
logical to standardise x-data in PLS, defaults to FALSE.
number of pls components to extract.
logical to perform simple checks on the input data.
logical indicate the function will match two species datasets by their column names. You should only set this to FALSE
if you are sure the column names match exactly.
logical to exclude some output from the resulting models (used when cross-validating to speed calculations).
logical to show head and tail of output in summaries.
logical to plot residuals instead of fitted values.
logical to plot cross-validation estimates.
additional graphical arguments to plot.wa
.
add 1:1 line on plot.
add loess smooth to plot.
cross-validation method, either "loo", "lgo", "bootstrap" or "h-block".
logical show feedback during cross-validation.
number of bootstrap samples.
number of groups in leave-group-out cross-validation, or a vector contain leave-out group menbership.
cutoff for h-block cross-validation. Only training samples greater than h.cutoff
from each test sample will be used.
distance matrix for use in h-block cross-validation. Usually a matrix of geographical distances between samples.
logical indicating that sample specific errors should be calculated.
logical to perform a randomisation t-test to test significance of cross validated components.
number of permutations for randomisation t-test.
logical to indicate model or cross-validation residuals.
additional arguments.
Steve Juggins
Function WAPLS
performs partial least squares (PLS) or weighted averaging partial least squares (WAPLS) regression. WAPLS was first described in ter Braak and Juggins (1993) and ter Braak et al. (1993) and has since become popular in palaeolimnology for reconstructing (predicting) environmental values from sub-fossil biological assemblages, given a training dataset of modern species and envionmental data. Prediction errors and model complexity (number of components) can be estimated by cross-validation using crossval
which implements leave-one out, leave-group-out, or bootstrapping. With leave-group out one may also supply a vector of group memberships for more carefully designed cross-validation experiments.
Function predict
predicts values of the environemntal variable for newdata
or returns the fitted (predicted) values from the original modern dataset if newdata
is NULL
. Variables are matched between training and newdata by column name (if match.data
is TRUE
). Use compare.datasets
to assess conformity of two species datasets and identify possible no-analogue samples.
WAPLS
has methods fitted
and rediduals
that return the fitted values (estimates) and residuals for the training set, performance
, which returns summary performance statistics (see below), coef
which returns the species coefficients, and print
and summary
to summarise the output. WAPLS
also has a plot
method that produces scatter plots of predicted vs observed measurements for the training set.
Function rand.t.test
performs a randomisation t-test to test the significance of the cross-validated components after van der Voet (1994).
Function screeplot
displays the RMSE of prediction for the training set as a function of the number of components and is useful for estimating the optimal number for use in prediction. By default screeplot
will also carry out a randomisation t-test and add a line to scree plot indicating percentage change in RMSE with each component annotate with the p-value from the randomisation test.
ter Braak, C.J.F. & Juggins, S. (1993) Weighted averaging partial least squares regression (WA-PLS): an improved method for reconstructing environmental variables from species assemblages. Hydrobiologia, 269/270, 485-502.
ter Braak, C.J.F., Juggins, S., Birks, H.J.B., & Voet, H., van der (1993). Weighted averaging partial least squares regression (WA-PLS): definition and comparison with other methods for species-environment calibration. In Multivariate Environmental Statistics (eds G.P. Patil & C.R. Rao), pp. 525-560. Elsevier Science Publishers.
van der Voet, H. (1994) Comparing the predictive accuracy of models uing a simple randomization test. Chemometrics and Intelligent Laboratory Systems, 25, 313-323.
WA
, MAT
, performance
, and compare.datasets
for diagnostics.
data(IK)
spec <- IK$spec
SumSST <- IK$env$SumSST
core <- IK$core
fit <- WAPLS(spec, SumSST)
fit
# cross-validate model
fit.cv <- crossval(fit, cv.method="loo")
# How many components to use?
rand.t.test(fit.cv)
screeplot(fit.cv)
#predict the core
pred <- predict(fit, core, npls=2)
#plot predictions - depths are in rownames
depth <- as.numeric(rownames(core))
plot(depth, pred$fit[, 2], type="b", ylab="Predicted SumSST", las=1)
# predictions with sample specific errors
if (FALSE) {
pred <- predict(fit, core, npls=2, sse=TRUE, nboot=1000)
pred
}
Run the code above in your browser using DataLab