rev: tip draketo/wissen/covid-19-naiver-blick.org -rw-r--r-- 29.2 KiB View raw Log this file
f8daa6201ce2Arne Babenhauserheide wisp windows compat: wget ….gz; does not work on windows. Thanks to https://www.reddit.com/user/martin_m_n_novy/! 2 hours ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
#+INCLUDE: ../org-templates/level-1.org
#+title: Eine naive Einschätzung von Corona in Deutschland
#+date: <2020-03-17 Di>

#+begin_export html
<div class="sourcebox" markdown="1" >
<a href="covid-19-naiver-blick.pdf"><img title="PDF" src="../assets/pdf-thumbnail.png" /></a><br />
<a href="covid-19-naiver-blick.pdf">PDF</a> (drucken)
</div>
#+end_export

#+begin_src elisp :exports none
(progn (forward-line 2)(replace-string "-tmp.png :" ".png :"))
(replace-string ".png :" "-tmp.png :")
nil
#+end_src



#+begin_kasten
*Update* (2020-10-18): Zum *Prüfen der offiziellen Zahlen*: Inzwischen
gibt es in Deutschland laut den hier genutzten Daten 361.974
bestätigte Corona-Infektionen (Stand heute). Bei etwa 100 Bekannten
pro Person müsste im Durchschnitt jede zweite Person jemand
Corona-Infiziertes kennen — gewichtet natürlich nach Region und
danach, ob die Leute darüber sprechen. Ich wohne in BW (größerer
Anteil Infizierter, also sind mehr zu erwarten) und kenne persönlich
acht (8), die Corona hatten. Einer war deswegen 3 Monate im
Krankenhaus, musste dreimal wiederbelebt werden und lag einen Monat im
Koma. *Die offiziellen Zahlen sind aus meiner Sicht also plausibel*.
Es wird viele Leute geben, die gar keine Corona-Infizierten kennen,
die die Zahlen also nicht in ihrem persönlichen Umfeld auf
Plausibilität prüfen können. Die können sich zur Zeit nur über Proxy
informieren, z.B. darüber, dass Leute, von denen sie schon länger
hören, ihre Erfahrungen schreiben. Das ist der Grund für dieses
Update. Bitte passt auf euch auf.
#+end_kasten

Zur Zeit kursiert viel Panik, aber wenig Mathematik zu Corona, auch wenn es erfreuliche Ausnahmen gibt:

- [[https://perspective-daily.de/article/1181/2hWA1mB8][Coronavirus: Warum du jetzt handeln musst!]] — ausführliche mathematische Analyse ([[https://medium.com/@tomaspueyo/coronavirus-act-today-or-people-will-die-f4d3d9cd99ca][Englisches Original]])
- [[https://graphics.reuters.com/CHINA-HEALTH-SOUTHKOREA-CLUSTERS/0100B5G33SB/index.html][The Korean clusters]] — Wie Patientin 31 aus einer christlichen Sekte den Lockdown in Südkorea notwendig machte

Weitere wichtige Informationen:

- *[[https://www.ndr.de/nachrichten/info/Coronavirus-Update-Alle-Folgen,podcastcoronavirus134.html][Corona-Podcast]]* — Neuigkeiten, Einordnungen, Hintergründe. Es gibt auch ein [[https://www.ndr.de/nachrichten/info/coronaskript174.pdf][durchsuchbares Komplettskript]]. Wenn du irgendwas liest, das Drosten gesagt haben soll, schau im Skript nach.
- [[https://www.corona-in-zahlen.de/][Corona in Zahlen]] — Zahlend und der Zeitliche Verlauf für die Bundesländer; wenn ihr irgendeine Behauptung seht, schaut einfach, ob sie durch die Zahlen gedeckt wird.
- [[https://interaktiv.morgenpost.de/corona-virus-karte-infektionen-deutschland-weltweit/][Coronavirus-Monitor]] und [[https://interaktiv.morgenpost.de/corona-deutschland-intensiv-betten-monitor-krankenhaus-auslastung/][Klinikmonitor]] der /Berliner Morgenpost/ — eine der am schönsten aufbereiteten Seiten
- [[https://www.ecdc.europa.eu/en/covid-19/data][COVID-19 datasets]] — Verfügbare Daten des European Centre for Disease Prevention and Control.
- [[https://awillner.github.io/covid-19-stats-de/][COVID-19 infections in Germany per state]] — Plots und Heatmaps.
- [[https://www.youtube.com/watch?v=Fx11Y4xjDwA][Gefahren durch COVID-19]] — erklärt an Statistik von /Harald Lesh (Terra X)/
- [[https://www.youtube.com/watch?v=3z0gnXgK8Do][Wie es jetzt weitergeht]] — erklärt von /maiLab/: Um wieder Normalität zu erreichen, müssen wir zurück zur Eindämmung.
- [[https://mela.de/blog/2021/01/15/covid-19-linksammlung/][COVID-19 Linksammlung]] — von /Mela Eckenfels/.
- [[https://digitalcourage.de/blog/2020/corona-und-grundrechte][Querfront? Ohne uns]] — Rechtsextreme versuchen, Proteste zu verreinnahmen. Bleibt Wachsam. Infos und Tipps von Digitalcourage.
- [[https://scilogs.spektrum.de/natur-des-glaubens/adrenochrom-satanskultue-die-dualistischen-verschwoerungsmythen-von-xavier-naidoo/][Verschwörungsmythen]] — Infos und historischer Abriss zu einigen der Lügen, die aktuell kursieren.
- [[https://www.volksverpetzer.de/kommentar/die-zerstoerung-des-corona-hypes/][Fakten verstehen gegen Falschaussagen in Videos]] — leider gibt es auch im Juli 2020 immernoch Falschaussagen.

Grundlegend gilt: Verlässliche Informationen gibt es vom [[https://www.rki.de][Robert Koch Institut]]. 

Ich habe diessen Artikel im März 2020 angefangen und fortlaufend die neusten Daten eingebunden.

Diese Einschätzung ist naiv, weil ich nur die einfachsten Beziehungen
anschaue. Politische und wirtschaftliche Auswirkungen lasse ich
komplett außen vor. Und ich bin Physiker, kein Mediziner. Es gibt
sicher vieles, das ich nicht sehe. Trotzdem halte ich die Auswertung
für wichtig, weil sie die essenziellen Grundlagen von verzögert
regelbaren exponenziellen Prozessen zeigt, die wir wissen müssen, um
mit der Corona-Pandemie umzugehen.

Ich habe die Daten gesammelt wenn ich sie erhalten habe, die Daten
hier sind also, was zum jeweiligen Zeitpunkt zur Verfügung stand.


* Aktuelle Zahlen

Jetzt erstmal die bisherigen Fallzahlen für Deutschland. Es gibt sie Maschinenlesbar unter https://covid-19.openmedical.de/index.json, Beschreibung der Daten: [[https://covid-19.openmedical.de/][https://covid-19.openmedical.de/]].

/Das letzte Update dieser Daten war der 28.12.2020/

#+begin_src scheme :exports results :results result table
  (import (only (web client) http-get)
          (rnrs bytevectors)
          (json) ;; https://github.com/aconchillo/guile-json
          (ice-9 format)
          (ice-9 popen)
          (ice-9 vlist)
          (gnutls)
          (only (srfi srfi-1) zip fold first second third take member drop-right)
          (only (srfi srfi-19) string->date add-duration time-difference make-time time-utc->date date->time-utc date->string)
          (ice-9 pretty-print))
  (define-values (response port) (http-get "https://covid-19.openmedical.de/index.json" #:streaming? #t))
  ;; (pretty-print (utf8->string data))
  (define data (vector->list (json->scm port)))
  ;; make the data more processing-friendly
  (define by-state
    (map (λ (dataset) (cons (assoc-ref dataset "state")
                            (vector->list (assoc-ref dataset "data"))))
         data))
  (define flattened
    (apply append (map (λ (date-by-state)
                         (zip (map (λ (x) (car date-by-state)) (iota (length (cdr date-by-state)))) 
                              (map (λ (y) (assoc-ref y "date")) (cdr date-by-state))
                              (map (λ(y) (string->number (assoc-ref y "infected"))) (cdr date-by-state))))
                       by-state)))
  (define sum-by-date
    (fold (λ (element table)
            (let ((key (second element)) (value (third element)))
              (vhash-cons key
                          (+ value (cdr (or (vhash-assoc key table) '(#f . 0))))
                          table)))
          vlist-null
          flattened))
  ;; 14-day prognosis: average of the three days leading up to some date
  (define (10-day-prognosis sum-by-date start-date)
    (define latest-four (take (member start-date (vlist->list sum-by-date) (λ (x y) (equal? x (car y)))) 4))
    (define multipliers (cdr (fold (λ (value previous)
                                     (if previous
                                         (cons value (cons (/ value (car previous)) (cdr previous)))
                                         (list value))) #f (reverse (map cdr latest-four)))))
    (define mean (expt (apply * multipliers) (/ 1 (length multipliers))))
    (define semi-unbiased-std (sqrt (/ (apply + (map (λ (x) (expt (- x mean) 2)) multipliers))
                         (- (length multipliers) 1.5))))
    (define day-duration (time-difference (make-time 'type-foo 0 (* 60 60 24)) (make-time 'type-foo 0 0)))
    (define (add-day date-string)
      (date->string (time-utc->date (add-duration (date->time-utc (string->date date-string "~d.~m.~Y")) day-duration)) "~d.~m.~Y"))
    (define (next-day date-and-value multiplier)
      (cons (add-day (car date-and-value)) (exact->inexact (* multiplier (cdr date-and-value)))))
    (define prognosis (append 
                       (fold (λ (i previous)
                               (cons (next-day (car previous) mean) previous))
                             (list (first latest-four))
                             (iota 10))))
                       ;; ((
                       ;; (fold (λ (i previous)
                       ;;         (cons (next-day (car previous) (+ mean semi-unbiased-std)) previous))
                       ;;       (list (first latest-four))
                       ;;       (iota 10))
                       ;; (fold (λ (i previous)
                       ;;         (cons (next-day (car previous) (- mean semi-unbiased-std)) previous))
                       ;;       (list (first latest-four))
                       ;;       (iota 10))))
    prognosis)

  ;; TODO: this is a hack; need an ordered hash table that plays well with fold
  (let ((keys-seen (make-hash-table)))
    (with-output-to-file "covid-19-germany-infections-by-date.dat"
      (λ () (map (λ(x) (cond ((not (hash-ref keys-seen (car x)))
                              (hash-set! keys-seen (car x) #t)
                              (format (current-output-port) "~a ~a\n" (car x) (cdr x)))
                             (else "")))
                 (vlist->list sum-by-date)))))
  ;; disable the prognosis-updates, because the data only covers the past 14 days, so they would break at some point.
  ;; (with-output-to-file "covid-19-germany-prognosis-lockdown-on-2020-03-13.dat"
  ;;   (λ () (map (λ(x) (format (current-output-port) "~a ~a\n" (car x) (cdr x)))
  ;;              (10-day-prognosis sum-by-date "13.03.2020"))))
  ;; (with-output-to-file "covid-19-germany-prognosis-lockdown-on-2020-03-14.dat"
  ;;   (λ () (map (λ(x) (format (current-output-port) "~a ~a\n" (car x) (cdr x)))
  ;;              (10-day-prognosis sum-by-date "14.03.2020"))))
  ;; (with-output-to-file "covid-19-germany-prognosis-lockdown-on-2020-03-15.dat"
  ;;   (λ () (map (λ(x) (format (current-output-port) "~a ~a\n" (car x) (cdr x)))
  ;;              (10-day-prognosis sum-by-date "15.03.2020"))))
  ;; (with-output-to-file "covid-19-germany-prognosis-lockdown-on-2020-03-16.dat"
  ;;   (λ () (map (λ(x) (format (current-output-port) "~a ~a\n" (car x) (cdr x)))
  ;;              (10-day-prognosis sum-by-date "16.03.2020"))))
  ;; (with-output-to-file "covid-19-germany-prognosis-lockdown-on-2020-03-17.dat"
  ;;   (λ () (map (λ(x) (format (current-output-port) "~a ~a\n" (car x) (cdr x)))
  ;;              (10-day-prognosis sum-by-date "17.03.2020"))))
  ;; (with-output-to-file "covid-19-germany-prognosis-lockdown-on-2020-03-18.dat"
  ;;   (λ () (map (λ(x) (format (current-output-port) "~a ~a\n" (car x) (cdr x)))
  ;;              (10-day-prognosis sum-by-date "18.03.2020"))))

  ;; data table
  (define infections
    (let ((keys-seen (make-hash-table)))
      (cons '(Datum Bestätigt Neuinfektionen)
            (reverse (delete #f (map (λ(x) (cond ((not (hash-ref keys-seen (car x)))
                                                  (hash-set! keys-seen (car x) #t)
                                                  x)
                                                 (else #f)))
                                     (map (λ (x y) (list (car x) (cdr x) (if (< (cdr y) (cdr x)) (- (cdr x) (cdr y)) 'N/A)))
                                          (drop-right (vlist->list sum-by-date) 1) (cdr (vlist->list sum-by-date)))))))))

  (with-output-to-file "covid-19-germany-new-infections-by-date.dat"
      (λ () (map (λ(x) (format (current-output-port) "~a ~a\n" (first x) (third x)))
                 (cdr (cdr infections)))))

  ;; aggregate all data from version tracking info
  (close-pipe (open-input-pipe "hg ci -m covid covid-19-germany-infections-by-date.dat; hg log -p  covid-19-germany-infections-by-date.dat | grep ^+[0-9][0-9]\\\\. | sed s/+// > covid-19-germany-infections-by-date-all.dat"))
  
  infections
#+end_src

#+RESULTS:
|      Datum | Bestätigt | Neuinfektionen |
| 14.12.2020 |   1337078 |            N/A |
| 15.12.2020 |   1351510 |          14432 |
| 16.12.2020 |   1379238 |          27728 |
| 17.12.2020 |   1406161 |          26923 |
| 18.12.2020 |   1439938 |          33777 |
| 19.12.2020 |   1471238 |          31300 |
| 20.12.2020 |   1494009 |          22771 |
| 21.12.2020 |   1510652 |          16643 |
| 22.12.2020 |   1530180 |          19528 |
| 23.12.2020 |   1554920 |          24740 |
| 24.12.2020 |   1587115 |          32195 |
| 26.12.2020 |   1627103 |          39988 |
| 27.12.2020 |   1640858 |          13755 |
| 28.12.2020 |   1651834 |          10976 |





Ein Plot hilft zu erfassen, was diese Entwicklung bedeutet.


#+begin_src gnuplot :session covid :file covid-19-germany-infections-by-date-tmp.png :exports none
set title ""
set xdata time
set timefmt "%d.%m.%y"
set format x "%a\n%d"
set xlabel "Tage im Juli und August 2020"
set ylabel "Infektionen in Deutschland, summiert über Länder"
unset log y
unset yrange
set grid x
set grid y
set key left top
plot "covid-19-germany-infections-by-date.dat" u 1:2 with lines lw 8 title "Meldungen" 
#+end_src


# [[file:covid-19-germany-infections-by-date.png]]


Um zu sehen, wie sich die Gefährdung in Deutschland entwickelt, sind die Neu-Infektionen der wichtigste Faktor:

#+begin_src gnuplot :session covid :file covid-19-germany-new-infections-by-date-tmp.png :exports none
set title ""
set xdata time
set timefmt "%d.%m.%y"
set format x "%a\n%d\n%m"
set xlabel "Datum / Tage in 2020"
set ylabel "Neu-Infektionen in Deutschland"
unset log y
set yrange [0:]
set grid x
set grid y
set key left top
plot "covid-19-germany-new-infections-by-date.dat" u 1:2 with lines lw 4 title "Meldungen" 
#+end_src

#+RESULTS:
[[file:covid-19-germany-new-infections-by-date.png]]


[[file:covid-19-germany-new-infections-by-date.png]]

#+begin_src gnuplot :session covid :file covid-19-germany-infections-by-date-prognosen-tmp.png :exports none
set xdata time
set timefmt "%d.%m.%y"
set format x "%a\n%d\n%m"
set xlabel "Datum / Tage in 2020"
set ylabel "Infektionen in Deutschland, summiert über Länder"
unset log y
unset yrange
set grid x
set grid y
set key left top
set term png size 600, 800
set size ratio 1.3
plot "covid-19-germany-infections-by-date-all.dat" u 1:2 with lines lw 8 title "Meldungen",  "covid-19-germany-prognosis-lockdown-on-2020-03-10.dat" u 1:2 lw 2 title "10 Tage Prognose ab 10 März",  "covid-19-germany-prognosis-lockdown-on-2020-03-14.dat" u 1:2 lw 2 title "10 Tage Prognose ab 14. März", "covid-19-germany-prognosis-lockdown-on-2020-03-17.dat" u 1:2 lw 2 title "10 Tage Prognose ab 17. März"
#+end_src

#+RESULTS:

Einen Überblick liefern die Gesamtdaten.

[[file:covid-19-germany-infections-by-date-prognosen.png]]

Dieser Gesamtüberblick ist aus den Daten erstellt, die ich über die letzten Monate jeweils zwei Wochen zurückblickend heruntergeladen und gespeichert habe.

* Fragen

** Warum sind hier keine Infos über Testhäufigkeit und Testverfahren?

   Die Testhäufigkeit und die Testverfahren in Deutschland können
   vielleicht Faktor 2 oder 3 ausmachen, solche einfachen Faktoren
   sind in Exponentieller Ausbreitung aber einfach nur eine *zeitliche Verschiebung*.
   Für die Aussagekraft meiner Diagramme haben sie daher
   kaum eine Bedeutung, sie würden die Interpretation aber erschweren.

   Außerdem wird das vom RKI sowieso schon berücksichtigt, und es ist
   nicht mein Ziel, die ganze Arbeit des RKI zu replizieren.

   Die Auswertung hier habe ich für mich selbst gemacht, um mir eine
   informierte Meinung bilden zu können. Für diesen Zweck genügt sie
   vollkommen. Die Kurzfassung des Ergebnisses: Ja, Corona verbreitet
   sich exponentiell, wenn es keine Gegenmaßnahmen gibt. Dadurch
   würden die Kapazitäten der Krankenhäuser schnell überlastet werden.
   Deswegen *muss* es Gegenmaßnahmen geben, und wir
   *müssen Eindämmung erreichen*.

* Historisches

** Einstieg vom März 2020
 Es fällt mir schwer, über dieses Thema zu schreiben, aber nachdem ich bestimmte
 Punkte immer wieder in sozialen Medien geschrieben habe, wird es Zeit,
 sie zusammenzufassen. Daher möchte ich hier eine Einordnung geben, wie
 ich die nächsten Wochen mit COVID-19 einschätze.

 Ich werde auf Zahlen arbeiten und wo nötig Annahmen
 treffen. Die wichtigste Grundlage bei all dem: Corona breitet sich
 exponentiell aus — wie zu erwarten für Viren, gegen die wir keine
 Abwehrkräfte haben — und es braucht [[https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/Steckbrief.html#doc13776792bodyText4][im Mittel 5-6 Tage]], bis Symptome
 auftreten (Spannbreite 1-14 Tage). Zwischen einem und fünf von 100
 Erkrankten sterben an Corona; fünf werden erreicht, wenn das
 Gesundheitssystem überlastet ist.


  
** Meine Erwartung im März 2020, wenn nichts gemacht würde

 Inzwischen sind je nach Bundesland seit Samstag den 14. März oder seit Dienstag den 17. März die Schulen geschlossen. Bis dahin liefen Infektionen schon nicht mehr völlig ungestört, aber doch kaum zu bremsen. 

 Allerdings ist bei bis zu 14 Tagen Inkubationszeit der Großteil der bereits Infizierten noch nicht bekannt. Um die wirkliche Zahl der Infizierten am 14. März abzuschätzen, können wir die Entwicklung der Kurve in die Zukunft fortsetzen. Um Ausreißer abzufedern habe ich jeweils die Zahlen der vier Tage vorher genommen — Anzahl der Fälle geteilt durch die Anzahl der Fälle am Vortag — und darüber gemittelt.[fn:1]

 Das liefert die Fallzahlen, die zu erwarten sind, wenn von dem Stichtag an keine weiteren Infektionen mehr stattfinden.

 Ich habe das für einen Lockdown am 10. März, am 14. März und am 17. März geplottet.

 Laut der einfachen Prognose hier hätte ein Lockdown am 10. März die Fälle unter 10.000 gehalten, aber Eltern und Schulen noch stärker unvorbereitet erwischt. Ein Lockdown am 13. März hätte bei gleich weiterlaufender Entwicklung noch knapp 80.000 Infizierte gebraucht. Für einen Lockdown ab dem 17. März werden 60.000 Erkrankte vorhergesagt.

 Interessant ist hier, dass die zu erwartenden Fallzahlen ab dem 17. März weniger sind als ab dem 14. März. Das deutet zumindest darauf hin, dass die Ansteckungszahlen schon or dem 17. deutlich zurückgegangen sind. 

 Dazu gleich mehr, denn wir kommen trotzdem vermutlich auf 60.000 gemeldete Infizierte, von denen üblicherweise jeder fünfte im Krankenhaus behandelt werden muss. Also werden etwa 12.000 Leute ein Krankenhausbett brauchen. Es gibt in Deutschland 28.000 Krankenhausbetten, allerdings nur 20% davon frei. Wir haben damit unter 6.000 freie Betten. Wer krank ist, muss üblicherweise 3 Wochen im Krankenhaus bleiben, es wird also wahrscheinlich knapp. Nach [[https://www.youtube.com/watch?v=cyd53mKQb3Y][Recherchen von Monitor]] durch Personalmangel sogar noch knapper.

** Rückblick

 *Änderung*: Hier sind nochmal ältere Diagramme.

 [[file:covid-19-germany-infections-by-date-prognosen-2020-03-23.png][file:covid-19-germany-infections-by-date-prognosen-2020-03-23.png]]

 [[file:covid-19-germany-infections-by-date-prognosen-2020-03-26.png][file:covid-19-germany-infections-by-date-prognosen-2020-03-26.png]]

 [[file:covid-19-germany-infections-by-date-prognosen-2020-04-08.png][file:covid-19-germany-infections-by-date-prognosen-2020-04-08.png]]

 [[file:covid-19-germany-infections-by-date-prognosen-2020-04-15.png][file:covid-19-germany-infections-by-date-prognosen-2020-04-15.png]]

*Korrektur 2020-21:* jetzt mit geometrischem statt arithmetischem Mittel und Start am 10. März (braucht 4 Tage an Daten). Der Unterschied war klein, jetzt sind die Zahlen korrekter.

** Weiter vom März
 
 Während sich in den Tagen vor dem 14. März die Zahl der Infizierten noch etwa alle 3 Tage verdoppelt hat, dauerte es in den Tagen vor dem 17. März schon 5 Tage. Wenn wir auf 14 Tage kommen, steckt jeder Infizierte weniger als eine weitere Person an und das Virus läuft sich tot.

 *Änderung*: Die Logarithmische Darstellung ist aktuell nicht mehr aussagekräftig, weil wir durch den Lockdown die Steigerung der Infektionen weit genug reduziert haben, dass sie auf linearer Skala sichtbar bleiben. Danke!

 Wenn das die nächsten Tage anhält und wir von jetzt ab Neuinfektionen ausreichend stark vermeiden können, dass sich das Virus totläuft, haben wir gemeinsam unser Gesundheitssystem und viele Leben gerettet.

 Wenn wir das nicht machen, unser Gesundheitssystem überlastet und ganz Deutschland durchseucht wird (genauer: 70% das Virus bekommen), sterben nach Erfahrungen in Italien etwa 5% der Infizierten mit Symptomen (etwas unter 60%, laut Robert Koch Institut), als gut jeder 40. in Deutschland Lebende.

 *Kurzfassung*: Es ist zu erwarten, dass wir bis zum 27. März etwa 60.000 Fälle haben. Die Belastung für die Kliniken wird allerdings wahrscheinlich erst Mitte April wieder sinken, weil Kranke üblicherweise 3 Wochen lang kämpfen, bevor sie entlassen werden können. Bis dahin sind die im Gesundheitssystem Arbeitenden die wichtigsten Kräfte, die wir haben.

 An dieser Stelle: *Danke!* @@html: ♡@@ Wir sollten +spätestens nach der Krise+ jetzt endlich über Verbesserungen bei eurem Lohn und euren Arbeitszeiten sprechen.

 Was bedeutet das für alle anderen? *Abstand halten, Hände waschen, einkaufen wenn nötig, wenn möglich Home-Office machen.* Das Infektionsrisiko für Alle minimieren, denn wir wissen erst mit mindestens 5-6 Tagen Verzögerung, ob wir infiziert sind. Keine alten Leute besuchen (von den über 70 Jährigen sterben über 10% an Corona!). Kinder von anderen Kindern fernhalten, auch wenn es schwierig ist.

 Jetzt aber erstmal viel Kraft, und versucht, gesund zu bleiben!

 /PS: Diese Auswertung gibt es [[https://hg.sr.ht/~arnebab/draketo/browse/wissen/covid-19-naiver-blick.org][mit vollständigem Quellcode online]]./

 /PPS: Und weil manche es nicht lassen können, bleibt das hier nicht ohne politische Positionierung: Der Pegida-Gründer hetzt aus dem spanischem Exil gegen Merkel und behauptet, Corona würde eh nicht so schlimm. So reden die Menschenfeinde. Von Rechten höre ich die letzten Tage Vorwürfe, Blockaden wichtiger Maßnahmen, Falschinformationen und den Versuch, Leute davon abzuhalten, sich Hilfe zu holen. Die extremen Rechten zeigen gerade, dass ihnen das Wohl des von ihnen so oft beschworenen Volkes bestenfalls egal ist. Stattdessen hoffen sie, alle Probleme zu verschlimmern, damit endlich die Krise kommt, die sie sich herbeisehnen, damit sie einen Staatsstreich proben können. Lassen wir sie auflaufen und handeln umsichtig und solidarisch./

 /PPPS: Wenn ihr Informationen bekommt, die euch aufregen, prüft sie, bevor ihr sie weitergebt. So [[https://www.draketo.de/deutsch/politik/herausforderungen-technisch-sozial#aufklaerung][erhöhen wir die Verlässlichkeit unserer Informationen]]./

 # #+toc: headlines 2

* nerdsnipe                                                        :noexport:

------

Etwas generde dazu von Freenet:

#+begin_example
Hallo Narr,

Narr@NdFSLpPtKHO-XDwFl30Wb0r-x7CsYNKsXadWzDPbXcA wrote :
> Erst ein Mal, danke für die Zusammenfassung.

Gern :-)

Ich hoffe, dass sie dir was bringt!

> Falls es Dir irgendwann wieder in den Fingern juckt, magst Du vielleicht
> folgendes Modell verwenden:
> 
> i' = α i (1 - i)
> 
> wobei i der infizierte Anteil der Bevölkerung ist und α (empirisch zu
> ermitteln) soll dabei mittlerer Knotengrad im Kontaktgraphen,
> Übertragungswahrscheinlichkeit und andere Faktoren zusammen fassen.
> 
> Für α' = 0 erhält man:
> 
> i(t) = exp(α t + C) / (1 + exp(α t + C))

Also i(t) = C₀ · exp(αt) / (1 + C₀ · exp(αt))

= exp(αt) / (C₀⁻¹ + exp(αt))

> C lässt sich durch die Randbedingung
> 
> Population * i(t_0) = Infizierte-Personen

i(0) ist 

> bestimmen.
> 
> i(t) ist in (0, 1) für alle t, somit kommen wir nicht in die
> Verlegenheit mehr Infizierte als überhaupt Menschen zu haben, was bei
> einem exponentiellen Modell und einen nicht unwesentlichen Anteil
> Infizierter problematisch wird.
> 
> Viele Grüße
> Ein Narr
> 
> PS: α interssiert mich.

Das Modell wird interessant, wenn wir einen signifikanten Teil Infizierter Personen haben. Ich hoffe, dass es nicht dazu kommt. Bisher sieht es in Deutschland ganz gut aus — ich habe ein Update der Seite angestoßen:

freenet:USK@LHeuG-SU5ZvYQXTu8Y9mhjCYyQxB-m-W~ryElufr-2M,Ij9l0U1Wa~FQu7GFBf~ciwUbCwpTFv6mWZkS1YuoxQk,AQACAAE/arnebab-org/32/wissen/covid-19-naiver-blick.html

α ist vermutlich die Basisreproduktionszahl aus dem Steckbrief des RKI:
https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/Steckbrief.html#doc13776792bodyText3

3. Basisreproduktionszahl (R0)
Verschiedene Studien verorten die Zahl der Zweitinfektionen, die von einem Fall ausgehen (Basisreproduktionszahl R0), zwischen 2,4 und 3,3. Dabei wurden einzelne Studien mit deutlich höheren Schätzwerten nicht berücksichtigt. Dieser Wert kann so interpretiert werden, dass bei einem R0 von etwa 3 ungefähr zwei Drittel aller Übertragungen verhindert werden müssen, um die Epidemie unter Kontrolle zu bringen (21). Das R0 in China wurde im WHO-China Joint Mission Report in der Abwesenheit von Maßnahmen als 2–2,5 angegeben (13).


Um daraus α zu ermitteln, muss ich allerdings t entsprechend der Dauer skalieren, zu der Leute ansteckend sind. Als ich zuletzt geschaut habe, war die noch nicht sicher bekannt.

Deswegen habe ich einen viel einfacheren Weg gewählt: ich erhalte während dem näherungsweise exponenziellen Wachstum in der Anfangsphase eine Näherung von α durch Mittelung der täglichen relativen Steigerung der Fallzahlen:

α = i(t+1) / i(t)

In meiner Prognose mit Startdatum vom 17. März verwende ich 1.235… als tägliche Steigerung, also 0.211 als α (log 1.235).

Von gestern auf heute waren es nur 1.08, vorgestern auf gestern waren 1.15.

Wir müssen unter 1 kommen, um die Pandemie vorläufig zu stoppen.

Am 17. März hatten wir etwa 7000 bekannte Infizierte, wenn wir Leute ohne Symptome dazuzählen und von einer niedrigen Dunkelziffer ausgehen also etwa 14000 Fälle.

i(0) bei 1.08 ist fast 0.01. C₀ skaliert die Verteilung auf Personen hoch. Das erreiche ich, wenn ich 1/C₀ als 80 000 000 / 14 000 wähle ⇒ 5714.

Wenn wir nur die gefundenen Fälle vergleichen (weil wir dafür Daten haben), ist 1/C₀ 11429.

Um Fallzahlen abzuschätzen:

80 000 000 * exp(0.211 t) / (11429 + exp(0.211 t))

Ich habe das mal gerechnet:

(map (λ(x) (format #t "~a ~a\n" x (* 80000000 (/ (exp (* 0.211 x)) (+ 11429 (exp (* 0.211 x))))))) '(0 5 10 15 20 25 30 35 40 45 50 55 60 65 70))
0 6999.125109361329
5 20098.007553358577
10 57693.804749979136
15 165471.66685194144
20 473397.193500145
25 1344688.448096652
30 3744100.0003339886
35 9886768.05391585
40 23059731.253933653
45 43015952.202155575
50 61568420.86055269
55 72448179.83656824
60 77198113.87968512
65 79001611.95334417
70 79649517.61166632

Spannender sind noch die Fälle auf der Intensivstation (2.4% der neuen Fälle der letzten 21 Tage, da Leute nach 3 Wochen entlassen werden).

Schauen wir uns das mit 1.08 an und 52000 Infizierten als Startwert an (unter der Annahme, dass ich viel zu spät abends das alles richtig habe):

(map (λ(x) (format #t "~a ~a\n" x (* 0.024 80000000 (apply + (map (λ(y) (- (/ (exp (* 0.077 (- x y))) (+ 1523 (exp (* 0.077 (- x y))))) (/ (exp (* 0.077 (- x y 1))) (+ 1523 (exp (* 0.077 (- x y 1))))))) (iota 21)))))) '(0 5 10 15 20 25 30 40 60 90 120 150 180 210 240))
0 1009.6403783020017
5 1483.2337256507585
10 2178.598663764036
15 3199.148429545855
20 4696.013897012204
25 6889.479956940465
30 10099.381178414482
40 21614.440918997672
60 94890.41082435529
90 545463.3366992301
120 572318.174722948
150 104413.89622003633
180 11195.321676848876
210 1120.071593465326
240 111.26731834671943

Ab 14000 bricht das Gesundheitssystem zusammen.


Damit es machbar bleibt, müssen wir auf R₀ = 1.002 kommen:

(let ((α (log 1.002))) (map (λ(x) (format #t "~a ~a\n" x (* 0.024 80000000 (apply + (map (λ(y) (- (/ (exp (* α (- x y))) (+ 1523 (exp (* α (- x y))))) (/ (exp (* α (- x y 1))) (+ 1523 (exp (* α (- x y 1))))))) (iota 21)))))) '(0 5 10 15 20 25 30 40 60 90 120 150 180 210 240 600 900 1200 1500 1800 2000 3000 3500 4000 4500 5000)))
0 51.7343557752345
5 52.25309849931158
10 52.77703584621679
15 53.30621969641257
20 53.84070244572929
25 54.38053701042729
30 54.925776832310255
40 56.03268867357597
60 58.31378643492258
90 61.910457882803705
120 65.72860131678529
150 69.78180809881427
180 74.08449778957694
210 78.65196786602621
240 83.50044632766063
600 171.04877482723907
900 310.39886844382386
1200 561.6711960733123
1500 1011.1254575913775
1800 1803.4379455990268
2000 2629.8020375878473
3000 13128.60984653172
3500 19512.946964381932
4000 18195.459676245562
4500 10950.083453292762
5000 5006.134683174395

PS: Damn, gründlich generdsniped :-)
https://xkcd.com/356/

PPS: Hier fehlt, dass α mit der Anzahl der bereits Genesenen sinkt, weil die Leute wahrscheinlich für mehrere Jahre immun sind.
#+end_example

#+setupfile: ../org-templates/level-1-wissen.org
#+options: toc:nil H:2 num:nil

* Footnotes

[fn:1] Ich habe auch Unsicherheiten der Multiplikatoren berechnet (via unbiased Standardabweichung), die sind allerdings nicht sehr aussagekräftig, weil die Handlungen der Menschen viel mehr bewirken. 100.000 Infizierte sind innerhalb der 68% Wahrscheinlichkeit.

# Local Variables:
# org-confirm-babel-evaluate: nil
# org-export-default-language: de
# org-babel-noweb-wrap-start: "{{{"
# org-babel-noweb-wrap-end: "}}}"
# org-latex-images-centered: nil
# End: