cmu-delphi / epipredict

Tools for building predictive models in epidemiology.
https://cmu-delphi.github.io/epipredict/
Other
10 stars 10 forks source link

SIR model #6

Open dajmcdon opened 2 years ago

dajmcdon commented 2 years ago

I've been toying with the following SIR-type model in my head, and I want to write it down. The goal is to encapsulate as much of the standard epidemic structure in some time varying parameters. Let I_t be infections at time t and c_t be new reported cases at time t. We do this in discrete time.

Suppose that the infection model is:

I_{t+1} = b_t * I_t * e_t
log(b)_{t+1} = log(b)_t + v_t
v_{t+1} = v_t + z_t
z_t ~ N(0, sigma_z)

In the standard SIR, we usually have I(t)' = bS(t)I(t)-gI(t), which yields r(t) = bS(t)-g. So we can think of b_t above as being "like" (1+r(t)). So we're saying that log(r(t)) varies slowly. The specification with the time varying v is very similar to putting 2nd-order AR behavior on log(b). Then we model cases as linear in past infections:

c_t = P * I + f_t
f_t ~ N(0, sigma_f)

Here, I is some vector of past infections (say last 21) and P is a weight vector. So this part looks much like Maria's nowcasting model.


  1. I suspect that "folding compartments into b_t" means that this structure encapsulates lots of models. I have more to think on how exactly it relates. (multi-strain, SEIR, etc.)
  2. Fitting is non-trivial. My goal would be to avoid MC as much as possible. I'm hoping that this can be fit with the unscented Kalman Filter (and that that is relatively easy).
  3. I would probably set P deterministically, say with a Gamma distribution. The parameters of that could also be but into the state equation, but that makes avoiding MC harder.
brookslogan commented 2 years ago

On point 2., it may be useful to look at Jeffrey Shaman's group's work that uses the ensemble adjustment Kalman filter (EAKF), as well as this paper where they compare alternative filtering techniques. Alternatively, maybe look at pyPM, Dean Karlen's flexible compartmental modeling code framework (although I believe this is MCMC).