Learn R Programming

tabula (version 1.5.1)

date: Date Archaeological Assemblages

Description

date_mcd estimates the Mean Ceramic Date of an assemblage.

Usage

date_mcd(object, ...)

date_event(object, ...)

refine_dates(object, ...)

# S4 method for CountMatrix date_mcd(object, dates, errors = NULL, level = 0.95, n = 1000, ...)

# S4 method for CountMatrix date_event(object, level = 0.95, cutoff = 90, ...)

# S4 method for DateModel refine_dates(object, method = c("jackknife", "bootstrap"), n = 1000, ...)

Arguments

object

A \(m \times p\) matrix of count data (typically of class '>CountMatrix).

...

Further arguments to be passed to internal methods.

dates

A length-\(p\) numeric vector giving the mid-date of each type (year AD).

errors

A length-\(p\) numeric vector giving the absolute error of each date.

level

A length-one numeric vector giving the confidence level.

n

A non-negative integer giving the number of bootstrap replications (see below).

cutoff

An integer giving the cumulative percentage of variance used to select CA factorial components for linear model fitting (see details). All compounds with a cumulative percentage of variance of less than the cutoff value will be retained.

method

A character string specifying the resampling method to be used. This must be one of "jackknife", "bootstrap" (see details). Any unambiguous substring can be given.

Value

date_mcd returns a data.frame with the following columns:

id

An identifier to link each row to an assemblage.

date

The Mean Ceramic Date.

error

The error on the MCD.

lower

The lower boundary of the confidence interval.

upper

The upper boundary of the confidence interval.

date_event returns an object of class '>DateModel.

refine_dates returns a data.frame.

Mean Ceramic Date

The Mean Ceramic Date (MCD) is a point estimate of the occupation of an archaeological site (South 1977). The MCD is estimated as the weighted mean of the date midpoints of the ceramic types (based on absolute dates or the known production interval) found in a given assemblage. The weights are the relative frequencies of the respective types in the assemblage.

A bootstrapping procedure is used to estimate the confidence interval of a given MCD. For each assemblage, a large number of new bootstrap replicates is created, with the same sample size, by resampling the original assemblage with replacement. MCDs are calculated for each replicates and upper and lower boundaries of the confidence interval associated with each MCD are then returned. Confidence interval are not estimated for assemblages with only a single type (NAs are returned).

Event and Accumulation Dates

This is an implementation of the chronological modeling method proposed by Bellanger and Husi (2012, 2013).

Event and accumulation dates are density estimates of the occupation and duration of an archaeological site (Bellanger and Husi 2012, 2013). The event date is an estimation of the terminus post-quem of an archaeological assemblage. The accumulation date represents the "chronological profile" of the assemblage. According to Bellanger and Husi (2012), accumulation date can be interpreted "at best [...] as a formation process reflecting the duration or succession of events on the scale of archaeological time, and at worst, as imprecise dating due to contamination of the context by residual or intrusive material." In other words, accumulation dates estimate occurrence of archaeological events and rhythms of the long term.

This method relies on strong archaeological and statistical assumptions. Use it only if you know what you are doing (see references below and the vignette: utils::vignette("dating", package = "tabula")).

Date Model Checking

refine_date can be used to check the stability of the resulting '>DateModel with resampling methods.

If jackknife is used, one type/fabric is removed at a time and all statistics are recalculated. In this way, one can assess whether certain type/fabric has a substantial influence on the date estimate. A six columns data.frame is returned, giving the results of the resampling procedure (jackknifing fabrics) for each assemblage (in rows) with the following columns:

id

An identifier to link each row to an assemblage.

date

The jackknife event date estimate.

lower

The lower boundary of the associated prediction interval.

upper

The upper boundary of the associated prediction interval.

error

The standard error of predicted means.

bias

The jackknife estimate of bias.

If bootstrap is used, a large number of new bootstrap assemblages is created, with the same sample size, by resampling each of the original assemblage with replacement. Then, examination of the bootstrap statistics makes it possible to pinpoint assemblages that require further investigation. A six columns data.frame is returned, giving the bootstrap distribution statistics for each replicated assemblage (in rows) with the following columns:

id

An identifier to link each row to an assemblage.

min

Minimum value.

Q05

Sample quantile to 0.05 probability.

mean

Mean value (event date).

Q95

Sample quantile to 0.95 probability.

max

Maximum value.

Details

date_event estimates the event and accumulation dates of an assemblage.

refine_dates checks the stability of a date model with resampling methods.

References

Bellanger, L. & Husi, P. (2013). Mesurer et mod<U+00E9>liser le temps inscrit dans la mati<U+00E8>re <U+00E0> partir d'une source mat<U+00E9>rielle : la c<U+00E9>ramique m<U+00E9>di<U+00E9>vale. In Mesure et Histoire M<U+00E9>di<U+00E9>vale. Histoire ancienne et m<U+00E9>di<U+00E9>vale. Paris: Publication de la Sorbonne, p. 119-134.

Bellanger, L. & Husi, P. (2012). Statistical Tool for Dating and Interpreting Archaeological Contexts Using Pottery. Journal of Archaeological Science, 39(4), 777-790. DOI: 10.1016/j.jas.2011.06.031.

Bellanger, L., Tomassone, R. & Husi, P. (2008). A Statistical Approach for Dating Archaeological Contexts. Journal of Data Science, 6, 135-154.

Bellanger, L., Husi, P. & Tomassone, R. (2006). Une approche statistique pour la datation de contextes arch<U+00E9>ologiques. Revue de Statistique Appliqu<U+00E9>e, 54(2), 65-81.

Bellanger, L., Husi, P. & Tomassone, R. (2006). Statistical Aspects of Pottery Quantification for the Dating of Some Archaeological Contexts. Archaeometry, 48(1), 169-183. DOI: 10.1111/j.1475-4754.2006.00249.x.

Poblome, J. & Groenen, P. J. F. (2003). Constrained Correspondence Analysis for Seriation of Sagalassos Tablewares. In Doerr, M. & Apostolis, S. (eds.), The Digital Heritage of Archaeology. Athens: Hellenic Ministry of Culture.

South, S. A. (1977). Method and Theory in Historical Archaeology. New York: Academic Press.

See Also

set_dates

Examples

Run this code
# NOT RUN {
## Mean Ceramic Date
## Coerce the zuni dataset to an abundance (count) matrix
zuni_counts <- as_count(zuni)

## Set the start and end dates for each ceramic type
zuni_dates <- list(
  LINO = c(600, 875), KIAT = c(850, 950), RED = c(900, 1050),
  GALL = c(1025, 1125), ESC = c(1050, 1150), PUBW = c(1050, 1150),
  RES = c(1000, 1200), TULA = c(1175, 1300), PINE = c(1275, 1350),
  PUBR = c(1000, 1200), WING = c(1100, 1200), WIPO = c(1125, 1225),
  SJ = c(1200, 1300), LSJ = c(1250, 1300), SPR = c(1250, 1300),
  PINER = c(1275, 1325), HESH = c(1275, 1450), KWAK = c(1275, 1450)
)

## Calculate date midpoints and errors
zuni_mid <- vapply(X = zuni_dates, FUN = mean, FUN.VALUE = numeric(1))
zuni_error <- vapply(X = zuni_dates, FUN = diff, FUN.VALUE = numeric(1)) / 2

## Calculate MCD
## (we use a bootstrapping procedure to estimate the confidence interval)
zuni_mcd <- date_mcd(zuni_counts, dates = zuni_mid, errors = zuni_error)
head(zuni_mcd)

## Plot dates
keep_sites <- c("CS11", "CS12", "CS144", "CS195", "CS40", "LZ0219", "LZ0280",
                "LZ0367", "LZ0508", "LZ0560", "LZ1076", "LZ1087")
set_dates(zuni_counts) <- list(value = zuni_mcd$date, error = zuni_mcd$error)
plot_date(zuni_counts, select = keep_sites, sort = "asc") +
  ggplot2::theme_bw()

## Event and accumulation dates (Bellanger et al.)
## See the vignette:
# }
# NOT RUN {
utils::vignette("dating", package = "tabula")
# }

Run the code above in your browser using DataLab