Estimates the Mean Ceramic Date of an assemblage.

date_mcd(object, dates, ...)

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



A CountMatrix or a DateModel object.


A numeric vector of dates. If named, the names must match the row names of object.


Currently not used.


A numeric vector giving the absolute error of dates.


A length-one numeric vector giving the confidence level.


A non-negative integer giving the number of bootstrap replications.


date_mcd returns a data.frame with the following columns:


An identifier to link each row to an assemblage.


The Mean Ceramic Date.


The error on the MCD.


The lower boundary of the confidence interval.


The upper boundary of the confidence interval.


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


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

See also

Other dating: event


N. Frerebeau


## 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 zuni_mid <- vapply(X = zuni_dates, FUN = mean, FUN.VALUE = numeric(1)) ## Calculate MCD ## (we use a bootstrapping procedure to estimate the confidence interval) zuni_mcd <- date_mcd(zuni_counts, dates = zuni_mid) head(zuni_mcd)
#> date lower upper #> LZ1105 1162.5000 1160.5609 1162.630 #> LZ1103 1137.8378 1135.1952 1138.447 #> LZ1100 1154.4643 1154.2346 1157.687 #> LZ1099 1090.6250 1090.1506 1090.693 #> LZ1097 1092.1875 1087.2620 1093.679 #> LZ1096 841.0714 837.0617 844.874
## Event and accumulation dates (Bellanger et al.) ## See the vignette: # \donttest{ utils::vignette("dating", package = "tabula")
#> Warning: vignette ‘dating’ not found
# }