Jedes dritte Corona-Tote ist geimpft, also bringt Impfen nix? Falsch.

1 Der dritte Corona-Tote geimpft?!

Kürzlich (12.10.2021) war u.a. in der Bildzeitung zu lesen, dass jeder dritte Corona-Tote geimpft war:

Das heiß, rund ein Drittel aller Corona-Toten bei den über 60-Jährigen war geimpft!

Der Artikel bezieht sich auf das RKI als Quelle.

Ähnliche Zahlen waren auch an anderen Orten zu lesen.

2 tl;dr

In der Presse war kürzlich zu lesen, dass ein guter Teil der Coronafälle (bzw. Intensivbetten oder Todesfälle) geimpft ist, ca. ein Drittel. Wenn aber ein Drittel Geimpfter unter den Corona(Todes-)fällen bzw. in Krankenhaus(intensiv-)betten zu finden ist, so müsste man doch schließen, dass die Impfung wenig bis nichts nützt. Oder etwa nicht?!

Nein. Obiger Schluss ist falsch, wie im Folgenden gezeigt.

Kurz gesagt: Geht man von einer Impfquote von 90% bei der Altersgruppe 60+ aus, so müsste man einen Anteil von 90% Geimpfter in den Corona-Todesfällen sehen, wenn die Impfung keinen Schutz bietet. 90% entspricht einem Verhältnis von 9 zu 1, d.h. 9:1=9.

Tatsächlich findet man aber, wie von der Presse aufgegriffen, einen Anteil von ca. einem guten Drittel Geimpfter bei den Corona-Todesfällen bei der Altersgruppe 60+ (der Anteil ist ähnlich, egal ob wir Hospitalisierung, Intensivfälle oder Todesfälle betrachten). Ein Drittel entspricht einem Verhältnis von 1 zu 2, d.h. 1:2=0.5.

Im Vergleich zu keiner Impfung bzw. keinen Schutz reduziert die Impfung also die Gefahr eines Todesfall (ähnlich für Hospitalisierung oder Intensiv) um den Faktor 18, da \(9 : 18 = 0.5\).

Dieses Argument ist im Folgenden in einiger Länge aufgeführt.

3 Frage: Wie viele Menschen mit Corona wurden ins Krankenhaus eingeliefert?

Schauen wir zunächst, wie viele Menschen in letzter Zeit (KW41-44; diese Zahl ist explizit ausgewiesen im aktuellen RKI-Wochenbericht).

covid_kw_41_44 <- 
  tibble::tribble(
         ~age, ~cases, ~hosp_cases, ~hosp_cases_vacc,
  "12-17",                           23119L,                              119L,                                                   4L,
  "18-59",                          159647L,                             3637L,                                                 825L,
  "60+",                           37735L,                             5587L,                                                2522L
  )

covid_kw_41_44 %>% 
  gt()
age cases hosp_cases hosp_cases_vacc
12-17 23119 119 4
18-59 159647 3637 825
60+ 37735 5587 2522

die Daten sind RKI-2021-11-11 entnommen (S. 22).

  • cases: Symptomatische COVID-19-Fälle (mit Angabe Impfstatus)
  • hosp-cases: Hospitalisierte COVID-19-Fälle (symptomatisch mit Angabe Impfstatus)
  • hosp-cases-vacc: Hospitalisierte COVID-19-Fälle mit wahrscheinlichem Impfdurchbruch

4 Antwort: Hospitalisierungsquoten lagen jüngst zwischen 1% und 15%

Berechnen wir die Anteile von (geimpften) Krankenhauseinweisungen für den Berichtszeitraum KW 41-44.

covid_kw_41_44 <- 
  covid_kw_41_44 %>% 
  mutate(prop_hosp = hosp_cases / cases,
         prop_hosp_vacc = hosp_cases_vacc / hosp_cases)

covid_kw_41_44 %>% 
  gt() %>% 
  fmt_number(where(is.numeric), decimals = 2)
age cases hosp_cases hosp_cases_vacc prop_hosp prop_hosp_vacc
12-17 23,119.00 119.00 4.00 0.01 0.03
18-59 159,647.00 3,637.00 825.00 0.02 0.23
60+ 37,735.00 5,587.00 2,522.00 0.15 0.45

Man sieht, dass die Hospitalisierungsquote (aggregiert über den Impfstatus) bei Jugendlichen bei 1% lag, bei 18-59-Jährigen bei 2% und bei den über 60-Jährigen bei 15% (Berichtszeitraum KW 41-44 diesen Jahres).

Von den hospitalisierten Personen, \(H\), war pro Altersgruppe folgender Anteil \(p\) geimpft \(I\), also \(p(I|H)\): 3% bei den Jugendlichen, 23% bei den 18-59-Jährigen und 45% bei der Altersgruppe 60+. Entsprechend war der restliche Anteil nicht geimpft: \(97%\) bei den Jugendlichen, 77% bei den 18-59-Jährigen und 55% bei der Altersgruppe 60+.

5 Frage: Ist jede Dritte Corona-Tote geimpft?

Im aktuellen RKI-Wochenbericht (11.11.2021, KW 45) ist auf S. 22 zu lesen, jeweils in Bezug auf die KW 41-43 und für die Altersgruppe 60+:

  • Anteil wahrscheinliche Impfdurchbrüche an hospitalisierten COVID-19-Fällen: 45,1%
  • Anteil wahrscheinliche Impfdurchbrüche an COVID-19-Fällen auf Intensivstation: 36,0%
  • Anteil wahrscheinliche Impfdurchbrüche an verstorbenen COVID-19-Fällen: 41,7%

Für die Altersgruppe 18-59 Jahren sehen die Zahlen hingegen besser zugunsten der Impfung aus:

  • Anteil wahrscheinliche Impfdurchbrüche an hospitalisierten COVID-19-Fällen: 22,7%
  • Anteil wahrscheinliche Impfdurchbrüche an COVID-19-Fällen auf Intensivstation: 12,9%
  • Anteil wahrscheinliche Impfdurchbrüche an verstorbenen COVID-19-Fällen: 18,5%

Ergänzen wir unsere Tabelle entsprechend:

covid_kw_41_44 <- 
covid_kw_41_44 %>% 
  mutate(
    cases_dead = c(0, 54, 840),
    cases_dead_vacc = c(0, 10, 350),
    prop_cases_dead = cases_dead_vacc / cases_dead)

covid_kw_41_44 %>% 
  select(age, contains("dead")) %>% 
  gt() %>% 
  fmt_number(where(is.numeric), decimals = 2)
age cases_dead cases_dead_vacc prop_cases_dead
12-17 0.00 0.00 NaN
18-59 54.00 10.00 0.19
60+ 840.00 350.00 0.42

6 Antwort: Ja, diese Zahl stimmt oder ist höher

Berechnen wir die Summe der Coronafälle, die Summe der hospitalisierten Fälle sowie Summe:

covid_kw_41_44 %>% 
  summarise(sum_cases = sum(cases),
            sum_hosp_cases = sum(hosp_cases),
            sum_hosp_cases_vacc = sum(hosp_cases_vacc))
## # A tibble: 1 × 3
##   sum_cases sum_hosp_cases sum_hosp_cases_vacc
##       <int>          <int>               <int>
## 1    220501           9343                3351

Die Summe ist jeweils über alle Altersgruppen berechnet.

Teilen wir die Summe der hospitalisierten Fälle mit Impfung (sum_hos_cases_vacc) durch die Summe der hospitalisierten Fälle, bekommen wir den Anteil (p wie proportion) der geimpften hospitalisierten Fälle (“Anteil der wahrscheinlichen Impfdurchbrüchen an hospitalisierten (H) Covid-19-Fällen”), prop_hosp_vacc, \(p(I|H)\):

covid_kw_41_44 <- 
  covid_kw_41_44 %>% 
  summarise(sum_cases = sum(cases),
            sum_hosp_cases = sum(hosp_cases),
            sum_hosp_cases_vacc = sum(hosp_cases_vacc)) %>% 
  mutate(across(everything(), as.integer)) %>% 
  mutate(prop_hosp_vacc = sum_hosp_cases_vacc / sum_hosp_cases) 

covid_kw_41_44 %>% 
  gt() %>% 
  fmt_number(4, decimals = 2)
sum_cases sum_hosp_cases sum_hosp_cases_vacc prop_hosp_vacc
220501 9343 3351 0.36

Wir bekommen als Zahl etwa die Zahl, die die Bildzeitung berichtete, ein rundes Drittel der Coronafälle im Krankenhaus sind geimpft.

Der Anteil von Impfdurchbrüchen an verstorbenen Covid-19-Fällen für die Altersgruppe 60+ ist also höher als die Bildzeitung berichtete, nämlich bei 41.7% laut RKI-Wochenbericht vom 11.11.2021 (im Folgenden als RKI-2021-11-11 bezeichnet); vermutlich bezog sich die Bildzeitung auf einen älteren Wochenbericht. Für die Altersgruppe 18-59 ist der Anteil an Impfdurchbrüchen bzw. Todesfällen aber deutlich geringer.

Geimpft wird dabei so definiert vom RKI:

Dazu zählen alle in Deutschlandabgeschlossenen Impfserien (2 Dosen Comirnaty (BioNTech/Pfizer), Spikevax (Moderna), Vaxzevria (AstraZeneca) einschließlich Kreuzimpfungen bzw. 1 Dosis Janssen (Johnson & Johnson)) , wenn mindestens zwei Wochen seit der letzten Dosis vergangen sind.

Auf diese Definition stützen wir uns im Folgenden.

7 Frage: Wenn es so viele geimpfte Corona-Opfer gibt, dann ist die Impfung also kaum wirksam?

Das Argument, das hinter dieser Frage steht (und sie bejaht), geht etwa so: Wenn es fast genauso viele Coronatote bei den Geimpften gibt wie bei den Ungeimpften, dann ist die Impfung (fast) nicht wirksam. Gleiche Todesrate (zwischen Geimpften und Ungeimpften) bedeutet gleicher Schutz vor Corona, oder etwa nicht?

Dazu die Bildzeitung:

knitr::include_graphics("https://media-exp1.licdn.com/dms/image/C4D22AQFborIm6TnOVA/feedshare-shrink_1280/0/1636900096574?e=1640217600&v=beta&t=HVPXsel7xx-bTK7i7nuWnpFylJVFOFvf9T44hPXWmmM")

8 Antwort: Der Anteil der Impfdurchbrüche ist abhängig von der Impfquote

Die Kurzversion der Antwort wabert schon seit einiger Zeit durch das Netz und die Nachrichten: Wären 100% der Menschen geimpft, so wären auch 100% der Corona-Toten geimpft. Der Anteil der Corona-Toten in der Allgemeinbevölkerung ist also abhängig von der Impfquote. Das heißt nicht (zwangsläufig), dass der Impfschutz abhängig ist von der Impfquote.

Und ja, auch unter Geimpften gibt es Menschen, die aufgrund (oder mit) Corona sterben. Aber: Sind es weniger als bei den Ungeimpften? Und wenn ja, wie viele weniger?

9 Frage: Wie hoch ist die Impfquote unter den Coronatoten?

Wie hoch ist die Impfquote? Zuerst sollten wir festhalten, dass der Großteil der Coronatoten hochbetagt ist (RKI-2021-11-11):

Unter den insgesamt 1.393 COVID-19-Fällen mit Impfdurchbrüchen, die verstorben sind, waren 995 (71 %) 80 Jahre und älter. Das spiegelt das generell höhere Sterberisiko - unabhängig von der Wirksamkeit der Impfstoffe - für diese Altersgruppe wider.

An anderer Stelle schreibt das RKI mit Bezug auf das Paul-Ehrlich-Institut (PEI):

In diesem Sicherheitsbericht des PEI heißt es: “Das Risiko für einen schweren und auch tödlichen Verlauf einer SARS-CoV-2-Infektion steigt mit steigendem Alter rapide an. Sehr alte Menschen sind am meisten gefährdet, an der Infektion zu versterben. …”

10 Antwort: Die Coronatoten sind mehrheitlich hochbetagt und Hochbetagte haben eine hohe Impfquote

Betrachten wir die Altersverteilung der Todesfälle in Zusammenhang mit Corona Quelle RKI 11.11.2021.

Daten einlesen:

xlsx_path <- "/Users/sebastiansaueruser/datasets/Covid/COVID-19_Todesfaelle-2021-11-11.xlsx"
covid_deaths <- readxl::read_xlsx(xlsx_path,
                                  sheet = 5)

covid_deaths2 <-
  covid_deaths %>% 
  pivot_longer(cols = -c(1,2),
               names_to = "Altersgruppe",
               values_to = "Anzahl") %>% 
  mutate(Anzahl = parse_number(Anzahl))

Daten zusammenfassen:

covid_deaths2 %>% 
  group_by(Altersgruppe) %>% 
  summarise(Anzahl_Sterbefaelle = sum(Anzahl)) %>% 
  ggplot() +
  aes(y = Altersgruppe,
      x = Anzahl_Sterbefaelle) +
  geom_col() +
  scale_x_continuous(labels = scales::label_scientific(),
                     breaks = c(0, 25000, 50000),
                     limits = c(0, 50000)) +
  geom_text(
    aes(label = Anzahl_Sterbefaelle),
    size = 2,
    nudge_x = 5000
  )

Wie man sieht, ist eine Schätzung des mittleren Alters von Todesfällen in Zusammenhang mit einer Corona-Erkranung etwa in der 9. Lebensdekade zu suchen.

Laut dem Impfquoten-Monitoring des RKI (Stand 15.11.2021) ist in der Altersgruppe 60+ etwa ein Anteil von 85.6% geimpft. Die gleiche Zahl ist im Impfdashboard, 15.11.21, 20.59h zu lesen.

Das RKI geht davon aus, dass die Impfquote nicht exakt erfasst wurde.

Wie in anderen Meldesystemen auch wird bei den über das Digitale Impfquotenmonitoring erfassten Impfquoten von einer gewissen Untererfassung ausgegangen.

Die Bundesregierung, 8.10.2021 geht davon aus, dass mehr Menschen geimpft wurden, als es die bekannten Statistiken angeben:

Nach einer neuen Erhebung des Robert-Koch-Instituts (RKI) ist die Impfquote unter den Erwachsenen in Deutschland höher als bislang angenommen.

Die Impfquote ist also womöglich etwas höher als 85.6% bei der Altersgruppe 60+: “Eine Unterschätzung der Quote von bis zu 5 Prozentpunkten war bereits zuvor berichtet worden” (RKI-2021-11-11, S. 19). Für speziell die Altersgruppe 80+ habe ich keine Zahlen zur Impfquote gefunden.

Für das folgende Rechenbeispiel gehen wir von 90% Impfquote für die Altersgruppe 60+ aus. Auch wenn die Zahl nicht exakt stimmt (aber grob vermutlich schon), bleiben die Schlussfolgerungen gleich.

11 Frage: Welcher Anteil der Geimpften fände sich unter den Toten, wenn die Impfung nichts helfen würde?

“Nichs helfen” meint, dass die Impfung nicht zu einer Reduktion des Todesrate (im Zusammenhang mit einer Corona-Erkrankung) führen würde.

12 Antwort: Würde die Corona-Impfung nicht helfen, wäre der Anteil der Geimpften an den Toten gleich zum Anteil der Geimpften an der Bevölkerung

Ein Beispiel: Wenn der Anteil der Linkshänder ca. 10% der Allgemeinbevölkerung beträgt und wenn Händigkeit unabhängig von der Coronasterblichkeit ist, so sollten auch 10% der Coronatoten Linkshänder sein.

Auf unsere Frage bezogen: Wenn der Anteil der Geimpften ca. 90% der relevanten Bevölkerungsgruppe ausmacht und wenn Impfen unabhängig von der Coronasterblichkeit ist, so sollten auch 90% der Coronatoten geimpft sein.

13 Frage: Kann ich dazu mal ein einfaches Rechenbeispiel sehen?

Betrachten wir ein fiktives Beispiel, in dem Impfen und Sterblichkeit unabhängig sind voneinander.

Dazu definieren wir, dass die Sterblichkeit (Letalität) 1% beträgt, das ist leicht zu rechnen. Uns geht es in diesem Beispiel nur um die Verdeutlichung, welche Zahlen bei Unabhängigkeit (von Impfen und Sterblichkeit) zu erwarten sind.

Statista zitiert eine Letalitätsrate von etwa 2% für Deutschland (11.11.2021).

Bei Quarks ist von einer höheren Sterblichkeit zu lesen für die Altersgruppe, die wir betrachten (60+ bzw. 80+).

Auf diese Schätzung werden wir im Verlauf noch zurückgreifen.

14 Antwort: Hier ist ein Rechenbeispiel, das Unabhängigkeit von Impfung und Wirksamkeit annimmt

Betrachten wir der Einfachheit halber folgendes, fiktives Beispiel: Eine Gruppe von 1000 Leuten; 90% dieser Menschen sind geimpft (10% nicht). Die Sterblichkeit beträgt 1% und zwar unabhängig von der Impfquote. Mit anderen Worten: Sterblichkeit und Impfquote sind unabhängig voneinander.

tibble::tribble(
       ~Status, ~Geimpft, ~Ungeimpft, ~Summe,
  "verstorben",       9L,         1L,    10L,
    "lebendig",     891L,         99L,   990L,
       "Summe",     900L,       100L,  1000L
  ) %>% 
  gt()
Status Geimpft Ungeimpft Summe
verstorben 9 1 10
lebendig 891 99 990
Summe 900 100 1000

Jetzt wissen wir also, welchen Anteil von Geimpften wir bei den Verstorbenen zu erwarten haben, wenn die Impfung keine Wirkung haben sollte.

Das Beispiel zeigt: Bei den Geimpften ist die Chance zu versterben (im Folgenden mit C abgekürzt) etwa 1% (9/891) und bei den Ungeimpften ebenfalls etwa 1%:

(letalität_geimpft <- 9/891)
## [1] 0.01010101
(letatität_ungeimpft <- 1/99)
## [1] 0.01010101

Das Chancenverhältnis (zwischen Geimpften und Ungeimpften) an Corona zu versterben, ist also 1:1=1.

Der Anteil der Geimpften unter den Toten beträgt 9/10=90%.

Achtung: Das ist nur ein Rechenbeispiel, um zu zeigen, welche Zahlen zu erwarten wären, wenn die Impfung wirkungslos sein sollte. Das Beispiel zeigt nicht, dass die Impfung wirkungslos ist.

15 Welchen Anteil an Geimpften unter den Toten gäbe es, wenn die Impfung schützen würde?

Gehen wir der Einfachheit halber davon aus, dass die Impfung die Chance des Versterbens halbiert (mal 0.5). Wir bleiben bei einer Impfquote von 90% und gehen jetzt, realistischer, von einer Letalität (Chance \(C\) zu sterben) von 1% bei den Geimpften (9 zu 89: \(9/891\approx 0.01=1\%\)) und von 2% bei den Ungeimpften (2 zu 98: \(2/98\approx 0.02=2\%\)). Die Sterblichkeit ist in diesem Beispiel also bei den Geimpften halb so groß wie bei den Ungeimpften (Faktor 0.5 bzw. 1/2).

tibble::tribble(
       ~Status, ~Geimpft, ~Ungeimpft, ~Summe,
  "verstorben",       9L,         2L,    11L,
    "lebendig",     891L,         98L,   989L,
       "Summe",     900L,       100L,  1000L
  ) %>% 
  gt()
Status Geimpft Ungeimpft Summe
verstorben 9 2 11
lebendig 891 98 989
Summe 900 100 1000

Das Chancenverhältnis in diesem Beispiel beträgt also 1%:2% = 1/2 = 0.5.

Der Anteil der Geimpften unter den Toten beträgt 9/11=82%.

9/11
## [1] 0.8181818

Wir haben die Chance zu versterben halbiert, aber der Anteil der Geimpften unter den Toten hat sich (nur) um ca. 8% verringert.

16 Frage: Was ist der Zusammenhang von Chancen und Anteil?

Unter einer Chance (C oder c) versteht man das Verhältnis von positiven zu negativen Fällen. In unserem Fall: Das Verhältnis von verstorben zu lebendig.

Beispiel: 1 verstorbene Person (von 100) vs. 99 lebendige Personen (von 100) ergibt eine Chance von 1/99 zu versterben.

Der Anteil der Überlebenden (oder Verstorbenen) kann als Schätzwert für die Wahrscheinlichkeit (Pr oder p, wie Probability) herhalten.

Beispiel: Stirbt 1 von 100 Personen, so ist die Wahrscheinlichkeit \(p\) zu versterben 1/100=1%, und die Wahrscheinlichkeit, nicht zu versterben (also zu überleben) 100%-1%=99%.

17 Man kann einfach umrechnen

So kann man von der Chance \(c\) auf die Wahrscheinlichkeit \(p\) umrechnen:

\[\begin{align} c &= \frac{p}{1-p} \\ c(1-p) &= p \\ c-cp &= p \\ c &= p + cp \\ c &= p(1+c) \\ p &= \frac{c}{c+1} \end{align}\]

18 Frage: Wie sind die Anteile der Geimpften unter den Toten in Abhängigkeit der Chance?

Wir haben gerade gesehen, dass sich der Anteil der Geimpften unter den Toten (nur relativ) wenig verändert, obwohl die Chance, zu versterben sich halbiert hat (für Geimpfte) bzw. sich verdoppelt hat für Ungeimpfte, relativ zur Chance zu versterben für Geimpfte.

19 Antwort: Die Anteile verändern sich relativ wenig, wenn man die Chancen mehrfach verringert

d <-
  tibble(C = c(10:1, 0.5, 1/3, 1/4),
         P = C / (C+1),
         negP = 1-P,
         negC = 1
  ) 

d %>% 
  gt() %>% 
  fmt_number(1:3, decimals = 2)
C P negP negC
10.00 0.91 0.09 1
9.00 0.90 0.10 1
8.00 0.89 0.11 1
7.00 0.88 0.12 1
6.00 0.86 0.14 1
5.00 0.83 0.17 1
4.00 0.80 0.20 1
3.00 0.75 0.25 1
2.00 0.67 0.33 1
1.00 0.50 0.50 1
0.50 0.33 0.67 1
0.33 0.25 0.75 1
0.25 0.20 0.80 1

Der Zusammenhang von \(c\) und \(p\) ist nicht linear:

ggplot(d) +
  aes(x = C, y = P) +
  geom_line(group  = 1) +
  geom_point(size = 2, alpha = .7) +
  scale_x_continuous(breaks = round(d$C, 1))

20 Frage: Um welchen Faktor ist C geringer als bei Unwirksamkeit?

Wäre die Impfung unwirksam, würde gelten \(C=9\), wie oben angenommen. Betrachtet man 10 an Corona verstorbene Personen, so fände man 9 geimpfte und 1 ungeimpfte Personen.

Tatsächlich gilt aber, auf Basis der oben zitierten Quellen, etwa \(C=1/2\) im Hinblick auf (Schutz vor) Tod: Man findet bei 3 an Corona verstorbene Personen 1 geimpfte und 2 ungeimpfte Personen (42% bei 60+ und 18,5% bei den 18-59-Jährigen, laut RKI-2021-11-11).

21 Antwort: Reduktion von 9 auf 1/2 ist ein Reduktionsfaktor von 18

Wir fragen uns also “9 mal wieviel ergibt 1/2?”.

Die Antwort lautet 18.

Die Impfung ist also - auf Basis der Annahmen für C - um den Reduktionsfaktor 18 wirksamer als keine Impfung. Geimpfte Personen verringern ihre Chance auf Sterblichkeit demnach um diesen Faktor.

Nimmt man an, dass \(C=1/1\), dass also unter zwei Corona-Toten einer geimpft war, so erhält man einen Reduktionsfaktor von 9.

Greift man die Zahl von 18,5% Impfdurchbrüchen an verstorbenen Covid-19-Fällen in der Altersgruppe 18-59 auf, so erhält man ein C von etwa 1:4=0.25. Das entspricht einem Reduktionsfaktor von 36.

Betrachten wir die Reduktionsfaktoren (R) für verschiedene Werte von C.

Dabei berechnen wir den Reduktionsfaktor R für eine Impfquote von 90%, entsprechend der angenommenen Impfquote in den höheren Lebensdekaden.
Wie gesagt: Würde die Impfung nicht schützen, so müsste der Anteil der Geimpften unter den Corona-Toten gleich dem Anteil der Geimpften der Allgemeinbevölkerung (90%) sein.

d <-
  tibble(C = c(10:1, 1/2),
         R = 9/C)

d %>% 
  gt() %>% 
  fmt_number(everything(), decimals = 2) 
C R
10.00 0.90
9.00 1.00
8.00 1.12
7.00 1.29
6.00 1.50
5.00 1.80
4.00 2.25
3.00 3.00
2.00 4.50
1.00 9.00
0.50 18.00
d %>% 
  ggplot(aes(x = C, y = R)) +
  geom_line() +
  geom_point(size = 2, alpha = .7) +
  labs(x = "Chance (C) zu sterben für Geimpfte",
       y = "Reduktionsfaktor (R)",
       title = "Wirksamkeit einer Corona-Impfung\nbei Impfquote von 90%",
       subtitle = "R gibt den Faktor an, um den sich die Sterblichkeit\ndurch die Impfung reduziert im Vergliech zu keiner Impfung",
       caption = "Datenquelle: RKI-Wochenbericht vom 11.11.2021") +
  scale_x_continuous(breaks = c(1, 5, 9)) +
  scale_y_continuous(breaks = c(1, 2, 3, 10)) +
  geom_vline(xintercept = c(3, 4.5,9), 
             linetype = "dotted",
             color = "grey40") +
  annotate(x = 9, y = 5,
           geom = "label",
           alpha = .7,
           label = "C=9:\nkeine Wirksamkeit") +
  annotate(x = 4.5, y = 8,
           alpha = .7,             
           geom = "label",
           label = "C=4.5:\nhalbe Sterblichkeit") +
  annotate(x = 3, y = 15,
           alpha = .7,             
           geom = "label",
           label = "C=3:\nein Drittel Sterblichkeit") 

22 Fazit: Die Impfung ist hoch wirksam laut diesen Daten

“Jeder dritte Coronatote ist geimpft!” kann suggerieren, dass die Impfung wenig nützt. Tatsächlich ist das Gegenteil der Fall: “Jeder dritte Coronatote ist geimpft” spricht für einen sehr hohen Schutz der Impfung - wenn die Impfquote sehr hoch ist. (Was nicht heißt, dass der Impfschutz nicht auch bei geringer Impfquote sehr gut ist.)

Dazu kommt, dass der Reduktionsfaktor bei jüngeren Menschen (< 60 Jahren) noch höher liegen könnte, vermutlich da deren Immunsystem besser auf die Impfung anspringt, sie also mehr von der Impfung profitieren. Allerdings ist die Impfquote geringer als bei den Älteren, was den Reduktionsfaktor begrenzen wiederum könnte.

Das Resümee lautet also, dass die Impfung - basierend auf den Daten oben - hoch wirksam ist.

Medien wie die Bildzeitung fällt in diesem Zusammenhang negativ auf. Solche Berichtserstattung suggeriert fälschlich, dass die Impfung geringe oder keine Wirkung habe. Das ist falsch, die vorliegenden Daten zeigen, dass Impfen eine starke Schutzwirkung hat, zumindest aktuell.

Weitere Analysen anderer Kennzahlen sind nötig, um zu einer “vorläufig abschließenden” Einschätzung zur Wirksamkeit von Corona zu kommen. Zwar liegen schon eine Reihe von Ergebnissen vor, aber es nicht Ziel der vorliegenden Analyse, eine Synthese dieser Forschungsstränge zu versuchen.

23 Grenzen der Analyse

Um aus einer Analyse bzw. einer Studie Schlussfolgerungen zu ziehen, müssen (zumindest) zwei Abschnitte dieser Analyse überprüft werden. Zum einen die methodische Qualität; die Frage also, ob “handwerklich” korrekt und präzise, lege artis, vorgegangen wurde. Zum zweiten aber auch, ob die Schlüsse, die aus den Ergebnissen gezogen wurden, nicht überinterpretiert wurden.

Zum ersten Punkt ist zu sagen, dass hier z.B. nicht berücksichtigt wurde, dass der Impfschutz im Zeitverlauf (nach der Impfung) abnimmt. Aktuell weißt das RKI dazu noch keine Daten aus. Vielleicht gibt es aber andernorts Daten dazu; das habe ich nicht geprüft.

Es handelt sich bei dieser Analyse um Beobachtungsdaten. Bei Beobachtungsdaten stellt sich immer die Frage, wie vergleichbar die beiden Gruppen (Geimpft vs. Ungeimpft) sind, etwa im Hinblick auf Altersverteilung und Vorerkrankungen. In dem Maße, wie die Gruppen vergleichbar sind, macht ein Vergleich Sinn. Das ist natürlich der Grund, warum Experimente zu Recht als “Königsweg der Forschung” bezeichnet werden, da bei gut gemachten Experimenten die Vergleichbarkeit der Gruppen maximiert ist. Entsprechend sollte man zur Beantwortung der Forschungsfrage möglichst auf entsprechende experimentelle Daten zurückgreifen.

Zum zweiten Punkt ist zu sagen, dass nicht aus einem Puzzlestück auf das ganze Puzzle geschlossen werden sollte. Will heißen, eine einzelne Studie berechtigt dann noch nicht dazu, eine breite Forschungsfrage (“Impfen hilft viel gegen Corona”) zu beantworten, wenn noch andere, methodisch divergierende Studien, vorliegen. Nur in der Zusammenschau aller (oder zumindest vieler) Puzzlestücke, also Studienergebnisse, sollte man zu einem allgemeinem Fazit für die Forschungsfrage kommen. Auf Basis einer einzelnen Studie sollte man sich begrenzen mit Aussagen wie “Laut dieser Studie ist Impfen wirksam gegen Corona” und hinzufügen “aber da die vorliegende Studie nur einen Teilaspekt untersucht, sind keine abschließenden Aussagen” über die Forschungsfrage möglich.

24 SessionInfo

sessioninfo::session_info()
## ─ Session info ───────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 4.1.0 (2021-05-18)
##  os       macOS Big Sur 10.16         
##  system   x86_64, darwin17.0          
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       Europe/Berlin               
##  date     2021-11-24                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────
##  package     * version date       lib source                           
##  assertthat    0.2.1   2019-03-21 [1] CRAN (R 4.1.0)                   
##  backports     1.2.1   2020-12-09 [1] CRAN (R 4.1.0)                   
##  blogdown      1.4     2021-07-23 [2] CRAN (R 4.1.0)                   
##  bookdown      0.24.2  2021-10-15 [1] Github (rstudio/bookdown@ba51c26)
##  broom         0.7.9   2021-07-27 [1] CRAN (R 4.1.0)                   
##  bslib         0.3.1   2021-10-06 [1] CRAN (R 4.1.0)                   
##  cellranger    1.1.0   2016-07-27 [1] CRAN (R 4.1.0)                   
##  checkmate     2.0.0   2020-02-06 [2] CRAN (R 4.1.0)                   
##  cli           3.0.1   2021-07-17 [1] CRAN (R 4.1.0)                   
##  colorspace    2.0-2   2021-06-24 [1] CRAN (R 4.1.0)                   
##  crayon        1.4.1   2021-02-08 [1] CRAN (R 4.1.0)                   
##  DBI           1.1.1   2021-01-15 [1] CRAN (R 4.1.0)                   
##  dbplyr        2.1.1   2021-04-06 [1] CRAN (R 4.1.0)                   
##  digest        0.6.28  2021-09-23 [1] CRAN (R 4.1.0)                   
##  dplyr       * 1.0.7   2021-06-18 [1] CRAN (R 4.1.0)                   
##  ellipsis      0.3.2   2021-04-29 [1] CRAN (R 4.1.0)                   
##  evaluate      0.14    2019-05-28 [1] CRAN (R 4.1.0)                   
##  extrafont     0.17    2014-12-08 [2] CRAN (R 4.1.0)                   
##  extrafontdb   1.0     2012-06-11 [2] CRAN (R 4.1.0)                   
##  fansi         0.5.0   2021-05-25 [1] CRAN (R 4.1.0)                   
##  farver        2.1.0   2021-02-28 [1] CRAN (R 4.1.0)                   
##  fastmap       1.1.0   2021-01-25 [2] CRAN (R 4.1.0)                   
##  forcats     * 0.5.1   2021-01-27 [1] CRAN (R 4.1.0)                   
##  fs            1.5.0   2020-07-31 [1] CRAN (R 4.1.0)                   
##  gdtools       0.2.3   2021-01-06 [2] CRAN (R 4.1.0)                   
##  generics      0.1.0   2020-10-31 [1] CRAN (R 4.1.0)                   
##  ggplot2     * 3.3.5   2021-06-25 [1] CRAN (R 4.1.0)                   
##  glue          1.4.2   2020-08-27 [1] CRAN (R 4.1.0)                   
##  gt          * 0.3.1   2021-08-07 [1] CRAN (R 4.1.0)                   
##  gtable        0.3.0   2019-03-25 [1] CRAN (R 4.1.0)                   
##  haven         2.4.1   2021-04-23 [1] CRAN (R 4.1.0)                   
##  highr         0.9     2021-04-16 [1] CRAN (R 4.1.0)                   
##  hms           1.1.1   2021-09-26 [1] CRAN (R 4.1.0)                   
##  hrbrthemes  * 0.8.0   2020-03-06 [2] CRAN (R 4.1.0)                   
##  htmltools     0.5.2   2021-08-25 [1] CRAN (R 4.1.0)                   
##  httr          1.4.2   2020-07-20 [1] CRAN (R 4.1.0)                   
##  jquerylib     0.1.4   2021-04-26 [1] CRAN (R 4.1.0)                   
##  jsonlite      1.7.2   2020-12-09 [1] CRAN (R 4.1.0)                   
##  knitr         1.36    2021-09-29 [1] CRAN (R 4.1.0)                   
##  labeling      0.4.2   2020-10-20 [1] CRAN (R 4.1.0)                   
##  lifecycle     1.0.1   2021-09-24 [1] CRAN (R 4.1.0)                   
##  lubridate     1.7.10  2021-02-26 [1] CRAN (R 4.1.0)                   
##  magrittr      2.0.1   2020-11-17 [1] CRAN (R 4.1.0)                   
##  modelr        0.1.8   2020-05-19 [1] CRAN (R 4.1.0)                   
##  munsell       0.5.0   2018-06-12 [1] CRAN (R 4.1.0)                   
##  pillar        1.6.4   2021-10-18 [1] CRAN (R 4.1.0)                   
##  pkgconfig     2.0.3   2019-09-22 [1] CRAN (R 4.1.0)                   
##  purrr       * 0.3.4   2020-04-17 [1] CRAN (R 4.1.0)                   
##  R6            2.5.1   2021-08-19 [1] CRAN (R 4.1.0)                   
##  Rcpp          1.0.7   2021-07-07 [1] CRAN (R 4.1.0)                   
##  readr       * 2.0.0   2021-07-20 [1] CRAN (R 4.1.0)                   
##  readxl        1.3.1   2019-03-13 [1] CRAN (R 4.1.0)                   
##  reprex        2.0.0   2021-04-02 [1] CRAN (R 4.1.0)                   
##  rlang         0.4.12  2021-10-18 [1] CRAN (R 4.1.0)                   
##  rmarkdown     2.11    2021-09-14 [1] CRAN (R 4.1.0)                   
##  rstudioapi    0.13    2020-11-12 [1] CRAN (R 4.1.0)                   
##  Rttf2pt1      1.3.9   2021-07-22 [2] CRAN (R 4.1.0)                   
##  rvest         1.0.0   2021-03-09 [1] CRAN (R 4.1.0)                   
##  sass          0.4.0   2021-05-12 [1] CRAN (R 4.1.0)                   
##  scales        1.1.1   2020-05-11 [1] CRAN (R 4.1.0)                   
##  sessioninfo   1.1.1   2018-11-05 [2] CRAN (R 4.1.0)                   
##  stringi       1.7.5   2021-10-04 [1] CRAN (R 4.1.0)                   
##  stringr     * 1.4.0   2019-02-10 [1] CRAN (R 4.1.0)                   
##  systemfonts   1.0.2   2021-05-11 [2] CRAN (R 4.1.0)                   
##  tibble      * 3.1.5   2021-09-30 [1] CRAN (R 4.1.0)                   
##  tidyr       * 1.1.4   2021-09-27 [1] CRAN (R 4.1.0)                   
##  tidyselect    1.1.1   2021-04-30 [1] CRAN (R 4.1.0)                   
##  tidyverse   * 1.3.1   2021-04-15 [1] CRAN (R 4.1.0)                   
##  tzdb          0.1.2   2021-07-20 [2] CRAN (R 4.1.0)                   
##  utf8          1.2.2   2021-07-24 [1] CRAN (R 4.1.0)                   
##  vctrs         0.3.8   2021-04-29 [1] CRAN (R 4.1.0)                   
##  withr         2.4.2   2021-04-18 [1] CRAN (R 4.1.0)                   
##  xfun          0.26    2021-09-14 [1] CRAN (R 4.1.0)                   
##  xml2          1.3.2   2020-04-23 [1] CRAN (R 4.1.0)                   
##  yaml          2.2.1   2020-02-01 [1] CRAN (R 4.1.0)                   
## 
## [1] /Users/sebastiansaueruser/Library/R/x86_64/4.1/library
## [2] /Library/Frameworks/R.framework/Versions/4.1/Resources/library