Package 'mortAAR'

Title: Analysis of Archaeological Mortality Data
Description: A collection of functions for the analysis of archaeological mortality data (on the topic see e.g. Chamberlain 2006 <https://books.google.de/books?id=nG5FoO_becAC&lpg=PA27&ots=LG0b_xrx6O&dq=life%20table%20archaeology&pg=PA27#v=onepage&q&f=false>). It takes demographic data in different formats and displays the result in a standard life table as well as plots the relevant indices (percentage of deaths, survivorship, probability of death, life expectancy, percentage of population).
Authors: Nils Mueller-Scheessel [aut, cre, cph], Martin Hinz [aut], Clemens Schmid [aut], Christoph Rinne [aut], Daniel Knitter [aut], Wolfgang Hamer [aut], Dirk Seidensticker [aut], Franziska Faupel [aut], Carolin Tietze [aut], Nicole Grunert [aut]
Maintainer: Nils Mueller-Scheessel <[email protected]>
License: GPL-3 | file LICENSE
Version: 1.1.6
Built: 2024-08-25 04:56:05 UTC
Source: https://github.com/isaakiel/mortaar

Help Index


aiterhofen_oedmuehlen: Life table example

Description

A life table from Kokkotidis/Richter 1991, 228.

Format

A data frame with 13 rows and 11 variables.

  • Alter (age)

  • a (added to the original dataset)

  • Dx

  • Sx

  • qx

  • lx

  • dx

  • Lx

  • Tx

  • ex

  • rel.Bevx

For further information about the values see the documentation of life.table.

Details

The life table is compiled from the Linear pottery burial site Aiterhofen Ödmühle (Lower Bavaria). More information can be found in Baum 1990.

References

Kokkotidis KG, Richter J (1991). “Graeberfeld-Sterbetafeln.” Archaeologische Informationen. Mitteilungen zur Ur- und Fruehgeschichte, 14(2), 219–241.

Baum N (1990). “Aiterhofen-Oedmuehle - Palaeodontologie eines bandkeramischen Graeberfeldes in Niederbayern.” Praehistorische Zeitschrift, 65, 157–203.

See Also

Other lifetables: gallery_graves, magdalenenberg, muensingen, nitra, odagsen_cm, odagsen_mo, schleswig_ma


Calculates a life table

Description

life.table calculates life table(s). The algorithm is optimised for deceased populations encountered in archaeological research. See Chamberlain 2006, 27ff., Herrmann et. al 1990, 303ff., Kokkotidis/Richter 1991, Keyfitz et al. 2005 for selected literature.
The function takes an individual data.frame or a list of data.frames and returns an object of class mortaar_life_table or mortaar_life_table_list, for which specialised summary, print and plot functions exist.

Usage

life.table(neclist, agecor = TRUE, agecorfac = c(), option_spline = NULL)

Arguments

neclist

single data.frame or list of data.frames with the columns 'x', 'a', 'Dx'.

  • x: age interval identifier, optional. - Otherwise determined from a.

  • a: years within x.

  • Dx: number of deaths within x.

agecor

logical, optional. If set TRUE, the average number of years lived within a given age class of individuals having died in this class can be adjusted via agecorfac. If set FALSE, it is assumed that they died in the middle of this class. Due to the higher mortality rates of infants, this assumption is certainly inaccurate for individuals <= 5 years.

Default setup is: TRUE.

agecorfac

numeric vector, optional. Only applies if agecor == TRUE. Given values replace the standard values from the first age interval onward.

Default setup is 1/3 for every age class <= 5 life years, and 1/2 for the others.

option_spline

integer, optional. If > 0, values for adults will be interpolated by a monotonic cubic spline. Usual options will by '10' or '20' which will interpolate the values for individuals of an age of 20 or older by 10- or 20- year cumulated values. To be used carefully, as diagnostic features of the life table might be smoothed and essentially removed. Only available when the methods 'Standard' or 'Equal5' in prep.life.table have been chosen.

Value

An object of class mortaar_life_table or mortaar_life_table_list. Each mortaar_life_table contains the following variables:

  • x: age interval.

  • a: years within x.

  • Ax: average number of years lived by an individual that died within a specific age class x :

    Ax=axagecorfacxA_{x} = a_{x} * agecorfac_{x}

  • Dx: number of deaths within x.

  • dx: proportion of deaths within x (percent) :

    dx=Dxi=1nDi100d_{x} = \frac{D_{x}}{\sum_{i=1}^{n} D_{i}} * 100

  • lx: survivorship within x (percent) :

    lx+1=lxdxl_{x+1} = l_{x} - d_{x} with l0=100l_{0} = 100

  • qx: probability of death within x (percent) :

    qx=dxlx100q_{x} = \frac{d_{x}}{l_{x}}* 100

  • Lx: number of years lived within x by those that died within x and those that reached the next age class :

    Lx=(axlx)((axAx)dx)L_{x} = (a_{x} * l_{x}) - ((a_{x} - A_{x}) * d_{x})

  • Tx: sum of years lived within current and remaining x :

    Tx+1=TxLxT_{x+1} = T_{x} - L_{x} with T0=i=1nLiT_{0} = \sum_{i=1}^{n}{L_{i}}

  • ex: average years of life remaining (average life expectancy at mean(x)) :

    ex=Txlxe_{x} = \frac{T_{x}}{l_{x}}

  • rel_popx: percentage of L(x) of the sum of L(x) :

    relpopxx=Lxi=1nLi100relpopx_{x} = \frac{L_{x}}{\sum_{i=1}^{n}{L_{i}}} * 100

References

Chamberlain AT (2006). Demography in archaeology, Cambridge Manuals in Archaeology. Cambridge University Press. https://doi.org/10.1017/CBO9780511607165.

Herrmann B, Grupe G, Hummel S, Piepenbrink H, Schutkowski H (1990). Praehistorische Anthropologie: Leitfaden der Feld- und Labormethoden. Springer, Berlin.

Keyfitz N, Caswell H (2005). Applied Mathematical Demography. Springer. https://link.springer.com/book/10.1007/b139042.

Kokkotidis KG, Richter J (1991). “Graeberfeld-Sterbetafeln.” Archaeologische Informationen. Mitteilungen zur Ur- und Fruehgeschichte, 14(2), 219–241.

Examples

# Create a mortaar_life_table from a prepared dataset.
schleswig_1 <- life.table(schleswig_ma[c("a", "Dx")])
print(schleswig_1)
plot(schleswig_1, display = "lx")

# Create a mortaar_life_table_list from two datasets.
odagsen <- life.table(list(
  "corpus mandibulae" = odagsen_cm[c("a", "Dx")],
  "margo orbitalis" = odagsen_mo[c("a", "Dx")]
))
print(odagsen)
plot(odagsen, display = "ex")

# Prepare a real world dataset and create a mortaar_life_table.
library(magrittr)
magdalenenberg %>%
 replace(. == "60-x", "60-70") %>%
 tidyr::separate(a, c("from", "to")) %>%
 dplyr::mutate(from = as.numeric(from), to = as.numeric(to)) %>%
 prep.life.table(
  dec = "Dx",
  agebeg = "from",
  ageend = "to",
  method = "Standard",
  agerange = "excluded"
 ) %>%
 life.table()

Calculates a corrected life table from a mortAAR life table

Description

It is generally assumed that most skeletal populations lack the youngest age group. Life tables resulting from such populations will necessarily be misleading as they lead to believe that the mortality of younger children was lower than it actually was and that life expectancy was higher. For correcting these missing individuals, Bocquet-Appel and Masset (1977; see also Herrmann et al. 1990, 307) conceived of several calculations based on regression analyses of modern comparable mortality data. However, the applicability of these indices to archaeological data is highly debated and does not necessarily lead to reliable results. Therefore, the correction needs to be weighted carefully and ideally only after the representativity of the base data has been checked with function lt.representativity.

Usage

lt.correction(life_table, agecor = TRUE, agecorfac = c(), option_spline = NULL)

Arguments

life_table

an object of class mortaar_life_table.

agecor

logical, optional. Passed to life.table.

agecorfac

numeric vector, optional. Passed to life.table.

option_spline

integer, optional. Passed to life.table.

Details

For the parameters see the documentation of life.table.

Value

a list containing a data.frame with indices e0, 1q0 and 5q0 as well as mortality rate m and growth rate r according to Bocquet-Appel and Masset showing the computed exact value as well as ranges and an object of class mortaar_life_table with the corrected values.

  • e0: Corrected life expectancy.

  • 1q0: Mortality of age group 0–1.

  • 5q0: Mortality of age group 0–5.

References

Masset C, Bocquet J (1977). “Estimateurs en paléodémographie.” L’Homme, 17(4), 65–90.

Herrmann B, Grupe G, Hummel S, Piepenbrink H, Schutkowski H (1990). Praehistorische Anthropologie: Leitfaden der Feld- und Labormethoden. Springer, Berlin.

Examples

# Calculate a corrected life table from real life dataset.
schleswig <- life.table(schleswig_ma[c("a", "Dx")])
lt.correction(schleswig)

Generates indices from a mortAAR life table for use in other functions

Description

This function bundles a number of indices and vectors from a mortAAR life table which are needed by other functions in mortAAR. The results are only meaningful if 5-year-categories have been chosen to construct the life table.

Usage

lt.indices(life_table)

Arguments

life_table

an object of class mortaar_life_table.

Value

A list with the following indices and vectors:

  • child_i: ratio of individuals aged 5–9 to those aged 10–14 according to Masset and Bocquet 1977.

  • juvenile_i: ratio of individuals aged 5–14 to adults according to Masset and Bocquet 1977.

  • P(5-19): ratio of individuals aged 5–19 to those aged 5 or above according to Bocquet-Appel 2002.

  • D30_D5): ratio of individuals aged 30 and above to those aged 5 or above according to Buikstra et al. 1986.

  • D0_14_D: proportion of individuals aged 0–14 according to McFadden & Oxenham 2018a if infants are represented well.

  • e0: life expectancy at age 0.

References

Bocquet-Appel J (2002). “Paleoanthropological Traces of a Neolithic Demographic Transition.” Current Anthropology, 43(4), 637–650.

Masset C, Bocquet J (1977). “Estimateurs en paléodémographie.” L’Homme, 17(4), 65–90.

Buikstra JE, Konigsberg LW, Bullington J (1986). “Fertility and the Development of Agriculture in the Prehistoric Midwest.” American Antiquity, 51(3), 528–546.

McFadden C, Oxenham MF (2018). “The D0-14/D ratio: A new paleodemographic index and equation for estimating total fertility rates.” American Journal of Physical Anthropology, 165(3), 471–479.

Examples

schleswig <- life.table(schleswig_ma[c("a", "Dx")])
lt.indices(schleswig)

Calculates population size from a mortAAR life table or numeric values

Description

The estimation of the population size for a given cemetery is only possible if a stationary population is assumed. In this case, the number of deaths is simply multiplied with the life expectancy at birth and divided be the time span in years the cemetery was in use. Additionally, it is assumed that an unknown number of individuals is not represented in the cemetery and, therefore, the resulting number is multiplied by an arbitrary value k (Herrmann et al. 1990, 311f.).

Usage

lt.population_size(x, e0, k = 1.1, t)

Arguments

x

either an object of class mortaar_life_table or mortaar_life_table_list or an arbitrary numeric value representing the number of deaths.

e0

numeric. life expectancy at birth in years (if x is of class mortaar_life_table then e0 can be derived directly from the life table's ex column).

k

numeric. Arbitrary number to cater for individuals not represented in the number of deaths. Default: 1.1.

t

numeric. Time span of usage of cemetery in years.

Value

A data.frame with the following items:

  • D: Number of deaths.

  • e0: Life expectancy at birth in years.

  • k: Correction factor.

  • t: Time span of usage of cemetery in years.

  • P: Population size calculated by the formula P=De0k/tP = D * e0 * k / t

References

Herrmann B, Grupe G, Hummel S, Piepenbrink H, Schutkowski H (1990). Praehistorische Anthropologie: Leitfaden der Feld- und Labormethoden. Springer, Berlin.

Examples

schleswig <- life.table(schleswig_ma[c("a", "Dx")])
lt.population_size(schleswig, t = 100)

odagsen <- life.table(list(
"corpus mandibulae" = odagsen_cm[c("a", "Dx")],
 "margo orbitalis" = odagsen_mo[c("a", "Dx")]
 ))
lt.population_size(odagsen, e0 = 30, t = 100)

lt.population_size(x = 111, e0 = 32.2, k = 1.2, t = 100)

Checks the representativity of the non-adult age groups in a mortAAR life table

Description

Weiss 1973, 46f. and Bocquet-Appel and Masset 1977 (see also Herrmann et al. 1990, 306f.) have devised indices which check if the non-adult age groups are represented in proportions as can be expected from modern comparable data. Whether this is really applicable to archaeological data-sets is a matter of debate.

Usage

lt.representativity(life_table)

Arguments

life_table

an object of class mortaar_life_table.

Details

Weiss chose the mortality (qx) as deciding factor and claimed that (1) the probability of death of the age group 10–15 (5q10) should be lower than that of the group 15–20 (5q15) and that (2) the latter in turn should be lower than that of age group 0–5 (5q0).
In contrast, Bocquet-Appel and Masset took the raw number of dead (Dx) and asserted that (1) the ratio of those having died between 5 and 10 (5D5) to those having died between 10 and 15 (5D15) should be equal or larger than 2 and that (2) the ratio of those having died between 5 and 15 (10D5) and all adults (>= 20) should be 0.1 or larger.
Due to the specific nature of the indices, they only give meaningful results if 5-year-age categories have been chosen for the non-adults.

Value

data.frame showing the indices and explaining their interpretation.

References

Herrmann B, Grupe G, Hummel S, Piepenbrink H, Schutkowski H (1990). Praehistorische Anthropologie: Leitfaden der Feld- und Labormethoden. Springer, Berlin.

Masset C, Bocquet J (1977). “Estimateurs en paléodémographie.” L’Homme, 17(4), 65–90.

Weiss KM, Wobst HM (1973). “Demographic Models for Anthropology.” Memoirs of the Society for American Archaeology, 27, i–186. ISSN 0081-1300.

Examples

schleswig <- life.table(schleswig_ma[c("a", "Dx")])
lt.representativity(schleswig)

Calculates reproduction indices from a mortAAR life table

Description

For population studies it is of vital importance to estimate growth or decline of a population. For archaeological datasets this is rarely attempted, probably because the data quality seems to scanty. Nevertheless, the calculation of such measures seems worth the try, at least it should give an impression if the resulting values are unrealistic high or low.

Usage

lt.reproduction(
  life_table,
  fertility_rate = "BA_log",
  growth_rate = "fertility",
  gen_len = 20
)

Arguments

life_table

an object of class mortaar_life_table.

fertility_rate

string or numeric. Either fertility rate according to McFadden & Oxenham 2018a if infants are represented well or fertility rate according to data by McFadden & Oxenham 2018a for P(5-19) index after Bocquet-Appel 2002. Options: 'McFO' (McFadden/Oxenham), 'BA_linear' (linear fit), 'BA_power' (power fit) or 'BA_log' (logistic fit). Default: BA_log'. Additionally, the user can specify an arbitrary number in lieu of the fertility rate.

growth_rate

string or numeric. Either derived directly from the fertility calculations or from regression analysis by either McFadden & Oxenham 2018b (10.06D014/D)1.6110.06 * D0--14/D) -- 1.61) or Bocquet-Appel and Masset ((1.484(log10(200d514/d20d60/d20))0.031.485)(1.484 * (log10(200 * d5--14/d20 * d60/d20))**0.03 - 1.485)). Options: 'fertility', 'MBA', McFO'. Additionally, the user can specify an arbitrary number in lieu of the growth rate.

gen_len

numeric. Length of generation for determining the rate of doubling the population. Default: 20.

Details

There are different approaches to calculate reproduction rates (e. g. Henneberg 1978). We largely follow the methodology by Hassan 1981. Typically, a Total fertility rate (TFR) of 6-8 is assumed for prehistoric populations (Ascadi/Nemeskeri 1970; Henneberg 1978; Hassan 1981). Recently, McFadden and Oxenham 2018a have published a formula to estimate the Total fertility rate from archaeological data, provided that infants are represented fully in the archaeological record.
Unfortunately, this will not be the case for most archaeological datasets. Therefore, we used the data published by McFadden and Oxenham to apply it to the P(5-19)-index after Bocquet-Appel 2002. We approximated the ratio by three different methods of fitting (linear, logistic, power) and recommend logistic fitting, but the others are available as well.
The Gross reproduction rate (GRR) is calculated by multiplying the TFR with the ratio of female newborns, assumed to be a constant of 48.8 of all children (Hassan 1981, 136). The Net reproduction rate is arrived at by summing the product of the GRR, the age specific fertility rate as defined by Hassan (1981, 137 tab. 8.7) and the age specific survival taken from the life table and dividing the result by 10000.
The Rate of natural increase or Intrinsic growth rate r (growth in per cent per year) can be computed from the fertility following Hassan (1981, 140). Alternative ways to calculate the intrinsic growth rate derive from Bocquet-Appel and Masset (1977) and recently from McFadden and Oxenham 2018b. The latter present a regression analysis based on the index D0–15/D also used for fertility calculations (see above) in connections with modern data.
Whatever is chosen as base for the growth rate calculations is used for computing the doubling time in years, assuming exponential steady growth.
Also calculated is the mortality rate m after Bocquet-Appel and Masset (1977) in per cent of a given population. Furthermore, the ratio of dependent individuals is reported that is usually (but probably erroneously for archaic societies (Grupe et al. 2015, 423) assumed to apply to those aged below 15 or 60 and above.
Finally, Buikstra et al. 1986. have made the interesting observation that the relation of those individuals aged 30 years and above to those aged 5 years and above is very closely related to the birth rate and also closely (but less significantly) related to the death rate. Therefore, these indices are calculated as well.

Value

A data.frame with basic reproduction indices:

  • m: Mortality rate (= natality rate n).

    0.127d514/d20+0.0160.127 * d5--14/d20 + 0.016

  • dep: Dependency ratio.

    DR=(sum(D014)+sum(D60+))/sum(D1559)DR = (sum(D0--14) + sum(D60+)) / sum(D15--59)

  • TFR: Total fertility rate.

  • GRR: Gross reproduction rate.

    GRR=TFR0.488GRR = TFR * 0.488

  • NRR: Net reproduction rate.

    NRR=sum(GRRagespecificfertilityagespecificsurvival/10000)NRR = sum(GRR * age specific fertility * age specific survival / 10000)

  • r: Intrinsic growth rate in per cent per year.

  • Dt: Doubling time in years.

    Dt=100ln(2)/rDt = 100 * ln(2) / r

  • D30_D5: Ratio D30+/D5+ after Buikstra et al.

  • BR: Birth rate from ratio D30+/D5+.

    BR=11.493D30D5+12.712BR = -11.493 * D30_D5 + 12.712

  • DR: Death rate from ratio D30+/D5+.

    DR=5.287D30D5+6.179DR = -5.287 * D30_D5 + 6.179

References

Acsadi G, Nemeskeri J (1970). History of Human Life Span and Mortality. Akademiai Kiado, Budapest.

Masset C, Bocquet J (1977). “Estimateurs en paléodémographie.” L’Homme, 17(4), 65–90.

Bocquet-Appel J (2002). “Paleoanthropological Traces of a Neolithic Demographic Transition.” Current Anthropology, 43(4), 637–650.

Buikstra JE, Konigsberg LW, Bullington J (1986). “Fertility and the Development of Agriculture in the Prehistoric Midwest.” American Antiquity, 51(3), 528–546.

Grupe G, Harbeck M, McGlynn GC (2015). Prähistorische Anthropologie. Springer, Berlin, Heidelberg.

Hassan FA (1981). Demographic Archaeology. Academic Press, New York.

Henneberg M (1976). “Reproductive possibilities and estimations of the biological dynamics of earlier human populations.” Journal of Human Evolution, 5(1), 41–48.

McFadden C, Oxenham MF (2018). “The D0-14/D ratio: A new paleodemographic index and equation for estimating total fertility rates.” American Journal of Physical Anthropology, 165(3), 471–479.

McFadden C, Oxenham MF (2018). “Rate of natural population increase as a paleodemographic measure of growth.” Journal of Archaeological Science: Reports, 19, 352–356.

Examples

schleswig <- life.table(schleswig_ma[c("a", "Dx")])
lt.reproduction(schleswig)

odagsen <- life.table(list(
  "corpus mandibulae" = odagsen_cm[c("a", "Dx")],
  "margo orbitalis" = odagsen_mo[c("a", "Dx")]
))
lt.reproduction(odagsen)

Calculate masculinity index and maternal mortality from a mortAAR life table list

Description

The proportional relation between adult males and females (= Masculinity index) is interesting for a number of reasons: (1) it can point to basic problems in the datasets in that, say, one sex is grossly over- or underrepresented (Herrmann et al. 1990, 310). (2) it may hint towards cultural reasons like sex- specific mobility.
Maternal mortality is a basic indicator for the health system of a given population. Maternal mortality is defined as dying during pregnancy or within the first 42 days after birth due to complications. Recently, McFadden and colleagues 2020 have provided an updated formula to calculate it from archaeological data.

Usage

lt.sexrelation(females, males)

Arguments

females

an object of class mortaar_life_table for females

males

an object of class mortaar_life_table for males

Details

The Masculinity index (MI) is defined for juvenile and older individuals. Note that with a higher mortality rate of adult females, an MI < 100 does not necessarily speak for an unbalanced MI in life.
Maternal mortality is calculated according to the formula provided by McFadden & Oxenham 2019 in the updated version of McFadden et al. 2020. McFadden and Oxenham show that with modern data a very high correlation is achieved by only comparing the absolute numbers of the age group 20 to 24. This has the additional advantage that for this age group anthropological aging methods are reasonable exact.

Value

Output of masculinity index and maternal mortality.

  • Masculinity index.

    MI=D>=15male/D>=15femaleMI = D>=15male / D>=15female

  • Maternal mortality.

    333.33(D2024female/D2024male)MI76.07333.33 * (D20-24female / D20-24male) * MI - 76.07

References

Herrmann B, Grupe G, Hummel S, Piepenbrink H, Schutkowski H (1990). Praehistorische Anthropologie: Leitfaden der Feld- und Labormethoden. Springer, Berlin.

McFadden C, Oxenham MF (2019). “The Paleodemographic Measure of Maternal Mortality and a Multifaceted Approach to Maternal Health.” Current Anthropology, 60(1), 141–146. http://dx.doi.org/10.1086/701476.

McFadden C, Van Tiel B, Oxenham MF (2020). “A stabilized maternal mortality rate estimator for biased skeletal samples.” Anthropological Science, 128(3), 113–117.

Examples

# Calculate Masculinity index and maternal mortality from Nitra
# dataset.
nitra_prep <- prep.life.table(nitra, group="sex", agebeg = "age_start", ageend = "age_end")
nitra_life <- life.table(nitra_prep)
lt.sexrelation(nitra_life$f, nitra_life$m)

magdalenenberg: Life table example

Description

A data set from zaeuner_wahl_magdalenenberg_2013.

Format

A data frame with 13 rows and 2 variables.

  • a: age range.

  • Dx: number of deceased.

Details

Anthropological data from a large burial mound of the Early Iron Age in southwestern Germany. It is already pooled for constructing a life table.

References

Zaeuner S, Wahl J (2013). “Zur demographischen Struktur der Bestattungen im späthallstattzeitlichen Grabhügel vom Magdalenenberg.” Fundberichte aus Baden-Württemberg, 33, 133–145.

See Also

Other lifetables: aiterhofen_oedmuehlen, gallery_graves, muensingen, nitra, odagsen_cm, odagsen_mo, schleswig_ma


mortaar_life_table and mortaar_life_table_list

Description

The mortaar_life_table is the central data structure of the mortAAR package. It's a data.frame with set of custom methods and variables. Please see mortAAR::life.table for a description of the variables. Further available variables are ignored.
If an object is of class data.frame or tibble (tbl & tbl_df), it can be converted to an object of class mortaar_life_table. The only requirement is that it contains at least the essential columns a and Dx. The as function adds the string "mortaar_life_table" to the classes vector.
The mortaar_life_table_list is a list of mortaar_life_tables. It can contain the additional attribute group that stores a string with the name of the grouping variable relevant for the separation of the different mortaar_life_tables in the list. The group variable is only relevant for plot and print aesthetics.

Usage

as.mortaar_life_table_list(x, ...)

as.mortaar_life_table(x, ...)

Arguments

x

an object

...

further arguments passed to or from other methods

Examples

# a mortaar_life_table can be put together manually:
as.mortaar_life_table(data.frame(a = c(20, 20, 20), Dx = c(10, 15, 20)))

# a mortaar_life_table_list can be constructed from multiple mortaar_life_tables
schleswig <- as.mortaar_life_table_list(
  list(
    "schleswig data 1" = life.table(schleswig_ma[c("a", "Dx")]),
    "schleswig data 2" = life.table(schleswig_ma[c("a", "Dx")])
  )
)

# you can add new mortaar_life_tables to plot them with the others
schleswig$`schleswig data 3` <- life.table(schleswig_ma[c("a", "Dx")])
schleswig[["schleswig data 4"]] <- life.table(schleswig_ma[c("a", "Dx")])

# and you can create arbitrary subsets of mortaar_life_table_lists
schleswig_data_3 <- schleswig$`schleswig data 3`
schleswig_data_1_3_4 <- schleswig[c(1,3,4)]

muensingen: Life table example

Description

A data set from moghaddam_et_al_muensingen_2016.

Format

A data frame with 71 rows and 4 variables.

  • age: age range of the individual.

  • sex: sex of the individual.

  • latene_phase: archaeological phasing.

  • grave_goods: did the grave contain grave goods?

Details

Anthropological data from one of the largest Latene burial grounds of Central Europe. Besides age and sex of each individual, it comprises the archaeological phasing (A, B or C) and the information if the respective burial contained grave goods (yes or no).

References

Moghaddam N, Mueller F, Hafner A, Loesch S (2016). “Social stratigraphy in Late Iron Age Switzerland: stable carbon, nitrogen and sulphur isotope analysis of human remains from Münsingen.” Archaeological and Anthropological Sciences, 8, 149–160. https://link.springer.com/article/10.1007/s12520-014-0221-4.

See Also

Other lifetables: aiterhofen_oedmuehlen, gallery_graves, magdalenenberg, nitra, odagsen_cm, odagsen_mo, schleswig_ma


nitra: Life table example

Description

The Early Neolithic cemetery of Nitra is one of the best published data sets of the Linearbandkeramik (LBK). The individuals were analysed by J. Jelínek (published in Pavúk 1972) and many decades later also bei L. Fibiger (Bickle/Whittle 2013, 139ff. Tab. 4.15) and in more detail by Z. Tvrdý 2016. We follow here the determinations by L. Fibiger.

Format

A data frame with 4 variables and 75 observations

  • no: individual

  • sex: sex determination if available

  • age_start: start of the ageing interval

  • age_end: end of the ageing interval (inclusive)

References

Pavúk J (1972). “Neolithisches Gräberfeld in Nitra.” Slovenská Arch., 22(1), 5–105.

Bickle P, Whittle AWR (eds.) (2013). The first farmers of central Europe: diversity in LBK lifeways. Oxbow Books, Oxford.

Tvrdý Z (2016). “Anthropology of the Neolithic population from Nitra-Horné Krškany (Slovakia).” Anthropologie (Brno), 54(3), 231–284.

See Also

Other lifetables: aiterhofen_oedmuehlen, gallery_graves, magdalenenberg, muensingen, odagsen_cm, odagsen_mo, schleswig_ma


odagsen_corpus.mandibulae: Life table example

Description

A life table from Grupe/Herrmann 1986, 51.

Format

A data frame with 11 rows and 9 variables.

  • age.group: inf.I, inf.II -> Infans I, II juv -> juvenil; fa, ma, sa -> früh-, mittel-, spätadult; fm, mm, sm -> früh-, mittel-, spätmatur; s -> senil

  • x

  • a

  • Dx

  • dx

  • lx

  • qx

  • Lx

  • ex

In contrast to the general convention Lx represents the remaining survivors of each age interval ("Zahl der Lebenden bezogen auf die theoretische Ausgangspopulation zwischen zwei aufeinanderfolgenden Intervallen"). For further information about the values see the documentation of life.table.

Details

The life table is compiled from the mandibulae of the late neolithic collective burial #' from Odagsen, Einbeck district Northeim (3.250 - 2.950 cal BC). The calculated values show minor adjustments in comparison to the published original data in Grupe/Herrmann 1986.

References

Grupe G, Herrmann B (1986). “Die Skelettreste aus dem neolithischen Kollektivgrab von Odagsen, Stadt Einbeck, Ldkr. Northeim.” Nachrichten aus Niedersachsens Urgeschichte, 55, 41–91.

Rinne C (2012). “Das Kollektivgrab Odagsen I.” Journal of Neolithic Archaeology. ISSN 2197-649X, doi:10.12766/jna.2002.52, http://www.jna.uni-kiel.de/index.php/jna/article/view/52.

See Also

Other lifetables: aiterhofen_oedmuehlen, gallery_graves, magdalenenberg, muensingen, nitra, odagsen_mo, schleswig_ma


odagsen_margo.orbitalis: Life table example

Description

A life table from Grupe/Herrmann 1986, 51.

Format

A data frame with 11 rows and 9 variables.

  • age.group: inf.I, inf.II -> Infans I, II juv -> juvenil; fa, ma, sa -> früh-, mittel-, spätadult; fm, mm, sm -> früh-, mittel-, spätmatur; s -> senil

  • x

  • a

  • Dx

  • dx

  • lx

  • qx

  • Lx

  • ex

In contrast to the general convention Lx represents the remaining survivors of each age interval ("Zahl der Lebenden bezogen auf die theoretische Ausgangspopulation zwischen zwei aufeinanderfolgenden Intervallen"). For further information about the values see the documentation of life.table.

Details

The life table is compiled from the orbital margin of skulls from the late neolithic collective burial from Odagsen, Einbeck district Northeim (3.250 - 2.950 cal BC). More information can be found in Grupe/Herrmann 1986.

References

Grupe G, Herrmann B (1986). “Die Skelettreste aus dem neolithischen Kollektivgrab von Odagsen, Stadt Einbeck, Ldkr. Northeim.” Nachrichten aus Niedersachsens Urgeschichte, 55, 41–91.

Rinne C (2012). “Das Kollektivgrab Odagsen I.” Journal of Neolithic Archaeology. ISSN 2197-649X, doi:10.12766/jna.2002.52, http://www.jna.uni-kiel.de/index.php/jna/article/view/52.

See Also

Other lifetables: aiterhofen_oedmuehlen, gallery_graves, magdalenenberg, muensingen, nitra, odagsen_cm, schleswig_ma


Plot a mortaar_life_table or a mortaar_life_table_list

Description

Plot a mortaar_life_table or a mortaar_life_table_list. There are several different kinds of plots to explore the different variables. The parameter display allows to select the variables of interest.

Arguments

x

a mortaar_life_table or a mortaar_life_table_list.

display

a character vector. Displays the calculated variables as plots. These must include some of the alternatives dx for the proportion of deaths, qx for the probability of death, lx for the survivorship, ex for the life expectancy and rel_popx for the population age structure.

line_vis

optional string. Differentiate groups either by "linetype" or by "color". Default to "linetype".

prefer.ggplot

should ggplot be preferred, if available. Default to TRUE.

...

further arguments passed to or from other methods.

Examples

# Create a mortaar_life_table from a prepared dataset.
schleswig_1 <- life.table(schleswig_ma[c("a", "Dx")])
plot(schleswig_1)
plot(schleswig_1, display = "qx")

# Create a mortaar_life_table_list from two datasets.
odagsen <- life.table(list(
  "corpus mandibulae" = odagsen_cm[c("a", "Dx")],
  "margo orbitalis" = odagsen_mo[c("a", "Dx")]
))
plot(odagsen)
plot(odagsen, display = "lx", line_vis="color")

Creates the input for the function life.table

Description

Prepares the input for life.table(). An individual based approach is supported as well as already pooled data (e. g. from an already existing life table). In the latter case, the user has to specify a numerical variable (dec) which defines the count for each age class. If no life table exists, this function will process a dataframe including the age ranges of individuals or groups of individuals to discrete the age classes. The age range is spread to single years. agebeg has to be specified for the beginning of an age range, as well as ageend for the end of an age range. If a data-set with year-known individuals is used, ageend can be omitted but then the parameter agerange has to left on its default value (included). The method defines in which way the single years between the different age classes are split. If the data set comprises a grouping variable (e.g., sex), this can be specified with group.

Usage

prep.life.table(
  x,
  dec = NA,
  agebeg,
  ageend = NA,
  group = NA,
  method = "Standard",
  agerange = "included"
)

Arguments

x

single dataframe containing sex age and quantity of deceased (individuals or group of individuals).

dec

column name (as character) of the count of deceased, optional.

agebeg

column name (as character) for the beginning of an age range.

ageend

column name (as character) for the end of an age range, optional.

group

column name (as character) of the grouping field (e.g., sex), optional. Default setup is: NA.

method

character string, optional. Default options is Standard, which will create age classes beginning with 1 year, up to 4 years, followed by steps of 5 years (1,4,5,5,...) until the maximum age is reached. Equal5 will create age classes with an even distribution, stepped by 5 years (5,5,...) until the maximum age is reached. If method is a single numeric, this number will be repeated until the maximum age is reached. Thereby, it is possible to create a year-wise life table.

agerange

character string, optional. Default setup is: included. If the age ranges from "20 to 40" and "40 to 60", excluded will exclude the year 40 from "20 to 40", to prevent overlapping age classes. included is for age ranges like "20 to 39" where the year 39 is meant to be counted.

Value

A list of input parameter needed for the function life.table.

  • x or Age: age interval.

  • a: years within x.

  • Dx: number of deaths within x.

Examples

# Separate age ranges in your data set.
df <- dplyr::mutate(
  tidyr::separate(
    replace(
     magdalenenberg,
     magdalenenberg=="60-x", "60-69"
    ),
    a,
    c("from", "to")
  ),
  from = as.numeric(from),
  to = as.numeric(to)
)

# Apply prep.life.table to a data set containing the age ranges.
magda_prep <- prep.life.table(
  df,
  dec = "Dx",
  agebeg = "from",
  ageend = "to",
  method = "Equal5",
  agerange = "included"
)

# Create a life.table.
life.table(magda_prep)

Encode and print a mortaar_life_table or a mortaar_life_table_list

Description

Format for pretty printing.

Arguments

x

a mortaar_life_table or a mortaar_life_table_list.

class_of_deceased

optional string, specify the class of deceased (male, female, phase, ...).

...

further arguments passed to or from other methods.

Value

A string representation of the mortaar_life_table or the mortaar_life_table_list. For format.mortaar_life_table_list each mortaar_life_table is formatted by itself and strung together. The names of the elements are used to specify the name in the returned header of the printout.

Examples

# Create a mortaar_life_table from a prepared dataset.
schleswig_1 <- life.table(schleswig_ma[c("a", "Dx")])
print(schleswig_1)

# Create a mortaar_life_table_list from two datasets.
odagsen <- life.table(list(
  "corpus mandibulae" = odagsen_cm[c("a", "Dx")],
  "margo orbitalis" = odagsen_mo[c("a", "Dx")]
))
print(odagsen)

schleswig_ma: Life table example

Description

A life table from Herrmann et. al 1990, 305.

Format

A data frame with 11 rows and 9 variables.

  • x: fa, ma, sa -> früh-, mittel-, spätadult; fm, mm, sm -> früh-, mittel-, spätmatur; s -> senil

  • a

  • Dx

  • dx

  • lx

  • qx

  • Lx

  • Tx

  • ex

For further information about the values see the documentation of life.table.

Details

This lifetable is compiled from a medieval grave collection from Schleswig (11th-13th century). More information can be found in Grupe 1997.

References

Herrmann B, Grupe G, Hummel S, Piepenbrink H, Schutkowski H (1990). Praehistorische Anthropologie: Leitfaden der Feld- und Labormethoden. Springer, Berlin.

Grupe G (1997). “Die anthropologische Bearbeitung der Skelettreste von Schleswig, Ausgrabung Rathausmarkt. Rekonstruktion einer mittelalterlichen Bevoelkerung und ihrer Beziehungen.” In Kirche und Graeberfeld des 11.-13. Jahrhunderts unter dem Rathausmarkt von Schleswig, volume 12, 147–210. Wachholtz, Neumuenster.

See Also

Other lifetables: aiterhofen_oedmuehlen, gallery_graves, magdalenenberg, muensingen, nitra, odagsen_cm, odagsen_mo