Modified CUSUM method as proposed by Rogerson and Yamada (2004)
Modified Poisson CUSUM method that allows for a time-varying in-control parameter
θ_{0,t} as proposed by Rogerson and Yamada (2004). The
same approach can be applied to binomial data if distribution="binomial"
is specified.
algo.rogerson(disProgObj, control = list(range = range, theta0t = NULL, ARL0 = NULL, s = NULL, hValues = NULL, distribution = c("poisson","binomial"), nt = NULL, FIR=FALSE, limit = NULL, digits = 1))
disProgObj |
object of class |
control |
list with elements
|
The CUSUM for a sequence of Poisson or binomial variates x_t is computed as
S_t = \max \{0, S_{t-1} + c_t (x_t- k_t)\} , \, t=1,2,… ,
where S_0=0 and c_t=\frac{h}{h_t} ; k_t and h_t are time-varying reference values and decision intervals. An alarm is given at time t if S_t ≥q h.
If FIR=TRUE
, the CUSUM starts
with a head start value S_0=\frac{\code{h}}{2} at time t=0.
After an alarm is given, the FIR CUSUM starts again at this head start value.
The procedure after the CUSUM gives an alarm can be determined by limit
.
Suppose that the CUSUM signals at time t, i.e. S_t ≥q h.
For numeric values of limit
, the CUSUM is bounded
above after an alarm is given,
i.e. S_{t} is set to \min\{\code{limit} \cdot h,S_{t}\} .
Using limit
=0 corresponds to
resetting S_t to zero after an alarm as proposed in the original
formulation of the CUSUM. If FIR=TRUE
,
S_{t} is reset to \frac{\code{h}}{2}
(i.e. limit
=\frac{\code{h}}{2} ).
If limit=NULL
, no resetting occurs after an alarm is given.
Returns an object of class survRes
with elements
alarm |
indicates whether the CUSUM signaled at time t or not (1 = alarm, 0 = no alarm) |
upperbound |
CUSUM values S_{t} |
disProgObj |
|
control |
list with the alarm threshold h and the specified control object |
algo.rogerson
is a univariate CUSUM method. If the data are
available in several regions (i.e. observed
is a matrix),
multiple univariate CUSUMs are applied to each region.
Rogerson, P. A. and Yamada, I. Approaches to Syndromic Surveillance When Data Consist of Small Regional Counts. Morbidity and Mortality Weekly Report, 2004, 53/Supplement, 79-85
# simulate data (seasonal Poisson) set.seed(123) t <- 1:300 lambda <- exp(-0.5 + 0.4 * sin(2*pi*t/52) + 0.6 * cos(2*pi*t/52)) data <- create.disProg(week = t, observed = rpois(length(lambda), lambda)) # determine a matrix with h values hVals <- hValues(theta0 = 10:150/100, ARL0=500, s = 1, distr = "poisson") # apply modified Poisson CUSUM res <- algo.rogerson(data, control=c(hVals, list(theta0t=lambda,range=1:300))) plot(res)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.