Learn R Programming

analogue (version 0.4-0)

mat: Modern Analogue Technique transfer function models

Description

Modern Analogue Technique (MAT) transfer function models for palaeoecology. The fitted values are the, possibly weighted, averages of the environment for the k-closest modern analogues. MAT is a k-NN method.

Usage

mat(x, ...)

## S3 method for class 'default': mat(x, y, method = c("euclidean", "SQeuclidean", "chord", "SQchord", "bray", "chi.square", "SQchi.square", "information", "chi.distance", "manhattan", "kendall", "gower", "alt.gower", "mixed"), ...) ## S3 method for class 'formula': mat(formula, data, subset, na.action, method = c("euclidean", "SQeuclidean", "chord", "SQchord", "bray", "chi.square", "SQchi.square", "information", "chi.distance", "manhattan", "kendall", "gower", "alt.gower", "mixed"), model = FALSE, ...)

Arguments

x
a data frame containing the training set data, usually species data.
y
a vector containing the response variable, usually environmental data to be predicted from x.
formula
a symbolic description of the model to be fit. The details of model specification are given below.
data
an optional data frame, list or environment (or object coercible by as.data.frame to a data frame) containing the variables in the model. If not found in data, the variables
subset
an optional vector specifying a subset of observations to be used in the fitting process.
na.action
a function which indicates what should happen when the data contain NAs. The default is set by the na.action setting of options, and is
method
a character string indicating the dissimilarity (distance) coefficient to be used to define modern analogues. See Details, below.
model
logical; If TRUE the model frame of the fit is returned.
...
arguments to or from other methods.

Value

  • Returns an object of class mat with the following components:
  • standardlist; the model statistics based on simple averages of k-closest analogues. See below.
  • weightedlist; the model statistics based on weighted of k-closest analogues. See below.
  • Dijmatrix of pairwise sample dissimilarities for the training set x.
  • orig.xthe original training set data.
  • orig.ythe original environmental data or response, y.
  • callthe matched function call.
  • methodthe dissimilarity coefficient used.
  • If model = TRUE then additional components "terms" and "model" are returned containing the terms object and model frame used.

Details

The Modern Analogue Technique (MAT) is perhaps the simplest of the transfer function models used in palaeoecology. An estimate of the environment, $x$, for the response for a fossil sample, $y$, is the, possibly weighted, mean of that variable across the k-closest modern analogues selected from a modern training set of samples. If used, weights are the reciprocal of the dissimilarity between the fossil sample and each modern analogue.

A typical model has the form response ~ terms where response is the (numeric) response data frame and terms is a series of terms which specifies a linear predictor for response. A typical form for terms is ., which is shorthand for "all variables" in data. If . is used, data must also be provided. If specific species (variables) are required then terms should take the form spp1 + spp2 + spp3.

Pairwise sample dissimilarity is defined by dissimilarity or distance coefficients. A variety of coefficients are supported --- see distance for details of the supported coefficients.

k is chosen by the user. The simplest choice for k is to evaluate the RMSE of the difference between the predicted and observed values of the environmental variable of interest for the training set samples for a sequence of models with increasing k. The number of analogues chosen is the value of k that has lowest RMSE. However, it should be noted that this value is biased as the data used to build the model are also used to test the predictive power.

An alternative approach is to employ an optimisation data set on which to evaluate the size of $k$ that provides the lowest RMSEP. This may be impractical with smaller sample sizes.

A third option is to bootstrap re-sample the training set many times. At each bootstrap sample, predictions for samples in the bootstrap test set can be made for $k = 1, ..., n$, where $n$ is the number of samples in the training set. $k$ can be chosen from the model with the lowest RMSEP. See function bootstrap.mat for further details on choosing $k$.

The output from summary.mat can be used to choose $k$ in the first case above. For predictions on an optimsation or test set see predict.mat. For bootstrap resampling of mat models, see bootstrap.mat.

References

Gavin, D.G., Oswald, W.W., Wahl, E.R. and Williams, J.W. (2003) A statistical approach to evaluating distance metrics and analog assignments for pollen records. Quaternary Research 60, 356--367. Overpeck, J.T., Webb III, T. and Prentice I.C. (1985) Quantitative interpretation of fossil pollen spectra: dissimilarity coefficients and the method of modern analogues. Quaternary Research 23, 87--108.

Prell, W.L. (1985) The stability of low-latitude sea-surface temperatures: an evaluation of the CLIMAP reconstruction with emphasis on the positive SST anomalies, Report TR 025. U.S. Department of Energy, Washington, D.C. Sawada, M., Viau, A.E., Vettoretti, G., Peltier, W.R. and Gajewski, K. (2004) Comparison of North-American pollen-based temperature and global lake-status with CCCma AGCM2 output at 6 ka. Quaternary Science Reviews 23, 87--108.

See Also

summary.mat, bootstrap.mat for boostrap resampling of MAT models, predict.mat for making predictions from MAT models, fitted.mat and resid.mat for extraction of fitted values and residuals from MAT models respectively. plot.mat provides a plot.lm-like plotting tool for MAT models.

Examples

Run this code
## continue the RLGH example from ?join
example(join)

## fit the MAT model using the squared chord distance measure
swap.mat <- mat(swapdiat, swappH, method = "SQchord")
swap.mat

## model summary
summary(swap.mat)

## fitted values
fitted(swap.mat)

## model residuals
resid(swap.mat)

## draw summary plots of the model
par(mfrow = c(2,2))
plot(swap.mat)
par(mfrow = c(1,1))

## reconstruct for the RLGH core data
rlgh.mat <- predict(swap.mat, rlgh, k = 10)
rlgh.mat
summary(rlgh.mat)

## draw the reconstruction
reconPlot(rlgh.mat, use.labels = TRUE, display.error = "bars",
          xlab = "Depth", ylab = "pH")

Run the code above in your browser using DataLab