Chronological uncertainty is a hallmark of the paleoenvironmental sciences and geosciences. While many tools have been made available to researchers to quantify age uncertainties suitable for various settings and assumptions, disparate tools and output formats often discourage integrative approaches. In addition, associated tasks like propagating age-model uncertainties to subsequent analyses, and visualizing the results, have received comparatively little attention in the literature and available software. Here, we describe geoChronR, an open-source R package to facilitate these tasks. geoChronR is built around an emerging data standard (Linked PaleoData, or LiPD) and offers access to four popular age-modeling techniques (Bacon, BChron, OxCal, BAM). The output of these models is used to conduct ensemble data analysis, quantifying the impact of chronological uncertainties on common analyses like correlation, regression, principal component, and spectral analyses by repeating the analysis across a large collection of plausible age models. We present five real-world use cases to illustrate how geoChronR may be used to facilitate these tasks, visualize the results in intuitive ways, and store the results for further analysis, promoting transparency and reusability.

Quantifying chronological uncertainties, and how they influence the understanding of past changes in Earth systems, is a unique and fundamental challenge of the paleoenvironmental sciences and geosciences.
Without robust error determination, it is impossible to properly assess the extent to which past changes occurred simultaneously across regions, accurately estimate rates of change or the duration of abrupt events, or attribute causality – all of which limit our capacity to apply paleogeoscientific understanding to modern and future processes.
The need for better solutions to both characterize uncertainty, and to explicitly evaluate how age uncertainty impacts the interpretation of records of past climate, ecology or landscapes, has been long recognized

improving analytical techniques that allow for more precise age determination on smaller and context-specific samples

refining our understanding of how past changes in the Earth system impact chronostratigraphy, for example, improvements to the radiocarbon calibration curve

dramatically improving the level of sophistication and realism in age–depth models used to estimate the ages of sequences between dated samples

Over the past 20 years, these advances have been widely, but not completely, adopted. Indeed, despite the progress made in quantifying uncertainty in both age determinations and age models, comparatively few studies have formally evaluated how chronological uncertainty may have affected the inferences made from them. For instance, whereas the algorithms mentioned above have been broadly used, studies typically calculate a single “best” estimate (often the posterior median or mean), use this model to place measured paleoclimatic or paleoenvironmental data on a timescale, and then proceed to analyze the record with little to no reference to the uncertainties generated as part of the age-modeling exercise, however rigorous in its own right. In addition, few studies have evaluated sensitivity to the choice of age-modeling technique or choice of parameters, so that the typical discussion of chronological uncertainties remains partial and qualitative.

This paradigm is beginning to change.
The vast majority of modern age-uncertainty quantification techniques estimate uncertainties by generating an “ensemble” of plausible age models, hundreds or thousands of plausible alternate age–depth relationships that are consistent with radiometric age estimates, the depositional or accumulation processes of the archive, and the associated uncertainties.
In recent years, some studies have taken advantage of these age ensembles, evaluating how the results of their analyses and conclusions vary across the ensemble members

Despite its potential to substantially improve uncertainty quantification for the paleoenvironmental sciences and geosciences, this framework is not widely utilized.
The majority of studies utilizing this approach have been regional

For synthesis studies, the necessary geochronological data are not publicly available for the vast majority of records. Even when they are available, the data are archived in diverse and unstructured formats. Together, this makes what should be a simple process of aggregating and preparing data for analysis prohibitively time consuming.

For studies of new and individual records, few tools for ensemble analysis are available, and those that are require a degree of comfort with coding languages and scientific programming that is rare among paleoenvironmental scientists and geoscientists.

There is a disconnect between age-model development and time-uncertain analysis. Published approaches have utilized either simplified age-modeling approaches

Extracting the relevant data from commonly used age-modeling algorithms, creating time-uncertain ensembles, then reformatting those data for analysis in available tools typically requires the development of extensive custom codes. geoChronR presents an integrative approach to facilitate this work.

geoChronR was built to lower the barriers to broader adoption of these emerging methods.
Thus far, geoChronR has been primarily designed with Quaternary datasets in mind, for which a variety of chronostratigraphic methods are available: radiometric dating (

geoChronR provides an easily accessible, open-source, and extensible software package of industry-standard and cutting-edge tools that provides users with a single environment to create, analyze, and visualize time-uncertain data.
geoChronR is designed around emerging standards that connect users to growing libraries of standardized datasets formatted in the Linked PaleoData (LiPD) format

This paper describes the design, analytical underpinnings, and most common use cases of geoChronR.
Section

geoChronR does not introduce any new approaches to age-uncertainty quantification; rather, it integrates existing, widely used packages while streamlining the acquisition of age ensemble members.
Fundamentally, there are two types of age models used in the paleoenvironmental sciences and geosciences: tie-point and layer-counted models.
Most of the effort in age-uncertainty quantification in the community has been focused on tie-point modeling, where the goal is to estimate ages (and their uncertainties) along a depth profile given chronological estimates (and their uncertainties) at multiple depths downcore.
Over the past 20 years, these algorithms have progressed from linear or polynomial regressions with simple characterizations of uncertainty

In addition to working with ensembles from tie-point age models, geoChronR connects users to probabilistic models of layer-counted chronologies.
The banded age model (BAM)

The Bayesian ACcumulatiON (Bacon) algorithm

BChron

Bchron has several key parameters which allow a user to encode their specific knowledge about their data.
In particular, the

The OxCal software package has a long history and extensive tools for the statistical treatment of radiocarbon and other geochronological data

BAM

geoChronR archives the outcome of all of these models in the LiPD format

ensemble tables, which store the output of an algorithm that produces age-model ensembles, and a reference column (typically depth);

summary tables, which describe summary statistics produced by the algorithm (e.g., median and 2

distribution tables, which store age–probability distributions for calibrated ages, typically only used for calibrated radiocarbon ages.

Schematic representation of a Linked PaleoData (LiPD) dataset, with a focus on chronological data. A LiPD dataset can contain one or more instances of all of the data objects and structures. The PaleoData structure mirrors that of the chronData but is not shown for clarity.

LiPD can also store relevant metadata about the modeling exercise, including the values of the parameters used to generate the data tables. This storage mechanism allows for an efficient sweep over the function parameters and comparison of the results.

The capability of geoChronR to structure the output of the popular age-modeling algorithms described in this section into LiPD is a key value proposition of geoChronR. Once structured as a LiPD object in R, these data and models can be written out to a LiPD file and readily analyzed, shared, and publicly archived.

Some theoretical work has attempted to quantify how chronological uncertainty may affect various paleoenvironmental and geoscientific inferences

Correlation is the most common measure of a relationship between two variables (

All correlation analyses for time series are built on the assumption the datasets can be aligned on a common timeline. Age-uncertain data violate this assumption. We overcome this by treating each ensemble member from one or more age-uncertainty time series as valid for that iteration, then “bin” each of the time series into coeval intervals. The “binning” procedure in geoChronR sets up an interval, which is typical evenly spaced, over which the data are averaged. Generally, this intentionally degrades the median resolution of the time series, for example, a time series with 37-year median spacing could be reasonably “binned” into 100- or 200-year bins. The binning procedure is repeated for each ensemble member, meaning that between different ensembles, different observations will be placed in different bins.

Following binning, the correlation is calculated and recorded for each ensemble member. The standard way to assess correlation significance is using a Student's

The simplest approach is to adjust the test's sample size to reflect the reduction in degrees of freedom due to autocorrelation. Following

A parametric alternative is to generate surrogates, or random synthetic time series, that emulate the persistence characteristics of the series. This “isopersistent” test generates

A non-parametric alternative is the approach of

In addition to the impact of autocorrelation on this analysis, repeating the test over multiple ensemble members raises the issue of test multiplicity

Linear regression is a commonly used tool to model the relationships between paleoenvironmental data and instrumental or other datasets.
One application is calibration in time

geoChronR implements the age-uncertain principal component analysis (PCA) procedure introduced by

As in

Many research questions in paleoclimatology and related geosciences revolve around spectral analysis: describing phase leads and lags among different climate system components over the Pleistocene

the Lomb–Scargle periodogram

REDFIT, a version of the Lomb–Scargle periodogram tailored to paleoclimatic data

the wavelet-based method of

the multi-taper method (MTM) of

As described in Sect.

One of the challenges of ensembles is that they add at least one additional dimension to the results, which can be difficult to visualize.
geoChronR aims to facilitate simple creation of intuitive, publication-quality figures that provide multiple options for visualizing the impacts of age uncertainty, while maintaining flexibility for users to customize their results as needed.
To meet the multiple constraints of simplicity, quality, and customization, geoChronR relies heavily on the

The figures in Sect.

The most common figure that users produce with geoChronR are ensemble time series. geoChronR uses two complementary approaches to visualize these ensembles. The first is the simplest, where a large subset of the ensemble members are plotted as semi-transparent lines.
This approach, implemented in

geoChronR incorporates simple mapping capabilities that rely on the

It is customary to plot spectra on a log–log scale, which helps separate the low powers and low frequencies.
This choice also naturally highlights scaling laws

We now illustrate the use of these tools on five use cases. The first example shows how a user might create age ensembles on different archives, and how to visualize the timing of abrupt events with appropriate uncertainty quantification.
The second example walks through ensemble correlation of age-uncertain records.
The third introduces the topic of age-uncertain calibration in time.
The fourth provides an example of regional age-uncertain principal components analyses, and the fifth deals with spectral analysis.
The complete details needed to reproduce these use cases are available in the R Markdown source code for this paper and are elaborated upon with additional detail and customization options in the “vignettes” included within the geoChronR package, as well as at

A common first task when using geoChronR is to create an age ensemble, either because the user is developing a new record or because the age ensemble data for the record they are interested in is unavailable.
As described in Sect.

Age–depth model generated by BChron for a speleothem from Hulu Cave. Relative age probability distributions are shown in purple. Median age–depth relationship is in black, with 50th and 95th percentile highest-density probability ranges shown in dark and light gray, respectively. Five random age–depth ensemble members are shown in red.

After an age ensemble has been added to a LiPD object, the user can visualize the ensemble time series using the

Impact of age uncertainty on reconstructed temperature at GISP2 over the past 50 000 years. The median ensemble member is shown in black, with the 50 % and 95 % highest-density probability ranges shown in dark and light gray, respectively. Five random age-uncertain temperature ensemble members are shown in red.

Now that the user has generated age ensembles for the two datasets, they wish to see if a correlation between the two datasets is robust to the age uncertainty modeled here.
On multi-millennial timescales, the two datasets display such similar features that the well-dated Hulu Cave record, and other similar records from China and Greenland, has been used to argue for atmospheric teleconnections between the regions and support the independent chronology of GISP2

Here, we calculate correlations during the period of overlap in 200-year steps, determining significance for each pair of ensemble members while accounting for autocorrelation.
geoChronR includes four built-in approaches to estimate the significance of correlations (Sect.

Distribution of age-uncertain correlation between Hulu Cave speleothem and GISP2 ice core

As mentioned above, there are many reasons to believe that there are teleconnections that link Greenland temperatures to the dynamic monsoon circulation in Asia, especially during abrupt climate changes during glacial periods

We first note that evaluating the significance of age-uncertainty correlation remains somewhat subjective, as there is no theoretical justification for what fraction of ensemble correlation results should be expected to pass such a significance test.
Indeed, two correlated time series, when afflicted with age uncertainty, will commonly return some fraction of insignificant results when random ensemble members are correlated against each other.
The frequency of these “false negatives” depends on the structure of the age uncertainties and the time series and will vary to some extent by random chance.
One way to get a sense of the vulnerability of a time series to false negatives is to perform an age-uncertain correlation of a dataset with itself.
It is appropriate to consider the results of this analysis as a best-case scenario and to consider the correlation results in this light.
For illustration, we perform this calculation with the Hulu Cave

Distribution of age-uncertain correlation between Hulu Cave speleothem

The impact of age uncertainty on the correlation of this record is apparent; even when correlated against itself, only 3.5 % of the ensembles have

Second, correlations are spectrally blind: they lump together all timescales without regard for the dynamics that govern them. Because dynamical systems with large spatial scales tend to have long timescales as well, it is natural to expect that the GISP2 and Hulu records may vary in concert over millennial-scale events but not necessarily shorter ones. Lastly, since age uncertainties will disproportionately affect high-frequency oscillations

If the goal is to align features of interest, one solution would be to extract such features via singular spectrum analysis

Generally, age uncertainties obscure relationships between records, while in rare cases creating the appearance of spurious correlations. It is appropriate to think of the ensemble correlation results produced by geoChronR as a first-order estimate of the age-uncertain correlation characteristics between time series rather than a binary answer to the question of whether these two datasets are significantly correlated. However, as a rule of thumb, if more than half of the ensemble correlation results are significant, it is reasonable to characterize that correlation as robust to age uncertainty.

A natural extension of ensemble correlation is ensemble regression, for which a common use case is calibrating a paleoenvironmental proxy “in time” by regressing it against an instrumental series using a period of overlapping measurements

The function

Results of ensemble regression.

We note that there are use cases where regressing one age-uncertain variable onto another is called for, and

The previous use cases have highlighted age-uncertain analyses at one or two locations. Yet quantifying the effects of age uncertainty can be even more impactful over larger collections of sites. Here, we showcase how to use geoChronR to perform age-uncertain PCA (Sect. 3.3). When seeking to analyze a large collection of datasets, the first, and often most time-intensive, step is to track down, format, and standardize the data. Fortunately, the emergence of community-curated standardized data collections

Once filtered, the data can be visualized using

Temperature-sensitive time series from the Atlantic Arctic in

As in correlation and regression, aligning the data onto a common timescale is required for ensemble PCA. All but two of these datasets are annually resolved, and the other two have 5-year resolution, so it is reasonable to average these data into 5-year bins. Furthermore, since many of the records do not include data before 1400 CE, we only analyze the period from 1400 to 2000 CE. The data are now prepared for the ensemble PCA calculation, following a few choices in methodology and parameters. Because the data analyzed here have variable units, and we are not interested in the magnitude of the variance (only the relative variability between the datasets), we choose to use a correlation, rather than covariance, matrix. Next, we choose the number of components to estimate. After the analysis, a scree plot is used to determine the number of significant components. We want to estimate several more components than we anticipate will be meaningful. For this use case, we estimate eight components.

We now conduct the ensemble PCA, including null hypothesis testing, for 100 ensemble members. For a final analysis, 1000 ensemble members is standard; however, the analysis can be time consuming and 100 members is appropriate for exploratory analyses. First, we plot the ensemble variance explained results for the data and the null hypothesis as a scree plot (Fig.

Ensemble PCA scree plot showing the fraction of variance explained as a function of component (or eigenvalue) number. The ensemble PCA results for the data have uncertainty due to age uncertainty. The median is shown in black, and the 50 % and 95 % highest-probability density regions are shown in dark and light gray, respectively. The 95th percentile of the null hypothesis test is shown in red.

The spatial and temporal results of the first two principal components are shown in Fig.

The spatial loading pattern

The second PC shows considerable more variability in its spatial loading pattern and a larger impact of age uncertainty. Generally, the loadings suggest a north–south dipole over Greenland for this mode, with positive loadings present in much of southern Greenland, with negative loadings in present in much of the northern part of the region. There is a much larger impact of age uncertainty on the loadings in PC2 than in PC1, illustrated by the size of the markers on the map, which are inversely related to the standard deviation of the loadings across the ensemble PCA results, such that smaller markers indicate larger uncertainties. The PC2 time series includes more multidecadal variability than PC1 and is more impacted by age uncertainty. A key feature of the time series is a peak in values in the late 20th century, which occurs after the pronounced peak in PC1. This suggests that unlike the mid-20th century peak in warming apparent in most of the data, this later warming was dominated by contributions from southern Greenland and counterbalanced by a decline in values in the northern Atlantic Arctic.

To illustrate the use of spectral analysis in geoChronR, we consider a use case where the user seeks to identify the relative energy of oscillations at orbital (Milankovitch) periodicities in a deep-sea sediment core and quantify the impact of age uncertainties on this assessment.
Here, we use a benthic paleotemperature record derived from the International Ocean Drilling Project (IODP) core 846

First, we use

Temperature reconstruction from IODP 846. The median ensemble member is shown in black, with the 50 % and 95 % highest-density probability ranges shown in dark and light gray, respectively.

The record displays three salient features:

a long-term cooling trend characteristic of the late Neogene and Quaternary climate,

quasi-periodic oscillations (the Pleistocene ice ages), and

non-stationary behavior, related to the well-known mid-Pleistocene transition from a “41k world” to a “100k world” somewhere around 0.8 Ma

For tractability, let us focus on the last million years, which cover the Quaternary era. Over this interval, the time increments (

We use the

REDFIT spectrum for IODP 846. Median spectrum is shown in black, with the 50 % and 95 % highest-density probability ranges shown in dark and light gray, respectively. Periodicities of interest (in ka) are shown in orange.

The Lomb–Scargle periodogram used by REDFIT is a common way to deal with unevenly spaced time series, but like all periodograms, it is inconsistent: the uncertainty about the spectral density at each frequency does not decrease with the number of observations. This is mitigated somewhat with the application of Welch's overlapping segment averaging, whose parameter choices (number of widows and degree of overlap) are ad hoc. In contrast, MTM

To the spectral distribution itself we can add the periods identified as significant by MTM's

Figure

MTM spectrum for IODP 846. Median spectrum is shown in black, with the 50 % and 95 % highest-density probability ranges shown in dark and light gray, respectively. Periodicities of interest (in ka) are shown in orange, and the periodicities identified as significant by the

Secondly, the MTM version with this time–bandwidth product is sharper than REDFIT, with more well-defined peaks, particularly for the obliquity period (41 ka), which clearly exceeds the 95 % confidence limit.
Here, it is helpful to take a step back and contemplate our null hypothesis of AR(1) background and the possibility that we might be underestimating the lag-1 autocorrelation, hence making the test too lenient.
More importantly, the presence of scaling behavior (power-law decrease) suggests that this should be a more appropriate null against which to test the emergence of spectral peaks. In geoChronR, this can be done by specifying

Using a power-law null hypothesis makes a few cycles appear non-significant, but many remain (not shown).
However, carrying out a test simultaneously at many periodicities is bound to affect assessments of significance via the multiple comparisons problem

One solution is to use predictions made by a physical model about the frequency and relative amplitude of astronomical cycles

As with all statistical analyses in the paleoenvironmental sciences and geosciences, there are no universal solutions or parameter choices. The approaches implemented in geoChronR, especially with default choices, are best considered as exploratory tools. They are intended to provide insight into the impacts of age uncertainty on power spectra and to help users tailor their null hypotheses to their scientific questions.

This article introduced an open-source R package providing user-friendly access to common age-modeling tools in the paleoenvironmental sciences and geosciences, using them to perform common tasks and intuitively visualize the results. geoChronR leverages the power of ensembles to propagate chronological uncertainties to subsequent stages of analysis. While the approach does not address all aspects of uncertainty, it does provide key insights into which results are robust to chronological uncertainty, and which are not.

Although the code was designed to perform a few common tasks in a concise and intuitive way, geoChronR also has the underlying infrastructure to support customized analyses for users seeking to address more complex questions

One potentially useful application of geoChronR is age-model intercomparison, as it provides a standardized platform upon which methods can be readily tested and compared.

Looking forward, we suggest that the next major direction for age-uncertain analysis may not be technical but philosophical in nature. Thus far, the community has focused on quantifying the range of possibilities presented by age uncertainty on a record-by-record basis, and geoChronR has followed that approach. In the future, one could envision developing approaches that leverage information from neighboring records. While idealized studies have laid the groundwork for using common forcings and/or covariance structures to do so

geoChronR is open-source community software and has benefited substantially from multiple contributors and input from early adopters and workshop participants.
We continue to welcome feedback and strongly encourage contributions and enhancements via the GitHub issue tracker (

All of the code used in geoChronR is open and available at

All of the data used in this paper are publicly archived and available as LiPD files at

NPM and JEG conceived the idea for geoChronR. NPM led the development of the geoChronR package and the paper. JEG led the implementation of the spectral analysis capabilities in geoChronR and their description in the paper. DK led the implementation of BChron in geoChronR and its description in the paper. All authors contributed to writing and revising the paper.

The authors declare that they have no conflict of interest.

The software described here is provided under the MIT License, and is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.

We thank the participants of the 2016 and 2017 geoChronR workshops for their contributions to the testing and design, which dramatically improved this package.

This research has been supported by the National Science Foundation, Directorate for Geosciences (grant no. EAR-1347221).

This paper was edited by Noah M. McLean and reviewed by two anonymous referees.