TimeUncertaintyTF: Time uncertainty transfer function

Description Usage Arguments Details Value Author(s) References See Also

View source: R/TimeUncertaintyTF.R

Description

This function implements an empirical Monte Carlo approach to estimate the spectral transfer function for the effect of time uncertainty on the spatial average of a common proxy signal recorded by a given core array.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
TimeUncertaintyTF(
  t = 100:1,
  acp = c(t[1], NA),
  nt = length(t),
  nc = 1,
  ns = 100,
  model = "poisson",
  rate = 0.05,
  resize = 1,
  surrogate.fun = stats::rnorm,
  fun.par = NULL,
  pad = TRUE,
  ...
)

Arguments

t

numeric vector of integer values providing a reference chronology for the age perturbations (starting with the youngest age)

acp

numeric vector of age control points where the age uncertainty is assumed to be zero. Per default, a two-element vector where the first element is the start age (t[1]) and the second element NA resulting in an unconstrained age perturbation process; see details for handling more age control points.

nt

the length of the records (i.e. the number of data points) to simulate; per default set to length(t).

nc

the number of cores in the modelled core array

ns

the number of Monte Carlo simulations for estimating the transfer function

model

name string of the random process to use for realising the age perturbations; 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).

surrogate.fun

the random number generator to use for creating the noise time series; per default, Gaussian white noise is created using the base R function rnorm.

fun.par

an otional list of additional parameters which are passed to surrogate.fun

pad

Strong age perturbations may result in time series that do not reach the final age of the reference chronology – shall the resulting NA values (in case of resize = 1) be set to 0 for the spectral estimation? Defaults to TRUE. This should not influence the spectral estimation provided the number of NA values is small compared to the total length of the time series.

...

additional parameters which are passed to the spectral estimation function SpecMTM.

Details

The approach is described in detail in Münch and Laepple (2018). In brief, nc identical surrogate time series are created and age perturbed and the average of these time series is calculated. The process is repeated ns times. For each of the ns realisations, spectra of the average age-perturbed and original time series are calculated yielding the spectral transfer function.

The modelling of the time uncertainty follows the approach presented in Comboul et al. (2014) which is implemented in the package simproxyage and hence needed for this function to work. The package is available on GitHub under https://github.com/EarthSystemDiagnostics/simproxyage and can be installed directly using remotes::install_github("EarthSystemDiagnostics/simproxyage").

The spectral estimates are calculated using Thomson’s multitaper method with three windows with linear detrending before analysis.

Handling of age control points (see package simproxyage for more details):

The function allows one to model the age uncertainty with several age control points (ACP) where the age uncertainty evolves according to the model of Comboul et al. (2014) between the age control points but is forced back to zero time uncertainty at the ACPs following a Brownian Bridge process.

Per default, the start age (i.e. the youngest age at the core top) is assumed to be the first ACP, thus, if not set explicitly in the vector acp, the youngest age is added as its first element. You can specify an arbitrary number of additional ACPs. Between each pair of ACPs (starting at the core top), constrained age perturbation realisations are performed following the Comboul et al. (2014) model and the Brownian Bridge concept. If the last ACP equals the oldest age in t (i.e. the last proxy data point), the last core segment also follows a Brownian Bridge process. Alternatively, if the last ACP is younger than the final age, NA is added as the last element to the vector acp which results in an unconstrained age perturbation process for the last core segment.

ACPs lying outside the time interval defined by t will be removed from the vector acp with a warning.

Value

a list of the components input, stack and ratio which are objects of class "spec" providing averages over the ns simulations of:

input:

the original spectrum of the surrogate data

stack:

the spectrum of the spatial average of the age-perturbed records

ratio:

their ratio (perturbed/unperturbed), i.e. the transfer function.

Author(s)

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, https://doi.org/10.5194/cp-10-825-2014, 2014.

Münch, T. and Laepple, T.: What climate signal is contained in decadal- to centennial-scale isotope variations from Antarctic ice cores? Clim. Past, 14, 2053–2070, https://doi.org/10.5194/cp-14-2053-2018, 2018.

See Also

[simproxyage]{MonteCarloArray}


EarthSystemDiagnostics/proxysnr documentation built on Oct. 2, 2021, 3:03 p.m.