I'm fooling around with threshold time series models. While I was digging through what others have done, I ran across the CDC's site for flu data.


About 1/3 of the way down the page is a graph titled "Pneumonia and Influenza Mortality....". It shows the actuals in red, and two black seasonal series. The top seasonal series is labeled "Epidemic Threshold" and appears to be some constant percent/amount above the "Seasonal Baseline" series.

My first question is: Is that really how they determine when to publicly say we're in an epidemic (some percent above baseline)? It looks to me like they're in the noise range, not to mention the "other factors" influence that is obviously not accounted for in that baseline series. To me, there are way too many false positives.

My second question is: Can you point me to any real world examples/publications of threshold models (hopefully in R)?


The CDC uses the epidemic threshold of

1.645 standard deviations above the baseline for that time of year.

The definition may have multiple sorts of detection or mortality endpoints. (The one you are pointing to is pneumonia and influenza mortality. The lower black curve is not really a series, but rather a modeled seasonal mean, and the upper black curve is 1.645 sd's above that mean). http://www.cdc.gov/mmwr/PDF/ss/ss5107.pdf

> pnorm(1.645)
[1] 0.950015

So it's a 95% threshold. (And it does look as though about 1 out of 20 weeks are over the threshold. You pick your thresholds, not to be perfect, but to have the sensitivity you deem necessary.) The seasonal adjustment model appears to be sinusoidal. There is an R "flubase" package that should be consulted.

  • $\begingroup$ Nice answer and great research. Appears to me from the 1st pdf that although they're defining this as the 'epidemic threshold', they're not declaring an epidemic each time it's exceeded for a given week - they're just declaring it a period of 'excess mortality'. They then focus on periods when it's exceeded for several weeks running (e.g. 10 or more). $\endgroup$
    – onestop
    Jan 16 '11 at 13:11
  • $\begingroup$ I don't think it takes 10 weeks of exceeding the mean+1.645 sd threshold to make an epidemic call ... more like 2 or 3. $\endgroup$
    – DWin
    Jan 16 '11 at 14:46
  • $\begingroup$ Wow, great research/answer. Maybe it's the word "Epidemic" that threw me off. To me, the term "Epidemic Threshold" is when certain conditions become unstable and the infection progresses at an increasing rate (due to the mechanics of the infection). Other factors, such as a colder or wetter season could drive the count above the 95% level without it going unstable. So, before today I would have expected the Epidemic Threshold to rise and fall due to "other factors". But, maybe simpler is better. I'll play with the flubase package. $\endgroup$
    – bill_080
    Jan 16 '11 at 18:19

A quick rundown of how these things go. What you're seeing is called 'Serfling Regression'. What it is is a linear regression with at least one linear term for a time trend, and several harmonics to it.

What happens is, you have a linear model with a Poisson (or negative binomial) distribution in roughly the following form:

log(Counts) = b0 + b1*t + b2*cos(2pi*w*t) + b3*sin(2pi*w*t)

Where t is time, and w is 1/365 (for a yearly disease like flu. Generally its 1/n, where n is the length of your cycle). That's where you get that smooth black curve from, and it's standard error. That is the expected number of counts for that time t - it goes up and down over time. Then, as the flu season occurs, the CDC watches for when it crosses that threshold, and classifies that as "an epidemic". These can get way more complex - multiple harmonic functions to account for different peaks, such as the usually somewhat later peak in influenza B cases, explanatory variables for all kinds of things that will account for upswings in cases, etc. But that's it in its most basic form.

But the term "epidemic" is a tricky one. This technique works for well understood seasonal, recurring diseases with lots of data, like influenza. In contrast, any counts above 0 for say, smallpox, would be treated as an outbreak.

For papers using this technique, I can refer you to several. Both of the papers below use a model like the one above, though not for declaring an epidemic, but for characterizing what a "flu season" looks like:

http://www.springerlink.com/content/1n87723lv818418x/ http://onlinelibrary.wiley.com/doi/10.1111/j.1750-2659.2010.00137.x/abstract

This can be easily implemented in R using the glm function.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.