Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/psteinb/covid19-curve-your-city
Extrapolation der COVID19 Fallzahlen
https://github.com/psteinb/covid19-curve-your-city
Last synced: 7 days ago
JSON representation
Extrapolation der COVID19 Fallzahlen
- Host: GitHub
- URL: https://github.com/psteinb/covid19-curve-your-city
- Owner: psteinb
- License: bsd-3-clause
- Created: 2020-03-19T22:22:28.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-05-23T12:47:30.000Z (over 1 year ago)
- Last Synced: 2023-05-23T13:51:17.666Z (over 1 year ago)
- Language: R
- Homepage:
- Size: 16 MB
- Stars: 11
- Watchers: 3
- Forks: 5
- Open Issues: 11
-
Metadata Files:
- Readme: README.markdown
- License: LICENSE
Awesome Lists containing this project
README
# Extrapolierte COVID19-Infektionen
## Warum machst du das? / Why are you doing this?
Ich bin kein Virologe noch ein Epidemiologe. Ich bin langjähriger [HPC](https://de.wikipedia.org/wiki/Supercomputer)-Nutzer, [Research Software Engineer](https://en.wikipedia.org/wiki/Research_software_engineering), Datenwissenschaftler und Machine-Learning-Praktiker.
Ich habe dieses Projekt ins Leben gerufen, um mit meinen mentalen Mitteln die Pandemie und den Virus zu verstehen und vielleicht ein Beitrag bei der Wissensvermittlung zu leisten.
---
I am no virologist and no epidemioligist. I am a seasoned [HPC](https://en.wikipedia.org/wiki/Supercomputer) user, [Research Software Engineer](https://en.wikipedia.org/wiki/Research_software_engineering), data scientist and machine learner practitioner.
I created this project, to try to understand the SARS-COV-2 virus and the pandemic with my mental tools. I hope to potentially contribute to the communication of knowledge and results.
# Exponentielles Modell / Exponential Model
Die folgenden Grafiken versuchen ein exponentielles Modell an die Daten für Dresden anzupassen (techn. zu fitten). Diesem Modell liegen einige Annahmen zugrunde:
- die Zahl der für den Virus empfänglichen Personen ist unbegrenzt
- die Genesungsrate ist verschwindend klein oder `0`Vgl. auch [lernapparat.de/epidemiologie-sir](http://lernapparat.de/epidemiologie-sir/) für eine tiefere Diskussion. Die Daten zeigen, dass diese Annahmen zunehmend in der Wirklichkeit verletzt werden und damit der Fit mit einem exponentiellen Modell schrittweise seine Aussagekraft mehr hat.
---
The following plots try to fit an exponential model to the data of Dresden, Germany. This model has several assumptions underlying such as:
- the number of susceptible persons is unlimited
- the rate of recovery is `0` or vanishingly smallSee also [lernapparat.de/epidemiology-sir](http://lernapparat.de/epidemiology-sir/) for in-depth discussion. The data shows that these assumptions are increasingly violated by reality and therefor the fit with an exponential model looses any basis for interpretation.
## COVID19 Im Krankenhaus / Hospitalized
![](de_de_dresden_www_hospitalized.png)
![](en_de_dresden_www_hospitalized.png)Datenquelle/data source: [dresden.de](https://www.dresden.de/de/leben/gesundheit/hygiene/infektionsschutz/corona.php)
## COVID19-Diagnosen / Diagnoses
### Dresden
![](de_de_dresden_www_diagnosed.png)
![](en_de_dresden_www_diagnosed.png)Datenquelle/data source: [dresden.de](https://www.dresden.de/de/leben/gesundheit/hygiene/infektionsschutz/corona.php)
### Sachsen
![](de_de_sachsen_sms_diagnosed.png)
![](en_de_sachsen_sms_diagnosed.png)Datenquelle/data source: [SMS by @dgerber](https://danielgerber.eu/2020/03/22/corona-zahlen-in-sachsen/)
## Statistik
### Deutsch
Für die rote Linie im o.g. Plot benutze ich ein sehr einfaches Modell: das [exponentiellen Wachstum](https://de.wikipedia.org/wiki/Exponentielles_Wachstum) der COVID19-Pandemie. Ich fitte die Daten mit einem [Least-Squares-Verfahren](https://de.wikipedia.org/wiki/Methode_der_kleinsten_Quadrate) entsprechend der Formel für das Modell:
``` r
diagnosed ~ a*exp(b*day)
```Wobei `a` und `b` freie Parameter sind.
### English
For the red line in the plot above, I use a simple model: the [exponential growth](https://en.wikipedia.org/wiki/Exponential_growth) of the COVID19 pandemia. I fit the data using a [Least Squares Algorithm](https://en.wikipedia.org/wiki/Least_squares) using the formula of the model:
``` r
diagnosed ~ a*exp(b*day)
```Here `a` and `b` are free parameters.
# Reproduziere das!
## German
1. [R installieren](https://www.r-project.org)
2. Abhängigkeiten interaktiv installieren``` shell
$ R
> install.packages(c("ggplot2","dplyr","readr","optparse", "cowplot","lubridate"))
> quit(save="default",status=0,runLast=TRUE)
```3. `exponential.R`-Script laufen lassen
``` shell
$ Rscript exponential.R -i data/de_dresden_www.csv
```4. Dies produziert drei Dateien `de_plus7.png`, `en_plus7.png` und `residuals_plus7.png`, die die Plots basierend auf `data/de_dresden_www.csv` beinhalten.
## English
1. [install R](https://www.r-project.org)
2. install dependencies interactively``` shell
$ R
> install.packages(c("ggplot2","dplyr","readr","optparse", "cowplot","lubridate"))
> quit(save="default",status=0,runLast=TRUE)
```3. run `exponential.R` script
``` shell
$ Rscript exponential.R -i de_dresden.csv
```4. this produces 3 files: `de_plus7.png`, `en_plus7.png` and `residuals_plus7.png` that contain the plots based on `data/de_dresden_www.csv`
## For Statistics Fans
### Residuals
My fit uses a simple exponential function. It is important to have a look at the residuals according to the same ordering as above.
![](residuals_de_dresden_www_hospitalized.png)
![](residuals_de_dresden_www_diagnosed.png)
![](residuals_de_sachsen_sms_diagnosed.png)The `nls` fit that I use, assumes that the data follows a Gaussian around the predicted values. The above plot looks like a very wide spread Gaussian. On top, there is a strong tendency towards positive values.
The plot above lists a parameter by the name `chi2/ndf`, if this is close to `1`, then the fit can be considered good. For more details, see the [wikipedia page on errors and residuals](https://en.wikipedia.org/wiki/Errors_and_residuals).
### Uncertainties
As I am using the standard uncertainties for all parameters from `nls` in R, these are 1 standard deviation uncertainties directly obtained from the square root of diagonal elements of the covariance matrix.