surveillance (version 1.12.1)

algo.cusum: CUSUM method

Description

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.

Usage

algo.cusum(disProgObj, control = list(range = range, k = 1.04, h = 2.26, 
             m = NULL, trans = "standard", alpha = NULL))

Arguments

disProgObj
object of class disProg (including the observed and the state chain)
control
control object: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Value

  • 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 specified by k and h, the range and the input object of class "disProg".

    The 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.

    In case control$m="glm" was used, the returned control$m.glm entry contains the fitted "glm" object.

encoding

latin1

References

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

Examples

Run this code
# 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)

Run the code above in your browser using DataLab