|
|
|
@ -2,43 +2,71 @@
|
|
|
|
|
|
|
|
|
|
\documentclass{article}
|
|
|
|
|
\usepackage{tikz}
|
|
|
|
|
\usetikzlibrary{arrows,automata,positioning}
|
|
|
|
|
\usepackage{amsmath,amssymb,amsfonts}
|
|
|
|
|
\usetikzlibrary{arrows.meta,positioning}
|
|
|
|
|
\usepackage{dingbat}
|
|
|
|
|
|
|
|
|
|
\usepackage{geometry}
|
|
|
|
|
\geometry{a4paper, landscape, margin=1cm}
|
|
|
|
|
|
|
|
|
|
\begin{document}
|
|
|
|
|
\begin{tikzpicture}[>=stealth',
|
|
|
|
|
% \section*{Operational loop of COVID-19}
|
|
|
|
|
% Based on:\\
|
|
|
|
|
% Dinno, Alexis. 2007. `Loop Analysis of Causal Feedback in Epidemiology: An Illustration Relating to Urban Neighborhoods and Resident Depressive Experiences`. \emph{Social Science \& Medicine} 65 (10): 2043–57. https://doi.org/10.1016/j.socscimed.2007.06.018.\\
|
|
|
|
|
% \\
|
|
|
|
|
% \\
|
|
|
|
|
\begin{tikzpicture}[>={Stealth[scale=2]}, % arrow head
|
|
|
|
|
shorten > = 3pt,
|
|
|
|
|
node distance = 4cm and 4cm,
|
|
|
|
|
el/.style = {inner sep=2pt, align=left, sloped},
|
|
|
|
|
every label/.append style = {font=\tiny},
|
|
|
|
|
every edge/.append style = {font=\scriptsize} % edge labels
|
|
|
|
|
node distance = 5cm and 4cm,
|
|
|
|
|
el/.style = {inner sep=5pt, font=\normalsize, align=center, sloped},
|
|
|
|
|
state/.style = {minimum size=2.5cm, circle, draw=black, fill=white}, %node styles
|
|
|
|
|
sub/.style = {rectangle}
|
|
|
|
|
% every label/.append style = {font=\tiny}, unused node labels
|
|
|
|
|
]
|
|
|
|
|
\node (data) [state, label=left:{label:10}] {Data};
|
|
|
|
|
\node (q1) [state,right=of data] {$s_1$};
|
|
|
|
|
\node (q2) [state,below=of q1,
|
|
|
|
|
label=right:{label:20}] {$s_2$};
|
|
|
|
|
\node (q3) [state,below=of data,
|
|
|
|
|
label=left:{label:5}] {$s_3$};
|
|
|
|
|
|
|
|
|
|
\node (simulations) [state] {Simulations};
|
|
|
|
|
\node (data) [state, right=of simulations] {Data};
|
|
|
|
|
\node (virus) [state, left=of simulations, yshift=-3.7cm] {SARS-CoV-2};
|
|
|
|
|
\node (curves) [state,below=of simulations] {Curves};
|
|
|
|
|
\node (policy) [state,below=of data, align=center] {Policy\\Measures};
|
|
|
|
|
\node (bodies) [state, right=of policy, yshift=3.7cm] {Bodies};
|
|
|
|
|
\node (futures) [sub, left=of simulations] {Thousands\\of\\futures};
|
|
|
|
|
|
|
|
|
|
\path[->]
|
|
|
|
|
(data) edge [in=150,out=90,loop] node[el,above] {Runs and re-runs} (data)
|
|
|
|
|
(data) edge [bend right=10] node[el,below] {$a=1$} (q1)
|
|
|
|
|
(q1) edge [bend right=10] node[el,above] {$a=0$} (data)
|
|
|
|
|
(q1) edge [bend right=10] node[el,below] {$a=2$} (q2)
|
|
|
|
|
(q2) edge [bend left=-10] node[el,below] {$a=1$} (q1)
|
|
|
|
|
(data) edge [bend right=10] node[el,below] {$a=3$} (q3)
|
|
|
|
|
(q3) edge [bend left=-10] node[el,below] {$a=0$} (data)
|
|
|
|
|
(data) edge [bend left= 10] node[el,above,pos=0.8] {$a=2$} (q2)
|
|
|
|
|
(q2) edge [bend left= 10] node[el,below,pos=0.8] {$a=0$} (data)
|
|
|
|
|
(q1) edge [bend left= 10] node[el,above,pos=0.75] {$a=3$} (q3)
|
|
|
|
|
(q2) edge [bend left= 10] node[el,below] {$a=3$} (q3)
|
|
|
|
|
(q1) edge [in=30, out=60,loop]
|
|
|
|
|
node[el,above,rotate=45] {$x=1$\\ $x:=x+1$} (q1)
|
|
|
|
|
(q3) edge [bend left=10] node[el,below,pos=0.75] {$a=1$} (q1)
|
|
|
|
|
(q3) edge [bend right=-10] node[el,above] {$a=2$} (q2)
|
|
|
|
|
(q2) edge [in=-30,out=-60, loop]
|
|
|
|
|
node[el,below,rotate=-45] {$a=2$ \\ $x:=x+1$} (q2)
|
|
|
|
|
(q3) edge [in=-150,out=-120, loop]
|
|
|
|
|
node[el,below,rotate=45] {$a=3$ \\ $x:=x+1$} (q3);
|
|
|
|
|
(simulations) edge [in=110,out=70,max distance=1.5cm,loop] node[el,above] {Runs and re-runs} (simulations)
|
|
|
|
|
(virus) edge [in=110,out=70,max distance=1.5cm,loop] node[el, above] {Mutates} (virus)
|
|
|
|
|
(virus) edge [bend left=5] node[el, above, pos=0.15] {Infects} (bodies)
|
|
|
|
|
(bodies) edge [bend left=5] node[el, below, pos=0.15] {Antibodies} (virus)
|
|
|
|
|
(bodies) edge [bend right=10] node [el, above] {Counted} (data)
|
|
|
|
|
(data) edge [bend right=10] node[el,above] {Basis for} (simulations)
|
|
|
|
|
(simulations) edge [bend right=10] node[el, below] {Produce more\\Look like} (data)
|
|
|
|
|
(simulations) edge [bend right=10] node[el, below] {Represented as} (curves)
|
|
|
|
|
(data) edge [bend left=10] node[el, below] {Represented as} (curves)
|
|
|
|
|
(policy) edge [bend left=10] node[el, below] {Assessed with} (simulations)
|
|
|
|
|
(simulations) edge [bend left=10] node[el, above] {Basis for} (policy)
|
|
|
|
|
(policy) edge [bend right=10] node[el, below] {Constrain} (bodies) -- (data)
|
|
|
|
|
(curves) edge [bend right=10] node[el, below] {Legitimise} (policy);
|
|
|
|
|
% [draw, ->] (policy) -- (curves) -- (bodies);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
% (data) edge [bend right=10] node[el,above] {$a=0$} (simulations)
|
|
|
|
|
% (data) edge [bend right=10] node[el,below] {$a=2$} (curves)
|
|
|
|
|
% (curves) edge [bend left=-10] node[el,below] {$a=1$} (data)
|
|
|
|
|
% (simulations) edge [bend right=10] node[el,below] {$a=3$} (policy)
|
|
|
|
|
% (policy) edge [bend left=-10] node[el,below] {$a=0$} (simulations)
|
|
|
|
|
% (simulations) edge [bend left= 10] node[el,above,pos=0.8] {$a=2$} (curves)
|
|
|
|
|
% (curves) edge [bend left= 10] node[el,below,pos=0.8] {$a=0$} (simulations)
|
|
|
|
|
% (data) edge [bend left= 10] node[el,above,pos=0.75] {$a=3$} (policy)
|
|
|
|
|
% (curves) edge [bend left= 10] node[el,below] {$a=3$} (policy)
|
|
|
|
|
% (data) edge [in=30, out=60,loop]
|
|
|
|
|
% node[el,above,rotate=45] {$x=1$\\ $x:=x+1$} (data)
|
|
|
|
|
% (policy) edge [bend left=10] node[el,below,pos=0.75] {$a=1$} (data)
|
|
|
|
|
% (policy) edge [bend right=-10] node[el,above] {$a=2$} (curves)
|
|
|
|
|
% (curves) edge [in=-30,out=-60, loop]
|
|
|
|
|
% node[el,below,rotate=-45] {$a=2$ \\ $x:=x+1$} (curves)
|
|
|
|
|
% (policy) edge [in=-150,out=-120, loop]
|
|
|
|
|
% node[el,below,rotate=45] {$a=3$ \\ $x:=x+1$} (policy);
|
|
|
|
|
|
|
|
|
|
\end{tikzpicture}
|
|
|
|
|
\end{document}
|
|
|
|
|
|
|
|
|
|