Approximate one-side CUSUM method for a Poisson variate based on the cumulative sum of the deviation between a reference value k and the transformed observed values. An alarm is raised if the cumulative sum equals or exceeds a prespecified decision boundary h. The function can handle time varying expectations.
object of class disProg (including the observed and the state chain)
algo.cusum gives a list of class
"survRes" which includes the
vector of alarm values for every timepoint in
range and the vector
of cumulative sums for every timepoint in
range for the system
h, the range and the input object of
upperbound entry shows for each time instance the number of diseased individuals
it would have taken the cusum to signal. Once the CUSUM signals no resetting is applied, i.e.
signals occurs until the CUSUM statistic again returns below the threshold.
control$m="glm" was used, the returned
control$m.glm entry contains the fitted
This implementation is experimental, but will not be developed further.
M. Paul and M. Höhle
G. Rossi, L. Lampugnani and M. Marchi (1999), An approximate CUSUM procedure for surveillance of health events, Statistics in Medicine, 18, 2111–2122
D. A. Pierce and D. W. Schafer (1986), Residuals in Generalized Linear Models, Journal of the American Statistical Association, 81, 977–986
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
# Xi ~ Po(5), i=1,...,500 disProgObj <- create.disProg(week=1:500, observed= rpois(500,lambda=5), state=rep(0,500)) # there should be no alarms as mean doesn't change res <- algo.cusum(disProgObj, control = list(range = 100:500,trans="anscombe")) plot(res) # simulated data disProgObj <- sim.pointSource(p = 1, r = 1, length = 250, A = 0, alpha = log(5), beta = 0, phi = 10, frequency = 10, state = NULL, K = 0) plot(disProgObj) # Test week 200 to 250 for outbreaks surv <- algo.cusum(disProgObj, control = list(range = 200:250)) plot(surv)