BAM: Generate age perturbations of layer-counted proxy data

Description Usage Arguments Details Value Author(s) References Examples

Description

This function creates an ensemble of perturbed ages of a given reference chronology that is based on layer counting ("banded age model").

Usage

1
BAM(t, ns = 1000, nc = 1, model = "poisson", rate = 0.05, resize = 1)

Arguments

t

numeric vector providing the original layer-counted chronology.

ns

integer number of age perturbation realisations for each core.

nc

integer number of cores for which an ensemble of age perturbations shall be realised.

model

name string of the random process to use for perturbing the age model; must be either "poisson" (the default) or "bernoulli"; see Comboul et al. (2014) for details on the two models.

rate

numeric vector of probability rate(s) that an age band is perturbed; you can specify a vector of two rates where the first entry is the probability for a missing band and the second entry the probability for a double-counting of a band. If only a single value is specified (per default 0.05), symmetric perturbations are assumed.

resize

the resizing option in case of shorter/longer than original time axes: 0 = do not resize, -1 = resize to shortest realisation, 1 = resize to longest realisation (default).

Details

Ensemble of age perturbations can be realised assuming a single proxy record, or a set of similarly layer-counted proxy data (i.e. a certain number of "cores"). The random age perturbations can either follow a Poisson process or a Bernoulli process; they are realised by randomly removing or doubling time points of the original age model which can result in realisations that are longer (shorter) than the original chronology; in such a case, the output data can be cropped (extended) to match the original length depending on the option specified via resize. Note that the perturbed ages are automatically flipped to range from most recent to oldest measurements when the input ages are given in increasing order. The code is a modified version of the MATLAB function BAM_simul_perturb.m provided with the publication Comboul et al. (2014); please see there for a detailed description of the method.

Value

A list of two elements:

tp:

the old chronology cropped/extended depending on the resizing option (thus tp = t for resize = 0).

Tp:

an array of dimension length(t) * nc * ns with the ns realisations of perturbed ages for each core nc.

Author(s)

Maud Comboul; translated and adopted from the original MATLAB code by Thomas Münch

References

Comboul, M., Emile-Geay, J., Evans, M. N., Mirnateghi, N., Cobb, K. M. and Thompson, D. M.: A probabilistic model of chronological errors in layer-counted climate proxies: applications to annually banded coral archives, Clim. Past, 10(2), 825-841, doi: 10.5194/cp-10-825-2014, 2014.

Examples

1
2
3
4
5
6
7
8
9
t <- 100 : 0
ns <- 100
bam <- BAM(t, ns = ns)
plot(t, t, type = "n", xlim = c(100, 0), ylim = c(100, 0),
     xlab = "Original time", ylab = "Perturbed time")
for (i in 1 : ns) {
lines(bam$tp, bam$Tp[, 1, i], col = "grey", lwd = 1)
}
abline(0, 1, lwd = 2)

EarthSystemDiagnostics/simproxyage documentation built on May 7, 2019, 9:52 p.m.