cmu-delphi / cmu-delphi/epipredict

SIR model

Open
#6 1 comment 0 reactions 0 assignees View on GitHub
documentation enhancement
Dominant language
R
Stars
18
Forks
13
Avg merge
21d 58m
Merged PRs (30d)
1

Description

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.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.