Skip to contents

Simulation of epidemics which were introduced by point sources. The basis of this programme is a combination of a Hidden Markov Model (to get random timepoints for outbreaks) and a simple model (compare sim.seasonalNoise) to simulate the baseline.

Usage

sim.pointSource(p = 0.99, r = 0.01, length = 400, A = 1, 
                alpha = 1, beta = 0, phi = 0, frequency = 1, state = NULL, K)

Arguments

p

probability to get a new outbreak at time i if there was one at time i-1, default 0.99.

r

probability to get no new outbreak at time i if there was none at time i-1, default 0.01.

length

number of weeks to model, default 400. length is ignored if state is given. In this case the length of state is used.

A

amplitude (range of sinus), default = 1.

alpha

parameter to move along the y-axis (negative values not allowed) with alpha > = A, default = 1.

beta

regression coefficient, default = 0.

phi

factor to create seasonal moves (moves the curve along the x-axis), default = 0.

frequency

factor to determine the oscillation-frequency, default = 1.

state

use a state chain to define the status at this timepoint (outbreak or not). If not given a Markov chain is generated by the programme, default NULL.

K

additional weigth for an outbreak which influences the distribution parameter mu, default = 0.

Value

a disProg (disease progress) object including a list of the observed, the state chain and nearly all input parameters.

Author

M. Höhle, A. Riebler, C. Lang

Examples

set.seed(123)
disProgObj <- sim.pointSource(p = 0.99, r = 0.5, length = 208,
                              A = 1, alpha = 1, beta = 0, phi = 0,
                              frequency = 1, state = NULL, K = 2)
plot(disProgObj)

## with predefined state chain
state <- rep(c(0,0,0,0,0,0,0,0,1,1), 20)
disProgObj <- sim.pointSource(state = state, K = 1.2)
plot(disProgObj)

## simulate epidemic, send to RKI 1 system, plot, and compute quality values
testSim <- function (..., K = 0, range = 200:400) {
  disProgObj <- sim.pointSource(..., K = K)
  survResults <- algo.call(disProgObj,
    control = list(list(funcName = "rki1", range = range)))
  plot(survResults[[1]], "RKI 1", "Simulation")
  algo.compare(survResults)
}
testSim(K = 2)
testSim(r = 0.5, K = 5)  # larger and more frequent outbreaks