bwilder0 / COVID19-Demography

Code and data for an agent-based model of COVID-19 spread incorporating distributions of age and household structure.
MIT License
13 stars 5 forks source link

Replicating no-intervention results #1

Open andyljones opened 4 years ago

andyljones commented 4 years ago

I'd like to adapt your work to answer some additional questions I have, and as a starting point I wanted to check that I can replicate the results from the paper. A good place to start seemed like the no-intervention curves in Fig 8 & 9:

image

To my understanding, making these changes to the script and running

python simulate_agepolicies.py 5 5 --index 0

should get me a deaths csv that matches the figure, but at least for my five runs (vs your 100) it ends at 300k deaths rather than 400k - and they're pretty tightly clustered

image

Presumably there's some other parameter I need to alter that I'm missing. Do you have any ideas what it might be?

andyljones commented 4 years ago

Incidentally, I also noticed the lockdown factor in the script is 2, while in the paper it's reported as 10? Which one is used in the figures?

CharpignonML commented 4 years ago

Regarding your second question: Figure 8 and Figure 9 are simulations of scenarios, and as such they are not necessarily representative of all values used to calibrate the parameters in the previous section, i.e., the set (probability of infection given contact, mortality multiplier, start of outbreak/patient zero date). To choose the set that fits the Lombardy data best (the actual curve for the number of deaths being at the 50th percentile of our set of simulations), a lockdown factor of 10 was used.

In Figure 8, the lockdown factor is taken equal to 1 (as if there was not any social distancing measure in place for the agents who are not already isolating themselves - which they: (1) can do voluntarily with a mean time to isolation of 4.6 days if not having severe/critical symptoms, (2) are assigned to do immediately - via quarantine - if they present severe/critical symptoms, or (3) are simulated to do - starting at lockdown time - if they belong to the considered age category), whereas in Figure 9 the lockdown factor is taken equal to 2.

Does this help? Does that change the results of your simulations?

andyljones commented 4 years ago

Aha! My mistake was not making the connection between 'physical distancing' and 'lockdown', which is daft of me. I understand now, thanks very much!

Unfortunately, It doesn't change the results of my simulations. The curves I'm trying to replicate are the baseline no-intervention ones, where the lockdown never arrives.

CharpignonML commented 4 years ago

Hi Andy!

Sorry for the delay in response on our side -- we were finishing up the manuscript for submission.

Thanks a lot for sharing these pieces of feedback, and do not hesitate to send any other remarks and/or suggestions for improvement our way!

Marie.

andyljones commented 4 years ago

That's great to hear, thanks Marie.

Assuming I'm running the simulation correctly then, may I ask if your revised manuscript includes figures for age threshold lockdowns? My original interest in your work was that I was curious about the effect of locking down, say, everyone over 30. The results in the draft manuscript only show the outcomes for locking down ten-year age brackets independently though, and running the sim with age threshold policies instead gives more substantial effects:

To be clear, I get these by setting frac_stay_home = [0., 0., 1., 1., 1.] to lock down everyone over 30 say.

Incidentally, I really do appreciate your openness and friendliness here. Publishing code in sync with - or ahead of! - publishing the manuscript is still not a common thing, and it's great to see here.