Fehler des Mittelwertes:
Varianz/$\sqrt{N} \approx 1.2 $
Monte Carlo 101: Simple sampling
In unserem Beispiel war das Alter die Zufallsvariable und die
anwesenden Studenten waren unabhängige Realisierungen. Wir haben
also (mehr oder weniger) zufällig aus der Verteilung aller
Studenten gezogen.
Simple sampling:
Zufälliges erzeugen von Samples aus der Verteilung möglicher Realisierungen.
Simple sampling ist super, wenn man an dieser Verteilung interessiert ist
Monte Carlo 101: Gesetz der großen Zahlen
Gesetz der großen Zahlen:
Das arithmitsche Mittel aus unabhängig und identisch verteilten (iid) Zufallsvariablen konvergiert zu deren Erwartungswert
Wir können also folgende Approximation verwenden $\mathbb{E}(X)\approx \overline{x}=\frac{1}{N}\left(x_1+x_2+...+x_N\right)$.
iid: independent and identically distributed Source: wikipedia
Monte Carlo 101: $\pi$ berechnen
Die Kreiszahl $\pi$ für einen Kreis mit Radius 1 entspricht genau der Kreisfläche:
$A = \pi r^2=\pi$
Für zufällige Samples ($x\in[0,1]$, $y\in[0,1]$) liegt ein Teil der Samples im Kreis, und ein Teil außerhalb:
$\frac{\text{Samples im TeilKreis}}{\text{Samples Gesamt}} = \frac{A_\text{TeilKreis}}{A_\text{Quadrat}}=\frac{\pi}{4}$
Was wir auch schreiben können als
$\pi = 4\mathbb{E}_{xy}\left(\Theta\left(1 - x^2 - y^2\right)\right)$
$\phantom{\pi} \approx \frac{4}{N}\sum_{i=1}^N \Theta\left(1 - x_i^2 - y_i^2\right)$
$x$, $y$ uniform verteilt in $[0,1]$
Source: wikipedia
Monte Carlo 101: Wenn Samples noch gewichtet werden müssen
Meistens sind wir an Verteilungen interessiert aus denen wir nicht direkt ziehen können.
Beispiel 1: Mittleres Alter von Physikstudenten
Wenn wir nicht wissen, wer alles Physik studiert, müssten wir
eigentlich zufällige Samples aus der Bevölkerung ziehen und diese erst
auf Physikstudenten überprüfen:
$$
P(\text{alter} | \text{student}) \propto P(\text{student} | \text{alter}) \cdot P(\text{alter})
$$
Praktisch bedeutet dies, dass wir Zustände erzeugen und nur diese behalten, die Physikstudenten sind.
Beispiel 2: Statistische Mechanik
In der Physik können wir in der Regel zufällige Zustände erzeugen,
müssen diese aber noch mit dem "Ensemblegewicht" gewichten
$$
P_\mathrm{can}(E) = P(E|NVT) = e^{-\beta E}\Omega(E)/Z
$$
Zustandsdichte des Ising Modells
Gross et al., Comput. Phys. Commun. (2018)
Monte Carlo 101: Importance sampling (Markov chain)
Ziel: Erzeuge samples aus einer gewünschten Verteilung $P(x) \propto W(x)\Omega(x)$
Statistische Mechanik: $P(E) = e^{-\beta E}\Omega(E)/Z$
Idee: Erzeuge neues sample aus dem Alten sodass $P(x)$ stationär bleibt (Markov chain)
Nachteil: Wir haben statistische Unabhängigkeit der samples verloren.
Metropolis et al., J. Chem. Phys. (1953)
Monte Carlo 101: Markov chain - Konvergenz
Bei importance sampling (Markov chain Monte Carlo) ist das erste Sample
in der Regel nicht eines mit hohem Gewicht ($P(x_0)\ll P_\mathrm{max}$).
Da die Markov chain korreliert ist, müssen wir also die ersten samples verwerfen.
In der Regel schaut man sich dafür das Konvergenzverhalten an bzw.
schätzt die Autokorrelationszeit der Markov chain ab.
Monte Carlo 101: Markov chain - Ergodizität
Bei importance sampling (Markov chain Monte Carlo) ist eine gute
Kombination von "updates" (Vorschlag $x\to x^\prime$) maßgeblich.
Beispiel: $x^\prime = x + (-1 + 2r)\Delta x \qquad r \in [0,1) $
Kleines $\Delta x \to $ hohe Annahmewahrscheinlichkeit.
Wir bleiben leichter innerhalb von dem Maximum der Verteilung.
Allerdings könnten wir bei kleinen $\Delta x$ ganze Bereiche des
Zustandsraumes verpassen. Der Algorithmus wäre dann nicht mehr
ergodisch.
(eine) Lösung:
$$
x^\prime_1 = x + (-1 + 2r)\Delta x_1 \qquad r \in [0,1)\\
x^\prime_2 = x + (-1 + 2r)\Delta x_2 \qquad r \in [0,1)
$$
Zierenberg et al., Europhys. Lett. (2015) Zierenberg et al., Nat. Commun. (2017)
Monte Carlo 101: Was haben wir gelernt?
Monte Carlo 101
Inferenz Krankheitsparameter
Simulation stochastischer Krankheitsausbreitung
Parameterinferenz für deterministische Modelle
Inference: Was wurde für COVID-19 gemacht?
Wang et al., Nat. Commun. (2020) Iwata et al., Int. J. Infect. Dis. (2020) Flaxman et al., Nature (2020) Dehning et al., Science (2020) Li et al., Science (2020)
Likelihood $P(\text{Daten}|\text{Parameter})$:
Spezifiziert wie gut Modell die Daten beschreibt
z.B. $P(\text{Daten}|\text{Parameter}) = e^{-\sum_t \left(I_\mathrm{model}(t)-I_\mathrm{data}(t)\right)^2/2/I_\mathrm{data}(t)}$
Posterior $P(\text{Parameter}|\text{Daten})$:
Beschreibt die Wahrscheinlichkeit der Modellparameter falls das Modell richtig ist.
Monte Carlo Wahrscheinlichkeitsverteilung :
$P(\theta|\text{Daten}) \propto P(\text{Daten}|\theta)P(\theta) = W(\theta)\Omega(\theta)$
Monte Carlo update:
Vorschlag $\lambda \to \lambda^\prime$, $\mu \to \mu^\prime$, $I_0 \to I_0^\prime$ wird akzeptiert mit
Wahrscheinlichkeit $\frac{P(\text{Daten}|\theta^\prime)P(\theta^\prime)}{P(\text{Daten}|\theta)P(\theta)}$
Idee:
Wir modellieren den Einfluss von nicht-pharmazeutischen Maßnahmen als change points in der spreading rate
Maßnahmen die wir berücksichtig hatten:
* March $\\;$9, 2020: Absage von Großveranstaltungen mit mehr als 1000 Teilnehmer.
* March 16, 2020: Schließung von Schulen, Kinderbetreuung und der Mehrheit der Geschäfte.
* March 23, 2020: Kontaktsperre und Schließung von allen nicht-relevanten Geschäften.
Dehning et al. Science (2020)
Inference: Wie gut wirken nicht-pharmazeutische Maßnahmen?
Leave-One-Out model comparison:
Der Vergleich zwischen verschiedenen Modellen (0,1,2,3 CPs) schloss 0/1 CPs aus
und favorisierte 3 CP Modell.
Reporting delay hat mindestens drei Beiträge:
* biologische Inkubationszeit (5-6 days$^1$)
* Verzögerung zwischen ersten Symptomen und solchen die einen Test motivieren (1-2 days)
* Verzögerung zwischen Test und Ergebnis (1-2 days)
March 9, 2020:
Absage von Großveranstaltungen mit mehr als 1000 Teilnehmer.
March 16, 2020:
Schließung von Schulen, Kinderbetreuung und der Mehrheit der Geschäfte.
March 23, 2020:
Kontaktsperre und Schließung von allen nicht-relevanten Geschäften.
$^1$Lauer et al. Ann Intern Med (2020)
Dehning et al. Science (2020)
Inference: Prognose
Dehning et al. Science (2020)
Inference: Was haben wir gelernt?
Unser code war durchweg frei verfügbar auf github!
Dehning et al. Science (2020)
Monte Carlo 101
Inferenz Krankheitsparameter
Simulation stochastischer Krankheitsausbreitung
Simulation stochastischer Krankheitsausbreitung
Simulation: SIR Modell als chemische Reaktionsgleichung
Susceptible
Infected
Recovered
$\lambda$
spreading rate
$\mu$
recovery rate
$$
S + I \overset{\lambda}{\to} I + I\\
I\overset{\mu}{\to} R
$$
Ansteckende Personen erholen sich zufällig mit rate $\mu$,
$\to$ Gesamtrate Erholung $\mu I \phantom{\frac{S}{N}}$
Ansteckende Personen infizieren zufällig getroffene Person mit rate $\lambda$,
$\to$ Gesamtrate Infektion $\lambda I \frac{S}{N}$
Kinetic Monte Carlo: Simulation der Entwicklung der
Mastergleichung für iid Poisson Prozesse ($x\to x^\prime$) mit entsprechend bekannten raten $p(x\to x^\prime)$.
Dies ist die Basis für chemische Reaktionsgleichungen
Beispiel: $S + I\to I + I$ mit rate $\lambda$, $I\to R$ mit rate $\mu$
$$\dot{P}(S,I,t) = \lambda\frac{(S+1)(I-1)}{N}P(S+1,I-1,t)\\
-\left(\lambda \frac{SI}{N}+\mu I\right)P(S,I,t)\\
+\mu (I+1)P(S,I+1,t)
$$
(Annahme: Massenwirkungsgesetz)
Simulation: Kinetic Monte Carlo (Gillespie)
Algorithmus:
1. Erzeuge Anfangsbedingung ($S=S_0$, $I=I_0$, $R=R_0$) an $t=t_0$
2. Berechne Raten $a=\left[\mu I, \lambda \frac{S}{N}I\right]$
3. Ziehe Zeit zum nächsten Ereignis $\Delta t = \frac{1}{a_1+a_2}\ln\left(\frac{1}{r_1}\right)\sim \text{Exp} \left(\frac{1}{a_1+a_2}\right)$ mit $r_1\in[0,1)$
4. Ziehe nächstes Ereignis $j$ sodass $\frac{1}{\sum_i a_i}\sum_{i=1}^j a_i < r_2\in[0,1)$
Hier: Erholung wenn $r_2 < a_1/(a_1+a_2)\phantom{>}$ andernfalls Infektion
5. $t=t+\Delta t$ und realisiere Ereignis (Erholung: $I-1$, $R+1$; Infektion $S-1$, $I+1$).
6. Falls $t < T\phantom{>}$ gehe zu 2.
Simulation: Gruppenarbeit
Standardannahme, dass Alle mit Allen in Kontakt (well mixed), Infektion/Heilung unabhängige Poissonprozesse mit Reaktionsgleichungen
$$
S + I \overset{\lambda}{\to} I + I\\
I\overset{\mu}{\to} R
$$
1. Skiziert die zu erwarteten Infektionszahlen als Funktion der Zeit für $\lambda/\mu = 0.5, 1.0, 2.0$ ("Reproduktionszahl").
2. Wie sieht für $\lambda/\mu=1.0$ eine typische Realisation der aktiven Infektionen $I$ aus?
3. Was erwartet ihr, wenn nicht mehr Alle mit Allen wechselwirken
sondern die Ausbreitung auf einem (komplexen) Netzwerk stattfindet.
Zum Beispiel einem Ring? Welche Rolle hat $\lambda/\mu$ jetzt? Was
bedeutet $\lambda=\mu$?
Wir können die Wahrscheinlichkeit ausrechnen, dass eine einzelne Infektion keine weiteren verursacht:
Verteilung infektiöse Periode $\Delta t$:
$P(\Delta t) = \mu e^{-\mu\Delta t}$
Wahrscheinlichkeit keine Infektion in $\Delta t$: $p(\text{no event}) = e^{-\lambda \Delta t}$
Annahmen: Raten sind linear bzgl. der Populationen (keine multi-molekularen Wechselwirkungen),
1. $\dot{P}(x,t) = \sum_j a_j(x-\nu_j)P(x-\nu_j,t)-a_j(x)P(x,t)$
2. $\sum_j \nu_j\langle a_j\left(x(t)\right)\rangle\approx \sum_j \nu_ja_j\left(\langle x(t)\rangle\right)$
Hier also eine Approximation weil $a_1(S,I) = \lambda SI/N$ und $S$, $I$ abhängig
Simulation: Beyond well mixed
In der Realität finden Krankheitsausbrüche in komplexen (sich zeitlich ändernden) Netzwerken statt.
Beachte, dass in diesem Fall die Raten pro node spezifiziert werden:
$a = [a_1, ...., a_N]$
Für den Ring kann der Prozess mit jedem neuen Knoten wieder mit hoher Wahrscheinlichkeit
aussterben:
$p(\text{no subsequent infection}) = \frac{\mu}{\mu+\lambda}$
Die Schwierigkeit ist, dass alle diese Verfeinerungen Informationen
über die Struktur und auch Dynamik dieser Netzwerke brauchen.
Manchmal bleibt einfacher doch besser ... vor allem wenn die Ergebnisse im Modellraum interpretiert werden.
https://github.com/benmaier/epipack#examples
Simulation: Kurzer Einblick in nicht-markovianische Dynamik
Nur Fall 2 (exponentielle inter-event Verteilung) kann mit Gillespie simuliert werden.
Mögliche Alternative ist eine "event queue".
Cevik et al., BMJ (2020).
Simulation: Was haben wir gelernt?
Zusammenfassung
Monte Carlo 101
Inferenz Krankheitsparameter
Simulation stochastischer Krankheitsausbreitung
Hands-on Aufgaben
Gruppen a 3 Personen; bereitet bitte eine kurze Präsentation (max. 2 Minuten/2Slides) vor.
1. Implementiert das stochastische SIR Modell mit dem Gillespie
Algorithmus und stellt die Ergebnisse grafisch dar.
(z.B. $\mu=1/7$, $\lambda=2/7$, $N=10^5$, $R_0=0$, $I_0=10$, 1 Messpunkt pro Tag)
2. Für welche Anfangsbedingungen wird es schwierig werden die
Modellparameter zu inferieren? Warum?
Falls genügend Zeit wählt eines von den folgenden:
3a. Inferiert die Modellparameter mit Bayesian inference (exponential
growth, einfache Parameter updates wie im Beispiel)
3b. Implementiert change points in der stochastischen Simulation. Wie
wirkt sich das auf den Ensemblemittelwert aus? Und wie auf die
einzelnen Trajektorien? Welche Rolle spielt der "absorbing state"?