/covid19

Simulation of "Flatten the Curve" for COVID-19

Primary LanguageHTMLMIT LicenseMIT

Simulation: "Flatten the Curve"

In this repo, we investigate:

  • Impact of Social Distancing on "Flattening the Curve"
  • Influence of the Duration of One-shot Social Distancing
  • Efficacy of the Lightswitch Method (cyclic approach to social distancing, described here by Marissa Childs et al)

List of experiments

  • No Social Distancing (Activity Level 100%)
  • Social Distancing: Continuous
    • Activity Level 70%
    • Activity Level 40%
  • Social Distancing: On-shot (Short-term)
    • Activity Level 40% -> 100%
    • Activity Level 40% -> 70%
  • Social Distancing: On-shot (Mid-term)
    • Activity Level 40% -> 100%
    • Activity Level 40% -> 70%
  • Social Distancing: On-shot (Long-term)
    • Activity Level 40% -> 100%
    • Activity Level 40% -> 70%
  • Social Distancing: Lightswitch (Cyclic social distancing)
    • Activity Level 40% -> 100% (Repeated)
    • Activity Level 40% -> 70% (Repeated) -> 100%

Color code in simulations

  • Healthy person is shown in light gray
  • Infected person is shown in red
  • Recoverd person is shown in green
  • Dead person is removed from simulation, but displayed in dark gray in counter and stacked area chart

TL;DR

  • Social distancing works for flattening the curve.
  • If we quit social distancing too early, we could see a resurgence.
  • Lightswich method could potentially help reduce the total social distancing period.

Note:

  • This simulation is vastly oversimplified and should not be readily applied to any COVID-19 decision making.
  • Initial state is randomly initialized on each run, therefore the simulation result varies.

Experiments

No Social Distancing (Activity Level 100%)



Social Distancing: Continuous

  • Activity Level 70%


  • Activity Level 40%


Social Distancing: On-shot (Short-term)

  • Activity Level 40% -> 100%

  • Activity Level 40% -> 70%


Social Distancing: One-shot (Mid-term)

  • Activity Level 40% -> 100%


  • Activity Level 40% -> 70%


Social Distancing: One-shot (Long-term)

  • Activity Level 40% -> 100%


  • Activity Level 40% -> 70%


Social Distancing: Lightswitch (Cyclic Social Distancing)

  • Activity Level 40% -> 100% (Repeated)


  • Activity Level 40% -> 70% (Repeated) -> 100%



Requirements

  • python (v3.6.9 was used)
  • numpy (v1.17.2 was used)
  • matplotlib (v3.1.1 was used)
  • imagemagick (to save .gif)
  • ffmpeg (to safe .mp4)

Link to abbreviated version of interactive:

Binder Open In Colab


Acknowledgements

This repo is


Copyright (c) 2020 Rikiya Yamashita
Released under the MIT license