InstituteforDiseaseModeling / covasim

COVID-19 Agent-based Simulator (Covasim): a model for exploring coronavirus dynamics and interventions
https://covasim.org
MIT License
250 stars 223 forks source link

FAQ: Counting tests, diagnoses & infections? #384

Open rbelew opened 2 years ago

rbelew commented 2 years ago

This probably belongs in the "conceptual FAQ" list, but I'll start with making it an issue:

My reading of the Testing interventions tutorial made me believe that, if I set symp_prob=1.0, asymp_prob=1.0 I could model exhaustive testing of an entire population, thereby modeling the ideal case with new diagnoses and new infections being the same. Guess I'm wrong about that.

I've put together a simple Covasim model and use it with a data set that looks like this:

    pop19 44780675
    startDate 2021-02-20
    endDate 2021-10-19
    ndays 242
    initCases 3064.4331360565866

(github doesn't support .py or .json attachments to issues I guess?! I've posted them under my repo.)

Using CovasimNAgents = 1e5 I get sim["pop_scale"]=447.80675, resulting in a (scaled) number of initInfect=6.84.

I attach two plots simPlot and simPlot_fullTest, generated by these testing intervention specs:

They were run with these parameters:

runPars = {'beta': 0.02,
           'mu': 0.11,
           'ntst': 20000,
           'sympOR': 250}

Only simPlot uses the ntst and sympOR parameters. It comes much closer to what I would have expected. A nearly constant number of new tests, new diagnoses and deaths doing a fair job of matching available data, and a reasonable estimate of R_0.

simPlot_fullTest seems to somehow infer that those ~7 initial infections with beta=0.02 don't infect anyone else, and the epidemic dies out. How does get caused by the intensive testing I intended with symp_prob=1.0, asymp_prob=1.0 ?!

A related question: In simPlot I don't see how/why Covasim is generating a max of ~1.5e7 infectious (people, not agents, right?), ~1.7e6 new infections and new recoveries, while being approx consistent with the ~2e5 new diagnoses and ~500 deaths observed in the data?

Regarding recoveries: standard compartmental models distinguish between Recovered and Dead states. How does Covasim's "recovered" state relate to R in SEIRD models? simPlot simPlot_fullTest