aorist: Calculates a time series based on a start and end date

View source: R/aorist.R

aoristR Documentation

Calculates a time series based on a start and end date

Description

Calculates a time series of unit-wise (e.g. year-wise) occurrence based on a start and end date. Dates BC(E) have to be given with negative sign.

Usage

aorist(x, from = "from", to = "to", split_vars = c(),
  stepwidth = 1, stepstart = min(x[[from]], na.rm = T),
  stepstop = max(x[[to]], na.rm = T), method = "number")

Arguments

x

Data.frame.

from

Character or Integer. Names or indizes of "from" column (start date) in x.

to

Character or Integer. Names or indizes of "to" column (end date) in x.

split_vars

Character Vector or Integer Vector. Names or indizes of columns by which the x should be split before time series creation. Can be a vector of multiple values.

stepwidth

Integer. Width of each time step in the resulting time series. Default = 1. Can not be changed if method = "period_correction".

stepstart

Integer. Start of the time window of interest. Default = min(from, na.rm = T).

stepstop

Integer. End of the time window of interest. Default = max(to, na.rm = T).

method

Character. Method switch to decide how the sum per timestep should be calculated.

  • "number": Number of elements within one timestep.

  • "weight": Sum of weighted occurences. Weighting considers the dating precision/length of periods.

  • "period_correction": More complex weighting method. See the section below.

Value

Tibble (data.frame) with one row for each timestep and at least two columns:

  • date: Timestep.

  • sum: Calculated sum values per timestep.

  • ... : Type variables if split_vars was set.

Aoristic period correction with method = "period_correction"

According to Mischka (2004), Aoristic analysis 'is a method used in criminology to analyse crime incidents and determine probabilities for the contemporaneity of the incidents or, when applied to archaeology, for the contemporaneity of sites'.

The aoristic calculation distributes the probability of an event (the event has taken place at all = 1) to (time) sections of the total range within which the event may have taken place. The length of these periods can be arbitrarily chosen, for archaeological applications we set them at the annual level. This scaling can easily be brought to the desired scale by aggregation.

The aoristic sum is then the expected value for the number of events to be assumed within this period. This can be, for example, the expected number of settlements that have been included in the calculation as individual data with start and end date as parameters.

The calculation of the aoristic sum is based on exclusive time intervals in its original implementation (Radcliffe 2000). In archaeological applications, however, overlapping time intervals often result from different dating accuracy. For example, individual sites may only be categorized as part of the Neolithic, others may be narrowed down to the Middle Neolithic Ia. The structure of the overlapping time intervals can lead to biases of the aoristic sum (Hinz/Müller-Scheeßel forthcoming), which is corrected by the algorithm by weighting down multiple time periods.

References

\insertRef

ratcliffe_aoristic_2000aoristAAR

\insertRef

mischka_aoristische_2004aoristAAR

\insertRef

hinz_systematic_nodateaoristAAR

Examples

# creating test data
my_settlements <- data.frame(
  start = c(-3800, -3750, -3500, -4000, -3800, -3800, -3550, -3750, -3800),
  end   = c(-3700, -3400, -3300, -3300, -3500, -3300, -3525, -3650, -3700),
  type = c("hillfort", "hillfort", "hillfort", "hillfort", "hillfort",
  "coastal settlement", "coastal settlement", "coastal settlement", "coastal settlement"),
  size = c(">2ha", "<2ha", ">2ha", ">2ha", "<2ha", ">2ha", "<2ha", ">2ha", "<2ha")
)

# counting number of occurences
method_number_time_series <- aorist(
  my_settlements,
  from = "start", to = "end",
  method = "number"
)
plot(method_number_time_series, type = "l")

# normalisation methods
method_weight_time_series <- aorist(
  my_settlements,
  from = "start", to = "end",
  method = "weight"
)
method_period_correction_time_series <- aorist(
  my_settlements,
  from = "start", to = "end",
  method = "period_correction"
)

plot(method_weight_time_series, type = "l", col = "blue", xlim = c(-4100, -3200))
lines(method_period_correction_time_series, type = "l", col = "red", lty = 2)
legend(
  -4100, 0.05, legend = c("weight", "period_correction"),
  col = c("blue", "red"), lty = 1:2, cex = 0.8
)

# splitting time series by additional variables
splitted_time_series <- aorist(
  my_settlements,
  from = "start", to = "end",
  split_vars = c("type"),
  method = "period_correction"
)

hamlets <- splitted_time_series[splitted_time_series$type == "coastal settlement", c(1,2)]
hillforts <- splitted_time_series[splitted_time_series$type == "hillfort", c(1,2)]

plot(hamlets, type = "l", col = "darkgreen", xlim = c(-4100, -3200))
lines(method_period_correction_time_series, type = "l", col = "orange", lty = 2)
legend(
  -4100, 0.04, legend = c("hamlets", "hillforts"),
  col = c("darkgreen", "orange"), lty = 1, cex = 0.8
)


ISAAKiel/aoristAAR documentation built on March 26, 2024, 3:17 a.m.