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

object | A \(m \times p\) matrix of count data (typically of class CountMatrix). |
---|---|

value | A possible value for the element(s) of |

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

n | A non-negative |

cutoff | An |

method | A |

`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`

.

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

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.

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`

vectorit 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 columnsthe 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.

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 (`NA`

s are returned).

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")`

).

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

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.

## 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")#>#># }