Skip to content

SIR model #6

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
dajmcdon opened this issue Mar 6, 2022 · 1 comment
Open

SIR model #6

dajmcdon opened this issue Mar 6, 2022 · 1 comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request

Comments

@dajmcdon
Copy link
Contributor

dajmcdon commented Mar 6, 2022

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.
@dshemetov dshemetov added documentation Improvements or additions to documentation enhancement New feature or request labels Mar 9, 2022
@brookslogan
Copy link
Contributor

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

kenmawer added a commit that referenced this issue Jun 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants