Learn R Programming

surveillance (version 1.8-3)

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.

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

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]

encoding

latin1

Details

Note: This function requires presence of the INLA R package, which is NOT available from CRAN. It can can be downloaded by calling source("http://www.math.ntnu.no/inla/givemeINLA.R") as described in detail at http://www.r-inla.org/download. 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

Bayesian model algorithm for monitoring reported cases of campylobacteriosis in Germany (2013), Manitz J and H�hle M, Biometrical Journal, 55(4), pp. 509 526.

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)

  #Trial run code. To be made an actual working example.
  #source("../R/boda.R")

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

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

  #In case INLA is not installed, boda throws an error
  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