Skip to contents

Estimates the Mean Ceramic Date of an assemblage.

Usage

mcd(object, dates, ...)

# S4 method for numeric,numeric
mcd(object, dates)

# S4 method for data.frame,numeric
mcd(object, dates)

# S4 method for matrix,numeric
mcd(object, dates)

Arguments

object

A length-\(p\) numeric vector, an \(m \times p\) numeric matrix or data.frame of count data (absolute frequencies).

dates

A length-\(p\) numeric vector of dates expressed in CE years (BCE years must be given as negative numbers).

...

Currently not used.

Value

A single numeric value or a MeanDate object.

Details

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.

Note

All results are rounded to zero decimal places (sub-annual precision does not make sense in most situations). You can change this behavior with options(kairos.precision = x) (for x decimal places).

References

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

See also

plot_mcd, bootstrap(), jackknife(), simulate()

Other dating methods: event()

Author

N. Frerebeau

Examples

## Mean Ceramic Date
## Coerce the zuni dataset to an abundance (count) matrix
data("zuni", package = "folio")

## Set the start and end dates for each ceramic type
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
mid <- vapply(X = dates, FUN = mean, FUN.VALUE = numeric(1))

## Calculate MCD
mc_dates <- mcd(zuni[100:125, ], dates = mid)
head(mc_dates)
#> LZ0789 LZ0783 LZ0782 LZ0778 LZ0777 LZ0776 
#>   1207   1128   1100   1227   1238   1028 

## Plot
plot(mc_dates)


# \donttest{
## Bootstrap resampling
boot <- bootstrap(mc_dates, n = 30)
head(boot)
#>        original      mean      bias    error
#> LZ0789     1012  930.3000 -81.70000 55.49287
#> LZ0783      995  949.8667 -45.13333 27.63023
#> LZ0782     1100 1100.0000   0.00000  0.00000
#> LZ0778       NA        NA        NA       NA
#> LZ0777     1275 1275.0000   0.00000  0.00000
#> LZ0776      880  816.8667 -63.13333 50.66028

## Jackknife resampling
jack <- jackknife(mc_dates)
head(jack)
#>            mean       bias     error
#> LZ0789 1206.833  -2.833333  32.47264
#> LZ0783 1128.111   1.888889  21.19778
#> LZ0782      NaN        NaN       NaN
#> LZ0778 1226.778  -3.777778  22.52269
#> LZ0777      NaN        NaN       NaN
#> LZ0776 1024.889 -52.888889 127.64539

## Simulation
sim <- simulate(mc_dates, n = 30, interval = "percentiles")
plot(sim)

# }