Dieser Exkurs ist freiwillig und nicht Prüfungsstoff. Der Inhalt ist jedoch sehr relevant und wird im Leben und in der Statistik helfen.

Um was geht es?

Seit dem Ausbruch der COVID-19 Pandemie haben wir viel über das Virus und dessen Verhalten gelernt. Zu Beginn der Pandemie gab es jedoch noch viele Unklarheiten. So stellte Bundesrat Alain Berset in einem Zeitungsinterview fest: “…dass wir im Moment kein exponentielles Wachstum haben”. Professorin Dr. med Nicola Low der Universität Bern und die ETH-Professorin Tanja Stadler korrigierten Bundesrat Berset und sagten, dass es doch ein exponentielles Wachstum sei. Zeitungsartikel hier. Wer hat nun Recht? Das sollten Sie nach diesem Exkurs selber beurteilen können.

Was will uns dieser Exkurs beibringen?

  • Wie sieht lineares, quadratisches und exponentielles Wachstum aus?
  • Wie ändert sich die Steigung bei linearem Wachstum?
  • Wie ändert sich die Steigung bei quadratischem Wachstum?
  • Wie ändert sich die Steigung bei einem exponentiellen Wachstum?
  • Wenn man einen genügend kurzen Zeitraum beobachtet und die Wachstumsrate eher klein ist, kann ein exponentielles Wachstum linear erscheinen.
  • Logistisches Wachstum: Wachstum ist meist nicht unendlich lange exponentiell, sondern flacht ab.

Lineares Wachstum

Lineares Wachstum hat eine konstante Änderungsrate. Der Funktionsgraph ist eine Gerade. Hier: Y = 3x

# Wir erstellen eine lineare Funktion ####
f_linear<-function(x){
  return(3*x)
}

# Zeichne die Funktion ####
curve(expr = f_linear, from = -3, to = 3)
axis(2, seq(-9,9,3))
arrows(x0=0, y0=0, x1=1, y1=0, length = 0.25, angle = 22, code = 2,
       col = par("fg"), lty = NULL, xpd = FALSE)

arrows(x0=1, y0=0, x1=1, y1=3, length = 0.25, angle = 22, code = 2,
       col = par("fg"), lty = NULL, xpd = FALSE)
Lineare Funktion. Formel y = 3*x. Für eine Einheit nach rechts (horizontaler Pfeil nach rechts) nimmt y um 3 Punkte zu (vertikaler Pfeil nach oben)

Lineare Funktion. Formel y = 3*x. Für eine Einheit nach rechts (horizontaler Pfeil nach rechts) nimmt y um 3 Punkte zu (vertikaler Pfeil nach oben)

Stellen wir uns eine Bevölkerung von n = 40 vor. Jeden Tag nimmt die Bevölkerung um 3 zu. y=40+3*X; x = Tage. Die Steigung (oder das Gefälle) bleibt immer gleich.

# Wir erstellen eine lineare Funktion ####
f_linear<-function(x){
  return(40+3*x)
}

# Zeichne die Funktion ####
curve(expr = f_linear, from = 0, to = 365, xlab="Tage", ylab="Bevölkerungsgrösse")
Lineares Wachstum. Startgrösse n = 40. Formel y = 40+3*x; x = Tage

Lineares Wachstum. Startgrösse n = 40. Formel y = 40+3*x; x = Tage

Quadratisches Wachstum / quadratische Abnahme

Wir sehen hier eine quadratische Funktion. y = X2 oder in R y = x^2.

# quadratische Funktion ####
f_quadratic<-function(x){
  return(x^2)
}

# Zeichne die quadratische Funktion ###
curve(expr=f_quadratic, from=-3, to = 3)
Quadratische Funktion. Formel: y = x^2^

Quadratische Funktion. Formel: y = x2

Ist nun ein quadratisches Wachstum ein exponentielles Wachstum? Nein. Bei einem quadratischen Wachstum nimmt die Wachstumsrate linear zu. Beim exponentiellen Wachstum ist die Zunahme der Wachstumsrate exponentiell.Von Tag zu Tag ist die Zunahme prozentual zum Ausgangswert (d.h. vorherigem Tag).

Exponentielles Wachstum

Hier sehen wir eine exponentielle Funktion. y=3x

# exponentielle Funktion
f_exponential<-function(x){
  return(3^x)
}

# Zeichne die exponentielle Funktion ####

curve(expr= f_exponential, from=-3, to = 3)
Exponentielle Funktion. Formel: y = 3^x^

Exponentielle Funktion. Formel: y = 3x

Wir stellen uns nun eine Bevölkerung vor, die mit n = 40 startet und sich alle 35 Tage verdoppelt.

# exponentielle Funktion mit Startpopulation
f_exponential<-function(x){
  return(40*2^(x/35))
}

# Zeichne die exponentielle Funktion ####

curve(expr= f_exponential, from=0, to = 10, ylab="Bevölkerungsgrösse",xlab="Tage") 
axis(2, seq(40,48,1))
axis(1, seq(0,10,1))
Exponentielles Wachstum mit Startpunkt 40. Verdopplung alle 35 Tage. Beobachtungszeitraum 10 Tage. Formel: y = 40*2^(x/35))^

Exponentielles Wachstum mit Startpunkt 40. Verdopplung alle 35 Tage. Beobachtungszeitraum 10 Tage. Formel: y = 40*2(x/35))

# exponentielle Funktion mit Startpopulation
f_exponential<-function(x){
  return(40*2^(x/35))
}

# Zeichne die exponentielle Funktion ####

curve(expr= f_exponential, from=301, to = 310, ylab="Bevölkerungsgrösse",xlab="Tage")
Exponentielles Wachstum mit Startpunkt 40 bei Tag 0. Verdopplung alle 35 Tage. Beobachtungszeitraum von Tag 301 bis 310. Formel: y = 40*2^(x/35))^

Exponentielles Wachstum mit Startpunkt 40 bei Tag 0. Verdopplung alle 35 Tage. Beobachtungszeitraum von Tag 301 bis 310. Formel: y = 40*2(x/35))

Dieses Wachstum entspricht in etwa der Zunahme der Covid-19-Fälle zum Zeitpunkt des Interviews von Bundesrat Berset (September 2020). Hatte nun Bundesrat Alain Berset doch recht? Die Zunahme sieht doch linear aus?

Hier die Formel zur Graphik: y=40*2(x/35) Wir erkennen, dass es nicht eine lineare Funktion ist, sondern eine exponentielle Funktion. Wir sehen dies daran, dass x im Exponent ist.

Schauen wir uns das einmal über einen längeren Zeitraum an.

curve(expr= f_exponential, from=0, to = 35, ylab="Bevölkerungsgrösse",xlab="Tage")
Exponentielles Wachstum mit Startpunkt 40. Verdopplung alle 35 Tage. Beobachtungszeitraum 35 Tage. Formel: y = 40*2^(x/35))^

Exponentielles Wachstum mit Startpunkt 40. Verdopplung alle 35 Tage. Beobachtungszeitraum 35 Tage. Formel: y = 40*2(x/35))

Und nun noch über einen längeren Zeitraum (365 Tage).

y=40*2(x/35)

curve(expr= f_exponential, from=0, to = 365, ylab="Bevölkerungsgrösse",xlab="Tage")
Exponentielles Wachstum mit Startpunkt 40. Verdopplung alle 35 Tage. Beobachtungszeitraum 365 Tage. Formel: y = 40*2^(x/35))^

Exponentielles Wachstum mit Startpunkt 40. Verdopplung alle 35 Tage. Beobachtungszeitraum 365 Tage. Formel: y = 40*2(x/35))

Wenn wir bei “relativ geringer” Wachstumsrate einen sehr kurzen Zeitraum beobachten, kann uns auch ein exponentielles Wachstum als linear erscheinen (auch wenn es nicht linear ist). Wenn wir uns einen Fussballplatz anschauen, sagen wir ja auch, dass dieser Platz flach ist. Obschon die Erde keine Scheibe ist. Auch das Meer erscheint uns flach. Artikel hier

Der Bundesratssprecher Peter Lauener sagte zur Aussage Bersets: «Er hat sich darauf bezogen, dass momentan keine so extreme Multiplikation statt findet wie noch im März. Die jetzige Steigerung ist mit damals nicht vergleichbar.» Zeitungsartikel hier.

Somit wäre das geklärt: Bundesrat Berset hat nicht behauptet, dass das Wachstum linear sei, sondern nur, dass die Wachstumsrate im September 2020 nicht so hoch ist wie sie es im März 2020 war.

Unterschiedliche Schreibweisen der Formeln des exponentiellen Wachstums

Noch eine Bemerkung zur Formel y=40 * 2(x/35): Die 2 vor dem Exponent gibt uns an, dass sich die Anzahl verdoppelt, der Exponent x/35 gibt uns an, dass die Verdopplung in 35 Tagen geschieht. Normalerweise sehen exponentielle Funktionen etwas anders aus, z.B y = Anzahl_zu_Beginn * (1+Wachstumsrate)Zeit). Siehe auch dieses Video. Ich habe dies jedoch etwas umgeschrieben, so dass ich auf die im Zeitungsartikel erwähnte Verdopplungszahl von “alle vier bis sechs Wochen” (d.h. ~35 Tage, Status vom September 2020) komme. Die Formel könnte auch mit e geschrieben werden: y = 40e0.02t. In R wird dies so geschrieben: 40exp((0.02*x))).

Wer mehr über e wissen möchte, kann sich dieses Video hier anschauen.

Schauen wir uns die Graphen beider Formeln an, um sicher zu sein, dass sie wirklich gleich sind:

# exponentielle Funktion mit Startpopulation
f_exponential<-function(x){
  return(40*2^(x/35))
}

# Zeichne die exponentielle Funktion ####

curve(expr= f_exponential, from=0, to = 70, ylab="Bevölkerungsgrösse",xlab="Tage")
Formel: y = 40*2^(x/35))^

Formel: y = 40*2(x/35))

Nun die andere Schreibweise der Formel:

# exponentielle Funktion mit Startpopulation
f_exponential<-function(x){
  return(40*exp((0.02*x)))
}

# Zeichne die exponentielle Funktion ####

curve(expr= f_exponential, from=0, to = 70, ylab="Bevölkerungsgrösse",xlab="Tage")
Formel: y = 40*e^(0.02*x) geschrieben in R als: 40*exp((0.02*x)))

Formel: y = 40e^(0.02x) geschrieben in R als: 40exp((0.02x)))

Exponentielles Wachstum auf einer logarithmierten Skala.

Hier ist das Wachstum wieder linear. Siehe auch das Video hier.

# https://blog.bioturing.com/2018/04/26/log-base-2-or-e-or-10/
f_exponential<-function(x){
  return(40*2^(x/35))
}
curve(expr= f_exponential, from=1, to = 365, ylab="Bevölkerungsgrösse",xlab="Tage", log="y")
Exponentielles Wachstum mit Startpunkt 40. Logarithmierte y-Achse. Verdopplung alle 35 Tage. Beobachtungszeitraum 10 Tage. Formel: y = 40*2^(x/35))^

Exponentielles Wachstum mit Startpunkt 40. Logarithmierte y-Achse. Verdopplung alle 35 Tage. Beobachtungszeitraum 10 Tage. Formel: y = 40*2(x/35))

Zusammenhang Wachstumsrate und Verdopplungszeit

In unserem Beispiel haben wir bei einem Ausgangswert von 40 Personen vom ersten zum zweiten Tag ein Wachstum von 0.8 Personen in der Bevölkerung. Dies entspricht einem prozentualen Wachstum von 0.8/40 =2%. Der Wachstumsfaktor ist somit 1 + 2/100 = 1 + 0.02= 1.02

Die Bevölkerung verdoppelt sich, wenn gilt 1.02Tage = 2

1.02Tage = 2

Natürlicher Logarithmus(1.02Tage) = Natürlicher Logarithmus(2)

Tage * Natürlicher Logarithmus(1.02) = Natürlicher Logarithmus(2)

Von nun an werden wir dem natürlichen Logarithmus (Logarithmus naturalis) einfach “ln” sagen. In R ist der natürliche Logarithmus einfach log.

Tage bei Verdopplung = ln(2) / ln(1.02)

ln(2) = 0.6931472

ln(1.02) = 0.0198026

Tage bei Verdopplung = 0.6931472 / 0.0198026 = 35.0027888

Wir können das annäherungsweise auch im Kopf ausrechnen, so lange das prozentuale Wachstum nicht allzu gross ist: 70 / prozentuales Wachstum pro Tag = 70 / 2 = 35 Warum können wir das im Kopf ausrechnen? Weil ln(2) ungefähr 0.7 sieben ist, und weil ln(1.02) ungefähr 0.02 ergibt.

Die drei nachfolgenden Abbildungen sollen illustrieren, dass die Wachstumsrate, als prozentuale Veränderung ausgedrückt, über die Zeit konstant bleibt.

f_exponential<-function(x){
  return(40*2^(x/35))
}
curve(expr= f_exponential, from=0, to = 1, ylab="Bevölkerungsgrösse",xlab="Tage")
Exponentielles Wachstum mit Startpunkt 40 bei Tag 0. Formel: y = 40*2^(x/35))^. Wir sehen, dass die Bevölkerung in einem Tag um 0.8 Personen wächst. Dies entspricht 2%

Exponentielles Wachstum mit Startpunkt 40 bei Tag 0. Formel: y = 40*2(x/35)). Wir sehen, dass die Bevölkerung in einem Tag um 0.8 Personen wächst. Dies entspricht 2%

f_exponential<-function(x){
  return(40*2^(x/35))
}
curve(expr= f_exponential, from=10, to = 11, ylab="Bevölkerungsgrösse",xlab="Tage", ylim=c(48, 50))
Exponentielles Wachstum mit Startpunkt 40 bei Tag 0. Beobachtungszeit Tag 10 bis Tag 11 Formel: y = 40*2^(x/35))^. Wir sehen, dass die Bevölkerung von 48.76055 auf 49.73584  Personen wächst. Dies entspricht 2%

Exponentielles Wachstum mit Startpunkt 40 bei Tag 0. Beobachtungszeit Tag 10 bis Tag 11 Formel: y = 40*2(x/35)). Wir sehen, dass die Bevölkerung von 48.76055 auf 49.73584 Personen wächst. Dies entspricht 2%

f_exponential<-function(x){
  return(40*2^(x/35))
}
curve(expr= f_exponential, from=100, to = 101, ylab="Bevölkerungsgrösse",xlab="Tage", ylim=c(289, 296))
Exponentielles Wachstum mit Startpunkt 40 bei Tag 0. Beobachtungszeit Tag 100 bis Tag 101 Formel: y = 40*2^(x/35))^. Wir sehen, dass die Bevölkerung von 289.8316 auf 295.6287  Personen wächst. Dies entspricht 2%

Exponentielles Wachstum mit Startpunkt 40 bei Tag 0. Beobachtungszeit Tag 100 bis Tag 101 Formel: y = 40*2(x/35)). Wir sehen, dass die Bevölkerung von 289.8316 auf 295.6287 Personen wächst. Dies entspricht 2%

f_exponential<-function(x){
  return(40*2^(x/35))
}
curve(expr= f_exponential, from=364, to = 365, ylab="Bevölkerungsgrösse",xlab="Tage", ylim=c(54047, 55129))
Exponentielles Wachstum mit Startpunkt 40 bei Tag 0. Beobachtungszeit Tag 364 bis Tag 365 Formel: y = 40*2^(x/35))^. Wir sehen, dass die Bevölkerung von 54047.04 auf 55128.07  Personen wächst. Dies entspricht 2%

Exponentielles Wachstum mit Startpunkt 40 bei Tag 0. Beobachtungszeit Tag 364 bis Tag 365 Formel: y = 40*2(x/35)). Wir sehen, dass die Bevölkerung von 54047.04 auf 55128.07 Personen wächst. Dies entspricht 2%

Vergleich der Wachstumsraten bei linearem, quadratischem und exponentiellem Wachstum

Bei einem linearen Wachstum ist die Zunahme eine konstante Zahl pro Zeiteinheit. Das sieht man in der Formel y = Ausgangswert + Wachstumsrate * Zeit

Bei einem quadratischen Wachstum ist die Zunahme proportional zur Zeit. y = ax^2+ bx + c (siehe auch hier)

Bei einem exponentiellen Wachstum ist die Zunahme proportional zum Ausgangswert der jeweiligen Zeit. Es ist eine prozentualle Zunahme zwischen zwei Zeitpunkten. (Bevölkerungzahl zu Zeit(x+1)-Bevölkerungszahl zu Zeit(x)) / Bevölkerungszahl zu Zeit(x) *100

Stellen wir uns eine Bevölkerung mit n = 40 beim Tag 0 vor. Nachfolgend drei Szenarien: ein lineares Wachstum mit einer Zunahme von drei Personen pro Tag, einer quadratischen Zunahme und einer exponentiellen Zunahme, bei der das Wachstum pro Tag 2% beträgt.

In der folgenden Tabelle sehen wir die Werte bei den jeweiligen Zeitpunkten (x, x = Tage) für lineares Wachstum (linear), quadratisches Wachstum (quadratic) und exponentielles Wachstum (exponential).

Jeweils daneben sind die die Kolonnen mit den jeweiligen Differenzen zum vorherigen Tag (diff_lin, diff_quad und diff_exp), sowie die prozentuale Veränderung zum vorherigen Tag (gr_perc_lin, gr_perc_quad, gr_perc_exp). Erkennen Sie ein Muster? Darunter die Werte zu den Tagen graphisch dargestellt.

par(mfrow=c(2,2))
x=0:10
linear = 40+3*x
# linear
plot(x, linear)
quadratic= 1*x^2+1*x+40
# quadratic
plot(x, quadratic)

exponential = 40*2^(x/35)
# exponential
plot(x, exponential)
data<-data.frame(x, linear, quadratic, exponential)
library(tidyverse)
library(knitr)
data<-data %>% 
  mutate(diff_lin = linear-lag(linear, n=1L), 
         diff_quad=quadratic-lag(quadratic, n=1L), 
         diff_exp=exponential-lag(exponential, n=1L), 
         gr_perc_lin=diff_lin/lag(linear, n=1L)*100,
         gr_perc_quad=diff_quad/lag(quadratic, n=1L)*100,
         gr_perc_exp=diff_exp/lag(exponential, n=1L)*100,
         ) %>% 
    select(x, linear, diff_lin,gr_perc_lin, quadratic, diff_quad,gr_perc_quad,  exponential, diff_exp, gr_perc_exp)

options(digits=1)

table_diff<-(head(data, n=10))
knitr::kable(table_diff,
             caption = "Werte zu jedem Zeitpunkt (Tage) bei linearem, quadratischem und exponentiellem Wachstum). Mit absoluter Zunahme von Tag zu Tag (Variablen mit diff_) und prozentualer Zunahme von Tag zu Tag (Variablen mit gr_perc). ")
Werte zu jedem Zeitpunkt (Tage) bei linearem, quadratischem und exponentiellem Wachstum). Mit absoluter Zunahme von Tag zu Tag (Variablen mit diff_) und prozentualer Zunahme von Tag zu Tag (Variablen mit gr_perc).
x linear diff_lin gr_perc_lin quadratic diff_quad gr_perc_quad exponential diff_exp gr_perc_exp
0 40 NA NA 40 NA NA 40 NA NA
1 43 3 8 42 2 5 41 0.8 2
2 46 3 7 46 4 10 42 0.8 2
3 49 3 6 52 6 13 42 0.8 2
4 52 3 6 60 8 15 43 0.8 2
5 55 3 6 70 10 17 44 0.9 2
6 58 3 6 82 12 17 45 0.9 2
7 61 3 5 96 14 17 46 0.9 2
8 64 3 5 112 16 17 47 0.9 2
9 67 3 5 130 18 16 48 0.9 2
Darstellung der Zunahme über die Zeit. x = Tage

Darstellung der Zunahme über die Zeit. x = Tage

Logistisches Wachstum

In der Realität ist das exponentielle Wachstum meist nicht unendlich möglich. Meistens flacht die Wachstumskurve irgendeinmal ab. Dies wird logistisches Wachstum genannt.

Mehr dazu finden Sie auch in diesem Link hier.

limit_of_size_of_population = 0.6*8000000
f_logistic<-function(x){
  return(limit_of_size_of_population/(1+exp(-(-11.69525+0.02*x))))
}
curve(expr= f_logistic, from=0, to = 35, ylab="Anzahl Personen mit Coronavirus-Infektion",xlab="Tage", ylim=c(0,100))
Logistisches Wachstum.Kurze Beobachtungszeit von 0 bis 35 Tage. Hier ist das Wachstum ähnlich wie beim exponentiellen Wachstum. Formel:limit_of_size_of_population/(1+exp(-(-11.69525+0.02*x)))

Logistisches Wachstum.Kurze Beobachtungszeit von 0 bis 35 Tage. Hier ist das Wachstum ähnlich wie beim exponentiellen Wachstum. Formel:limit_of_size_of_population/(1+exp(-(-11.69525+0.02*x)))

limit_of_size_of_population = 0.6*8000000
f_logistic<-function(x){
  return(limit_of_size_of_population/(1+exp(-(-11.69525+0.02*x))))
}
curve(expr= f_logistic, from=0, to = 3*365, ylab="Anzahl Personen mit Coronavirus-Infektion",xlab="Tage", ylim=c(0,8000000))
Logistisches Wachstum. Das Wachstum flacht jedoch später ab. In diesem Beispiel ist die Sättigungsgrenze bei 60% der Bevölkerung. Formel: limit_of_size_of_population/(1+exp(-(-11.69525+0.02*x)))

Logistisches Wachstum. Das Wachstum flacht jedoch später ab. In diesem Beispiel ist die Sättigungsgrenze bei 60% der Bevölkerung. Formel: limit_of_size_of_population/(1+exp(-(-11.69525+0.02*x)))

Wir haben nun vier unterschiedliche Wachstumsarten gesehen: 1) lineares Wachstum, 2) quadratisches Wachstum, 3) exponentielles Wachstum und 4) logistisches Wachstum. Wir haben auch gelernt, dass ein exponentielles Wachstum nie linear ist, aber bei kurzer Beobachtungszeit und bei eher geringer Wachstumsrate uns als linear erscheinen kann (wie uns die Erde auch als flach erscheint).

Möchten Sie noch mehr darüber wissen, dann schauen Sie sich doch folgendes Video an.