Simulate Point-Source Epidemics
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.
sim.pointSource(p = 0.99, r = 0.01, length = 400, A = 1, 
                alpha = 1, beta = 0, phi = 0, frequency = 1, state = NULL, K)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.   | 
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.  | 
a disProg (disease progress) object including a list of the
observed, the state chain and nearly all input parameters.
M. Höhle, A. Riebler, C. Lang
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 outbreaksPlease choose more modern alternatives, such as Google Chrome or Mozilla Firefox.