date_mcd estimates the Mean Ceramic Date of an assemblage.

get_dates(object)

set_dates(object) <- value

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 AbundanceMatrix
get_dates(object)

# S4 method for AbundanceMatrix
set_dates(object) <- value

# 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).

value

A possible value for the element(s) of object (see below).

...

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.

Details

date_event estimates the event and accumulation dates of an assemblage.

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

set_dates and get_dates allow to get or set the dates of an object.

Note

Bellanger et al. did not publish the data supporting their demonstration: no replication of their results is possible and this implementation must be considered experimental. date_event may be subject to major changes in a future release.

Refining methods can lead to much longer execution times and larger output objects. To monitor the execution of these re-sampling procedures, a progress bar will automatically be displayed if the pbapply package is installed on your machine.

Set dates

An attempt is made to interpret the argument value in a suitable way. Note that errors are assumed to be given at 1 sigma.

If value is a:

character vector

it is assumed to contain Roman numerals.

numeric or integer vector

these values are assumed to represent dates without known errors.

list

containing components "value" and "error", these are used to define dates and corresponding errors.

matrix or data.frame with two or more columns

the first is assumed to contain the dates and the second the error values. Note that if value has columns named "value" and "error", these columns will be used.

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.

References

Bellanger, L. & Husi, P. (2013). Mesurer et modéliser le temps inscrit dans la matière à partir d'une source matérielle : la céramique médiévale. In Mesure et Histoire Médiévale. Histoire ancienne et médié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éologiques. Revue de Statistique Appliqué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

Examples

## 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)
#> id date error lower upper #> 1 LZ1105 1162.5000 49.03861 1160.5289 1162.6055 #> 2 LZ1103 1137.8378 18.82518 1135.0760 1138.3470 #> 3 LZ1100 1154.4643 24.20615 1153.7826 1157.2263 #> 4 LZ1099 1090.6250 26.51650 1090.2237 1090.7513 #> 5 LZ1097 1092.1875 26.51650 1090.3901 1096.7068 #> 6 LZ1096 841.0714 43.59484 836.8402 844.2669
## 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: # \donttest{ utils::vignette("dating", package = "tabula")
#> starting httpd help server ...
#> done
# }