Epidemie und Mathematik

Aus Wiki1

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
 
(Der Versionsvergleich bezieht 70 dazwischenliegende Versionen mit ein.)
Zeile 3: Zeile 3:
Mit der folgenden Grafik kann der Einfluss verschiedener Faktoren auf die Ausbreitung der Pandemie visualisiert werden.
Mit der folgenden Grafik kann der Einfluss verschiedener Faktoren auf die Ausbreitung der Pandemie visualisiert werden.
Mit den Schiebereglern können folgende Vorgaben definiert werden:
Mit den Schiebereglern können folgende Vorgaben definiert werden:
-
*Todesrate in %
 
*Gesamtpopulation (in Mio.)
*Gesamtpopulation (in Mio.)
-
*Dauer der Infektion in Tagen
+
*Dauer der Infektiosität
*Infektionsrate als Infektionen, die ein Infizierter je 100 Kontakten verursacht
*Infektionsrate als Infektionen, die ein Infizierter je 100 Kontakten verursacht
*Zahl der Anfangsinfizierten
*Zahl der Anfangsinfizierten
Zeile 11: Zeile 10:
*Betrachteter Zeitraum in Tagen
*Betrachteter Zeitraum in Tagen
-
Die Kurve zeigt den Verlauf der Infizierten und voraussichtlichen Toten über die Zeit, wobei sich die Infektionswahrschenlichkeit mit zunehmender Zahl Infizierter verringert. Die y-Achse ist logarithmisch skaliert.
+
Die Kurve zeigt den Verlauf der Infizierten über die Zeit, wobei sich die Infektionwahrschenlichkeit mit zunehmender Zahl Infizierter verringert.
Mit dem schwarzen Messpunkt kann die Kurve abgelesen werden.
Mit dem schwarzen Messpunkt kann die Kurve abgelesen werden.
Zeile 20: Zeile 19:
-
brd = JXG.JSXGraph.initBoard('jxgbox', {boundingbox:[-0.1, 0.5, 1.1, -10], grid: true, axis:true});
+
brd = JXG.JSXGraph.initBoard('jxgbox', {boundingbox:[-0.1, 0.5, 1.1, -1.1], grid: true, axis:true});
-
tod = brd.createElement('slider',[[0.10,-6],[0.5,-6],[0,5,10]],{name:'Todesrate %',snapWidth:0.1});
+
Pop = brd.createElement('slider',[[0.10,-0.3],[0.5,-0.3],[0.1,60,1]],{name:'Mio. Einwohner',snapWidth:0.1});
-
Pop  = brd.createElement('slider',[[0.10,-6.5],[0.5,-6.5],[1,60,200]],{name:'Mio. Einwohner',snapWidth:1});
+
id = brd.createElement('slider',[[0.10,-0.4],[0.5,-0.4],[0,10,30]],{name:'Infektionsdauer in Tagen',snapWidth:1});
-
id = brd.createElement('slider',[[0.10,-7],[0.5,-7],[0,14,30]],{name:'Infektionsdauer in Tagen',snapWidth:1});
+
ir = brd.createElement('slider',[[0.10,-0.5],[0.5,-0.5],[0,2,10]],{name:'Infektionrate pro 100 Kontakte',snapWidth:0.1});
-
ir = brd.createElement('slider',[[0.10,-7.5],[0.5,-7.5],[0,5,10]],{name:'Infektionrate pro 100 Kontakte',snapWidth:0.1});
+
pit0 = brd.createElement('slider',[[0.10,-0.6],[0.5,-0.6],[1,100,10000]],{name:'Anfangsinfizierte',snapWidth:10});
-
pit0 = brd.createElement('slider',[[0.10,-8],[0.5,-8],[10,10,1000]],{name:'Anfangsinfizierte',snapWidth:10});
+
KT = brd.createElement('slider',[[0.10,-0.7],[0.5,-0.7],[1,20,40]],{name:'unterschiedliche Kontakte je Infizierter pro Tag',snapWidth:1});
-
KT = brd.createElement('slider',[[0.10,-8.5],[0.5,-8.5],[0,10,20]],{name:'unterschiedliche Kontakte je Infizierter pro Tag',snapWidth:1});
+
T = brd.createElement('slider',[[0.10,-0.8],[0.5,-0.8],[0,100,400]],{name:'Tage',snapWidth:1});
-
T = brd.createElement('slider',[[0.10,-9],[0.5,-9],[0,60,300]],{name:'Tage',snapWidth:1});
+
-
function iwahr(x){
 
-
p=Pop.Value()*1000000;
 
-
it0=pit0.Value();
 
-
ipr=1+ir.Value()*KT.Value()/100;
 
-
return ir.Value()*Math.max(p-it0*(Math.pow(ipr,x)-Math.pow(ipr,x-id.Value())),0)/p;
 
-
}
 
-
function infektionen(t){
+
function infektionen(x){
 +
var t=x;
 +
var it=[];
 +
var Sumit=[];
p=Pop.Value()*1000000;
p=Pop.Value()*1000000;
-
it0=pit0.Value();
+
dt=id.Value();
-
ipr=1+iwahr(t-1)*KT.Value()/100;
+
it[0]=pit0.Value();
-
return Math.min(p,it0*(Math.pow(ipr,t)-Math.pow(ipr,t-id.Value())));
+
Sumit[0]=it[0];
 +
iw=ir.Value()*KT.Value()/100;
 +
for(i=1;i<t+1;i++){
 +
if (i>dt) {
 +
    it[i]=Math.max(0,iw*(1-Sumit[i-1]/p)*(Sumit[i-1]-Sumit[i-dt]));
 +
}
 +
else {
 +
    it[i]=Math.max(0,iw*(1-Sumit[i-1]/p)*(Sumit[i-1]));
 +
}
 +
Sumit[i]=Math.min(Sumit[i-1]+it[i],p);
}
}
 +
return Math.round(it[t]);
 +
}
 +
function maxinfekt(){
function maxinfekt(){
Maxi=0;
Maxi=0;
-
                 for(i = 0; i < 100; i++) {
+
                tmax=T.Value();
-
                 inf=infektionen(i/100*T.Value());
+
                 for(i = 0; i < tmax; i++) {
 +
                 inf=infektionen(i);
                 Maxi=Math.max(inf,Maxi);
                 Maxi=Math.max(inf,Maxi);
                 }
                 }
Zeile 52: Zeile 60:
}
}
-
function maxtot(){
+
function gesamtinfekt(x){
-
Maxt=0;
+
var t=x;
-
                for(i = 0; i < 100; i++) {
+
var it=[];
-
                tote=Math.pow(10,todesfaelle(i/100))*Pop.Value()*1000000;
+
var Sumit=[];
-
                Maxt=Math.max(tote,Maxt);
+
p=Pop.Value()*1000000;
-
                }
+
dt=id.Value();
-
                return Maxt;
+
it[0]=pit0.Value();
 +
Sumit[0]=it[0];
 +
iw=ir.Value()*KT.Value()/100;
 +
for(i=1;i<t+1;i++){
 +
if (i>dt) {
 +
    it[i]=Math.max(0,iw*(1-Sumit[i-1]/p)*(Sumit[i-1]-Sumit[i-dt]));
 +
}
 +
else {
 +
    it[i]=Math.max(0,iw*(1-Sumit[i-1]/p)*(Sumit[i-1]));
 +
}
 +
Sumit[i]=Math.min(Sumit[i-1]+it[i],p);
 +
}
 +
return Math.round(Sumit[t]);
}
}
-
function todesfaelle(t0){
+
function Rwert(){
-
dt=Math.max(T.Value()-id.Value());
+
R=id.Value()*KT.Value()*ir.Value()/100;
-
return JXG.Math.log10(tod.Value()/100*infektionen(t0*dt)/Pop.Value()/1000000);
+
return R;
}
}
-
var Kurve= brd.createElement('functiongraph', [function(x){return JXG.Math.log10(infektionen(x*T.Value())/Pop.Value()/1000000);},0,1]);
+
function Rwert_mom(x){
-
var Kurve_tod= brd.createElement('functiongraph', [function(x){return todesfaelle(x);},0,1]);
+
p_inf=gesamtinfekt(x);
 +
Rmom=id.Value()*KT.Value()*ir.Value()/100*(1-p_inf/(Pop.Value()*1000000));
 +
return Rmom;
 +
}
-
//Ablesepunkt
+
var Kurve= brd.createElement('functiongraph', [function(x){return infektionen(Math.round(x*T.Value()+0.5))/Pop.Value()/1000000;},0,1]);
-
var g=brd.create('glider',[0.5,1,Kurve_tod],{color:'black',name:'Messpunkt'});
+
-
var g2=brd.create('point',[function(x) {return g.X();},function(x){return JXG.Math.log10(infektionen(g.X()*T.Value())/Pop.Value()/1000000);}],{name:'', color:'green'});
+
 +
//Ablesepunkt
 +
var g=brd.create('glider',[0.5,1,Kurve],{color:'black',name:'Messpunkt'});
px1=[0,function(){return g.Y();}];
px1=[0,function(){return g.Y();}];
px2=[function(){return g.X();},function(){return g.Y();}];
px2=[function(){return g.X();},function(){return g.Y();}];
py1=[function(){return g.X();},0];
py1=[function(){return g.X();},0];
py2=[function(){return g.X();},function(){return g.Y();}];
py2=[function(){return g.X();},function(){return g.Y();}];
-
 
var l_x=brd.create('line',[px1,px2],{strokeColor:'blue',strokeWidth:1,dash:1});
var l_x=brd.create('line',[px1,px2],{strokeColor:'blue',strokeWidth:1,dash:1});
var l_Y=brd.create('line',[py1,py2],{strokeColor:'blue',strokeWidth:1,dash:1});
var l_Y=brd.create('line',[py1,py2],{strokeColor:'blue',strokeWidth:1,dash:1});
-
des0 = brd.createElement('text',[0.1,-3,function(){ return Math.round(infektionen(g.X()*T.Value())*10)/10+" Infizierte nach "+Math.round(g.X()*T.Value()*10)/10+" Tagen bei "+Math.round(Pop.Value()*1000000/10)*10+" Einwohner";}],{strokeColor:'black',fontSize:'14px'});  
+
des0 = brd.createElement('text',[0.1,-1.05,function(){ return infektionen(Math.round(g.X()*T.Value()+0.5))+" Neuinfizierte nach "+Math.round(g.X()*T.Value()*10)/10+" Tagen bei "+Math.round(Pop.Value()*1000000/10)*10+" Einwohner";}],{strokeColor:'black',fontSize:'14px'});
-
des1 = brd.createElement('text',[0.1,-3.5,function(){ return Math.round(Math.pow(10,todesfaelle(g.X()))*Pop.Value()*1000000)+" Tote";}],{strokeColor:'black',fontSize:'14px'});     
+
des2 = brd.createElement('text',[0.1,-0.95,function(){ return gesamtinfekt(Math.round(g.X()*T.Value()+0.5))+" Infizierte nach "+Math.round(g.X()*T.Value()*10)/10+" Tagen bei "+Math.round(Pop.Value()*1000000/10)*10+" Einwohner "+Math.round(gesamtinfekt(Math.round(g.X()*T.Value()+0.5))/(Pop.Value()*1000000)*100)+"%";}],{strokeColor:'black',fontSize:'14px'});     
-
des2 = brd.createElement('text',[0.1,-4,function(){ return "Maximal "+Math.round(maxinfekt()*10)/10+" Infizierte";}],{strokeColor:'black',fontSize:'14px'});  
+
des3 = brd.createElement('text',[0.1,-0.85,function(){ return Math.round(Rwert_mom(Math.round(g.X()*T.Value()+0.5))*10)/10+" Rwert "+Math.round(g.X()*T.Value()*10)/10+" Tagen bei "+Math.round(Pop.Value()*1000000/10)*10+" Einwohner";}],{strokeColor:'black',fontSize:'14px'});    
-
des3 = brd.createElement('text',[0.1,-4.5,function(){ return "Maximal "+Math.round(maxtot()*10)/10+" Tote";}],{strokeColor:'black',fontSize:'14px'});  
+
des1 = brd.createElement('text',[0.1,0.3,function(){ return Math.round(maxinfekt()/Pop.Value()/10*10)/10+" max. Inzidenz";}],{strokeColor:'black',fontSize:'14px'});   
 +
R1 = brd.createElement('text',[0.1,0.4,function(){ return Math.round(Rwert()*10)/10+" R Wert";}],{strokeColor:'black',fontSize:'14px'});
</jsxgraph>
</jsxgraph>
-
;Hinweis:
+
Eine kritische Bewertung der [[Frau Priesemann und die wunderbare Welt der Mathematik|Corona-Modellierer*innen]]
-
Die Berechnung beruht auf einfachen Plausibilitätsbetrachtungen eines epidemiologischen Laien.
+
-
Valide [[Modelle und Wirklichkeit|Modelle]] brauchen deutlich mehr Informationen und [[Wissen]]. Ein Beitrag zu den Grenzen der Statistik findet sich hier:
+
https://www.monitor-versorgungsforschung.de/abstract/zur-modellierung-der-corona-pandemie-eine-streitschrift/?cookie-state-change=1679087169469
-
http://en.rwi-essen.de/media/content/pages/presse/downloads/200325_unstatistik_maerz.pdf
+
-
siehe auch: https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology
 
[[Kategorie:Wissen]]
[[Kategorie:Wissen]]

Aktuelle Version vom 21:58, 17. Mär. 2023

2020 stellt ein neues Virus die Welt vor eine globale Herausforderung. Noch wissen wir nicht wie es ausgeht.

Mit der folgenden Grafik kann der Einfluss verschiedener Faktoren auf die Ausbreitung der Pandemie visualisiert werden. Mit den Schiebereglern können folgende Vorgaben definiert werden:

  • Gesamtpopulation (in Mio.)
  • Dauer der Infektiosität
  • Infektionsrate als Infektionen, die ein Infizierter je 100 Kontakten verursacht
  • Zahl der Anfangsinfizierten
  • durchschnittliche Kontakte pro Tag eines Infizierten mit unterschiedlichen Personen
  • Betrachteter Zeitraum in Tagen

Die Kurve zeigt den Verlauf der Infizierten über die Zeit, wobei sich die Infektionwahrschenlichkeit mit zunehmender Zahl Infizierter verringert. Mit dem schwarzen Messpunkt kann die Kurve abgelesen werden.

Reduzierung der Kontakte führt zur Verringerung der Infektionen - ob auch zur Reduzierung von schweren Krankheitsverläufen hängt dagegen von ganz anderen Randbedingungen ab.

Eine kritische Bewertung der Corona-Modellierer*innen

https://www.monitor-versorgungsforschung.de/abstract/zur-modellierung-der-corona-pandemie-eine-streitschrift/?cookie-state-change=1679087169469

Persönliche Werkzeuge