Skip to contents

Generates bootstrap estimations of an MCD.

Usage

# S4 method for class 'MeanDate'
bootstrap(
  object,
  n = 1000,
  f = NULL,
  level = 0.95,
  interval = c("basic", "normal", "percentiles"),
  seed = NULL,
  calendar = get_calendar()
)

Arguments

object

A MeanDate object (typically returned by mcd()).

n

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

f

A function that takes a single numeric vector (the result of the resampling procedure) as argument.

level

A length-one numeric vector giving the confidence level. Must be a single number between \(0\) and \(1\). Only used if f is NULL.

interval

A character string giving the type of confidence interval to be returned. It must be one "basic" (the default), "normal" or "percentiles" (see arkhe::confidence_bootstrap()). Any unambiguous substring can be given. Only used if f is NULL.

seed

An object specifying if and how the random number generator should be initialized (see stats::simulate()).

calendar

An aion::TimeScale object specifying the target calendar (see aion::calendar()).

Value

If f is NULL, bootstrap() returns a data.frame with the following elements (else, returns the result of f applied to the n resampled values) :

original

The observed value.

mean

The bootstrap estimate of mean.

bias

The bootstrap estimate of bias.

error

The boostrap estimate of standard error.

lower

The lower limit of the bootstrap confidence interval at level.

upper

The upper limit of the bootstrap confidence interval at level.

See also

Author

N. Frerebeau

Examples

## Data from Peeples and Schachner 2012
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))
#> 26 x 18 x 1 time series observed between 757.291 CE and 1259.38 CE

## Get MCD in years CE
time(mc_dates, calendar = CE())
#>  [1]  757.2912  796.6659  797.4991  952.5855  996.2952 1016.0738 1027.5011
#>  [8] 1059.5249 1073.6597 1075.5213 1089.5820 1092.8564 1100.0000 1127.7799
#> [15] 1137.1101 1200.0017 1204.3868 1207.1436 1219.4454 1227.3745 1235.4176
#> [22] 1237.5000 1238.8896 1253.1241 1256.2502 1259.3757

## Bootstrap resampling
boot <- bootstrap(mc_dates, n = 30)
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
#> Warning: Extreme order statistics used as endpoints.
head(boot)
#>         original      mean       bias    error    lower     upper
#> LZ0789  757.2917  758.2812  0.9895833 12.00791 727.6042  777.0833
#> LZ0783  796.6667  798.2778  1.6111111 37.15901 702.5000  855.8333
#> LZ0782  797.5000  798.4951  0.9950980 11.76595 771.3235  821.6176
#> LZ0778  952.5862  957.0259  4.4396552 28.82461 900.4310 1000.4310
#> LZ0777  996.2963 1000.9028  4.6064815 28.79666 927.7778 1046.9907
#> LZ0776 1016.0714 1014.0179 -2.0535714 40.25694 948.2143 1102.6786

## Jackknife resampling
jack <- jackknife(mc_dates)
head(jack)
#>         original      mean       bias    error
#> LZ0789  757.2917  768.2870 186.921296 207.5535
#> LZ0783  796.6667  806.9974 175.621693 228.0861
#> LZ0782  797.5000  804.1715 113.415558 169.0563
#> LZ0778  952.5862  954.5205  32.882529 138.6064
#> LZ0777  996.2963  996.6640   6.251785 111.0144
#> LZ0776 1016.0714 1017.1652  18.594831  72.6602

## Plot
plot(mc_dates, decreasing = FALSE)
## Add bootstrap confidence intervals
segments(x0 = boot$lower, y0 = seq_len(nrow(boot)),
         x1 = boot$upper, y1 = seq_len(nrow(boot)))