surveillance (version 1.12.1)

boda: Surveillance for an univariate count data time series using the Bayesian Outbreak Detection Algorithm (BODA) described in Manitz and H�hle{Hoehle} (2013)

Description

The function takes range values of the surveillance time series sts and for each time point uses a negative binomial regression model to compute the predictive posterior distribution for the current observation. The $(1-\alpha)\cdot 100%$ quantile of this predictive distribution is then used as bound: If the actual observation is above the bound an alarm is raised. The implementation is illustrated in Salmon et al. (2016).

Usage

boda(sts, control=list(range=NULL, X=NULL, trend=FALSE, season=FALSE,
                                   prior=c('iid','rw1','rw2'), alpha=0.05, mc.munu=100, 
                                   mc.y=10, verbose=FALSE,multicore=TRUE,
                                   samplingMethod=c('joint','marginals'),
                                   quantileMethod=c("MC","MM")))

Arguments

sts
object of class sts (including the observed and the state time series)
control
Control object given as a list containing the following components: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object O

Warning

This function is currently experimental!! It also heavily depends on the INLA package so changes here might affect the operational ability of the function. Since the computations for the Bayesian GAM are quite involved do not expected this function to be particularly fast. Future work could focus on improving the speed, e.g. one issue would be to make the inference work in sequential fashion.

References

Manitz, J. and H�hle{Hoehle}, M. (2013): Bayesian outbreak detection algorithm for monitoring reported cases of campylobacteriosis in Germany. Biometrical Journal, 55(4), 509-526. Salmon, M., Schumacher, D. and H�hle{Hoehle}, M. (2016): Monitoring count time series in R: Aberration detection in public health surveillance. Journal of Statistical Software, 70 (10), 1-35. 10.18637/jss.v070.i10

Examples

Run this code
#Load the campylobacteriosis data for Germany
  data("campyDE")
  #Make an sts object from the data.frame
  cam.sts <-  new("sts",epoch=as.numeric(campyDE$date),observed=campyDE$case,
                   state=campyDE$state, epochAsDate=TRUE)

  #Define monitoring period
#  range <- which(epoch(cam.sts)>=as.Date("2007-01-01"))
#  range <- which(epoch(cam.sts)>=as.Date("2011-12-10"))
  range <- tail(1:nrow(cam.sts),n=2)

  control <- list(range=range, X=NULL, trend=TRUE, season=TRUE,
                  prior='iid', alpha=0.025, mc.munu=100, mc.y=10, samplingMethod = "joint")

  #Apply the boda algorithm in its simples form, i.e. spline is
  #described by iid random effects and no extra covariates
  library("INLA")  # needs to be attached
  cam.boda1 <- boda(cam.sts, control=control)

  if(!inherits(cam.boda1,'try-error')){
    plot(cam.boda1,xlab='time [weeks]', ylab='No. reported',dx.upperbound=0)
  }

Run the code above in your browser using DataLab