Learn R Programming

ArchaeoPhases

Overview

Statistical analysis of archaeological dates and groups of dates. ArchaeoPhases allows to post-process Markov Chain Monte Carlo (MCMC) simulations from ChronoModel (Lanos et al. 2020), Oxcal (Bronk Ramsey 2009) or BCal (Buck, Christen, and James 1999). This package provides functions for the study of rhythms of the long term from the posterior distribution of a series of dates (tempo and activity plot). It also allows the estimation and visualization of time ranges from the posterior distribution of groups of dates (e.g. duration, transition and hiatus between successive phases).

ArchaeoPhases v2.0 brings a comprehensive package rewrite, resulting in the renaming of nearly all functions. For more information, please refer to news(Version >= "2.0", package = "ArchaeoPhases").

To cite ArchaeoPhases in publications use:

  Philippe A, Vibet M (2020). "Analysis of Archaeological Phases Using
  the R Package ArchaeoPhases." _Journal of Statistical Software, Code
  Snippets_, *93*(1). doi:10.18637/jss.v093.c01
  <https://doi.org/10.18637/jss.v093.c01>.

  Philippe A, Vibet M, Frerebeau N, Dye T (2025). _ArchaeoPhases:
  Post-Processing of Markov Chain Monte Carlo Simulations for
  Chronological Modelling_. Université de Nantes, Nantes, France.
  doi:10.5281/zenodo.8087121 <https://doi.org/10.5281/zenodo.8087121>,
  R package version 2.1.0,
  <https://ArchaeoStat.github.io/ArchaeoPhases/>.

Installation

You can install the released version of ArchaeoPhases from CRAN with:

install.packages("ArchaeoPhases")

And the development version from GitHub with:

# install.packages("remotes")
remotes::install_github("ArchaeoStat/ArchaeoPhases")

You can install the 1.x releases from the CRAN archives:

# install.packages("remotes")
remotes::install_version("ArchaeoPhases", version = "1.8")

Usage

ArchaeoPhases v2.0 uses aion for internal date representation. Look at vignette("aion", package = "aion") before you start.

These examples use data available through the ArchaeoData package which is available in a separate repository. ArchaeoData provides MCMC outputs from ChronoModel, OxCal and BCal.

## Install the data package
install.packages("ArchaeoData", repos = "https://archaeostat.r-universe.dev")
## Load
library(ArchaeoPhases)

Import a CSV file containing a sample from the posterior distribution:

## Construct the paths to the data
path <- file.path("chronomodel", "ksarakil")
path_event <- system.file(path, "Chain_all_Events.csv", package = "ArchaeoData")
path_phase <- system.file(path, "Chain_all_Phases.csv", package = "ArchaeoData")

## Read events from ChronoModel
(chrono_events <- read_chronomodel_events(path_event))
#> <EventsMCMC>
#> - Number of events: 16
#> - Number of MCMC samples: 30000

## Read phases from ChronoModel
(chrono_phases <- read_chronomodel_phases(path_phase))
#> <PhasesMCMC>
#> - Number of phases: 4
#> - Number of MCMC samples: 30000

Analysis of a series of dates

## Plot the first event
plot(chrono_events[, 1], interval = "hdr")

## Plot all events
plot(chrono_events)

## Tempo plot
tp <- tempo(chrono_events, level = 0.95)
plot(tp)

## Activity plot
ac <- activity(chrono_events)
plot(ac)

Analysis of a group of dates (phase)

bound <- boundaries(chrono_phases, level = 0.95)
as.data.frame(bound)
#>      label     start       end duration
#> 1      EPI -28978.53 -26969.82 2008.712
#> 2       UP -38570.37 -29368.75 9201.622
#> 3 Ahmarian -42168.47 -37433.31 4735.159
#> 4      IUP -43240.37 -41161.00 2079.372
## Plot all phases
plot(chrono_phases)
plot(chrono_phases[, c("UP", "EPI"), ], succession = "hiatus")
plot(chrono_phases[, c("UP", "EPI"), ], succession = "transition")

Translation

This package provides translations of user-facing communications, like messages, warnings and errors, and graphical elements (axis labels). The preferred language is by default taken from the locale. This can be overridden by setting of the environment variable LANGUAGE (you only need to do this once per session):

Sys.setenv(LANGUAGE = "<language code>")

Languages currently available are English (en) and French (fr).

References

Allen, James F. 1983. “Maintaining Knowledge about Temporal Intervals.” Communications of the ACM 26 (11): 832–43. https://doi.org/10.1145/182.358434.

Bosch, Marjolein D., Marcello A. Mannino, Amy L. Prendergast, Tamsin C. O’Connell, Beatrice Demarchi, Sheila M. Taylor, Laura Niven, Johannes van der Plicht, and Jean-Jacques Hublin. 2015. “New Chronology for Ksâr ‘Akil (Lebanon) Supports Levantine Route of Modern Human Dispersal into Europe.” Proceedings of the National Academy of Sciences 112 (25): 7683–88. https://doi.org/10.1073/pnas.1501529112.

Bronk Ramsey, Christopher. 2009. “Bayesian Analysis of Radiocarbon Dates.” Radiocarbon 51 (1): 337–60. https://doi.org/10.1017/S0033822200033865.

Buck, C. E., J. A. Christen, and G. E. James. 1999. “BCal: An on-Line Bayesian Radiocarbon Calibration Tool.” Internet Archaeology 7. https://doi.org/10.11141/ia.7.1.

Dye, Thomas S. 2016. “Long-Term Rhythms in the Development of Hawaiian Social Stratification.” Journal of Archaeological Science 71 (July): 1–9. https://doi.org/10.1016/j.jas.2016.05.006.

Dye, Thomas S., Caitlin E. Buck, Robert J. DiNapoli, and Anne Philippe. 2023. “Bayesian Chronology Construction and Substance Time.” Journal of Archaeological Science 153: 105765. https://doi.org/https://doi.org/10.1016/j.jas.2023.105765.

Ghosh, Sambit, Prasanta Sanyal, Sohom Roy, Ravi Bhushan, Sp Sati, Anne Philippe, and Navin Juyal. 2020. “Early Holocene Indian Summer Monsoon and Its Impact on Vegetation in the Central Himalaya: Insight from dD and d 13 C Values of Leaf Wax Lipid.” The Holocene 30 (7): 1063–74. https://doi.org/10.1177/0959683620908639.

Harris, Edward C. 1997. Principles of Archaeological Stratigraphy. Seconde édition. London: Academic Press.

Hyndman, Rob J. 1996. “Computing and Graphing Highest Density Regions.” The American Statistician 50 (2): 120. https://doi.org/10.2307/2684423.

Jha, Deepak Kumar, Prasanta Sanyal, and Anne Philippe. 2020. “Multi-Proxy Evidence of Late Quaternary Climate and Vegetational History of North-Central India: Implication for the Paleolithic to Neolithic Phases.” Quaternary Science Reviews 229 (February): 106121. https://doi.org/10.1016/j.quascirev.2019.106121.

Lanos, Ph., A. Philippe, H. Lanos, and Ph. Dufresne. 2020. “Chronomodel: Chronological Modeling of Archaeological Data Using Bayesian Statistics.” CNRS. https://chronomodel.com.

Lyman, R. Lee, and Michael J. O’Brien. 2017. “Sedation and Cladistics: The Difference Between Anagenetic and Cladogenetic Evolution.” In Mapping Our Ancestors: Phylogenetic Approaches in Anthropology and Prehistory, edited by Carl P. Lipo, Michael J. O’Brien, Mark Couard, and Stephen J. Shennan. New York: Routledge. https://doi.org/10.4324/9780203786376.

Philippe, Anne, and Marie-Anne Vibet. 2020. “Analysis of Archaeological Phases Using the R Package ArchaeoPhases.” Journal of Statistical Software 93. https://doi.org/10.18637/jss.v093.c01.

Robert, Christian P., and George Casella. 2010. Introducing Monte Carlo Methods with R. Use R! New York: Springer.

Viola, Tullio. 2020. Peirce on the Uses of History. De Gruyter. https://doi.org/10.1515/9783110651560.

Copy Link

Version

Install

install.packages('ArchaeoPhases')

Monthly Downloads

843

Version

2.1.0

License

GPL (>= 3)

Issues

Pull Requests

Stars

Forks

Maintainer

Anne Philippe

Last Published

September 26th, 2025

Functions in ArchaeoPhases (2.1.0)

allen_relate_intervals

Relate Two or More Observed Intervals
allen_joint_concurrency

Joint Concurrence of Two or More Observed Intervals
check

Check for an Original MCMC File
allen_observe

Observe the Relation Between two Phases
bury

Age-Depth Modeling
allen_observe_frequency

Observed Frequency of an Allen Set
bind

Combine two MCMC Objects
boundaries

Phase Time Range
duration

Phase Duration
allen_intersect

Intersection of Allen Relations
data.frame

Coerce to a Data Frame
allen_illustrate_relations

Data for an Illustrative Graphic
allen_relation

Allen Relation Between Definite Intervals
allen_plot

Make a Single Plot of a Nökel Lattice.
TimeRange-class

Time Range
occurrence

Occurrence Plot
as_phases

Coerce to Phases
allen_relation_code

The Basic Allen Relation Set
as_events

Coerce to Events
allen_table

Table of Allen Relations
interpolate

Interpolate Between Two Dates
elapse

Elapsed Time Scale
as_coda

Coerce to Coda
interval_hdr

Bayesian HPD Regions
allen_union

Union of Allen Relations
mcmc_events

Events
plot_phases

Plot Phases
read_bcal

Read BCal Output
sensitivity

Sensitivity
sort

Sort an MCMC Object
read_chronomodel

Read ChronoModel Output
interval_credible

Bayesian Credible Interval
hiatus

Hiatus Between Two Dates
phases

Compute Phases
plot_events

Plot Events
older

Bayesian Test for Anteriority/Posteriority
summary

Marginal Summary Statistics for Multiple MCMC Chains
mcmc_phases

Phases
names

The Names of an Object
sort.list

Ordering Permutation of an MCMC Object
tempo

Tempo Plot
transition

Transition Range Between Successive Phases
read_oxcal

Read OxCal Output
subset

Extract or Replace Parts of an Object
MCMC-class

MCMC
allen_composition

Composition of Allen Relations
allen_complement

Complement of an Allen Relation
allen_analyze

Analyze Composite Allen Relations
allen_illustrate

Illustrate Basic and Composite Allen Relations
allen_converse

Converse of an Allen Relation
activity

Activity Plot
AgeDepthModel-class

Age-Depth Model
OccurrenceEvents-class

Occurrence
ArchaeoPhases-deprecated

Deprecated Functions in ArchaeoPhases
ArchaeoPhases-package

ArchaeoPhases: Post-Processing of Markov Chain Monte Carlo Simulations for Chronological Modelling
allen_analyze_relations

Data for an Analytic Graphic
EventsMCMC-class

MCMC Events
ActivityEvents-class

Activity
CumulativeEvents-class

Cumulative Events
allen_count

Count Allen Relations
ArchaeoPhases-defunct

Defunct Functions in ArchaeoPhases
DurationsMCMC-class

MCMC Duration
PhasesMCMC-class

MCMC Phases