Коронавирус: мы все умрём?

? — .
, « ».


COVID-19? ? – ? , ? : , ?

, . .

, , . , Python.


COVID-19 — , SARS-CoV-2 (2019-nCoV). — , /, .



, .

, , .

: |


, COVID-19 , . . . . , COVID-19 . - , . , . , , : 0,5% 3,5%.

, COVID-19.

. , , , , , , COVID-19 , , , . , , .. , .

, , , .

, ? !


, : , . , . .



COVID-19 7 . , , , 29 50 !



? 2837 . ?
, , .

, , (, ). .

, , , , . . . , – , ( , ).



,


. . – , . , .

– . . . . . – .
( ). . , , . (, , ), ( ). , . , , , . , 1969 .

. ( ).


, .



. – , . , . , . , . , .



, . , , . , . , – .

, , – , . , , «» . , , – . .

, , . . , .

, , , , . – .

?


«»: , . , , , , , .













, COVID-19 :
– 19 ,
– 4 ,
– 15 .


, , 2,6 .





, , , , . , :

– 2,5 ,
– 1,1 ,
– 2,2 .













-


, . 23 .





– ?


, . .









. :

  • – 33 ,
  • – 12 .

, , .

. 25.03 1 , 01.04 – 8 , 33 . .

, . , , « ». , , , , , – .


, . .

?


.





: , . 1 800 .

, , .

, .



, , ( ). , . , , 0,029% . (, , , , , ) 0,007% — 4 .

, . , , , . , , , . . , , , . , , .
, 2 100 . – 900 .
, , , .

, 1-2 , 2 .

?


, 148 ( , ) 10 . ( , ) – 40 .

10 . , : , , ( ), , . -- .

, . . , , , .

, 40-60 . 30 , 10-30 .

?


, , , : , ?
58 . 2 , , 3,5%. , . , . , .

, , , . , 300 650 , .

: COVID-19 – . . , . . , – . , . , , . , . , 10 , !

, . , . 0,4-0,5% .

0,4-0,5% . , . . , , , . , , - , . 3,5%.

0,4-0,5% — 28-35 . , , . , , , . . .


. , , . , . , , , -, . , , , , -, , .

, . . , , , .


, , , , . , , .

Python Jupiter scipy, numpy, pandas, datetime. matplotlib.pyplot. Excel. 4 . .

, , :

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
import pandas as pd
from IPython.display import display
import scipy as sp
from datetime import datetime 
from scipy.optimize import minimize

DataFrame. Timestamp. , numpy, DataFrame , Timestamp , .
corona = pd.read_csv('D:/coronavirus.csv',sep=";")
corona.set_index('Date', inplace=True)
corona.index = pd.to_datetime(corona.index)

DataFrame Series, . – , . .

X = corona['X']
chi = corona['China']
fr = corona['France']
ir = corona['Iran']
it = corona['Italy']
sp = corona['Spain']
uk = corona['UK']
us = corona['US']
bg = corona['Belgium']
gm = corona['Germany']
nt = corona['Netherlands']
sw = corona['Switzerland']
tot = corona['Total']

numpy . , 1 , Series.

dchi = chi[1:].values - chi[:-1].values
dfr = fr[1:].values - fr[:-1].values
dit = it[1:].values - it[:-1].values
diran = ir[1:].values - ir[:-1].values
dsp = sp[1:].values - sp[:-1].values
duk = uk[1:].values - uk[:-1].values
dus = us[1:].values - us[:-1].values
dbg = bg[1:].values - bg[:-1].values
dgm = gm[1:].values - gm[:-1].values
dnt = nt[1:].values - nt[:-1].values
dsw = sw[1:].values - sw[:-1].values
dtot = tot[1:].values - tot[:-1].values

. , 20 , 180 17 . Timestamp .

X_long = np.arange(20, 200)
time_long = pd.date_range('2020-01-20', periods=180)

resLogistic, 3 , – .

def resLogistic(coefficents):
    A0 = coefficents[0]
    A1 = coefficents[1]
    A2 = coefficents[2]
    teor = A0 / (1 + np.exp(A1 * (X.ravel() - A2)))
    
    return np.sum((teor - chi) ** 2)

. 3 . ( Python ) , , – .
teor – , , chi – . .

minimize scipy.optimize , . , .

, minimize . ( , dtot, ). minimize , .
mimim.x – .

minim = minimize(resLogistic, [3200, -.16, 46])
minim.x

, , .

plt.figure(figsize=(15,10))
teorChi = minim.x[0] / (1 + np.exp(minim.x[1] * (X_long - minim.x[2])))
plt.plot(X,chi,'ro', label=' ')
plt.plot(X_long[:80], teorChi[:80],'b', label='  ')
plt.xticks(X_long[:80][::2], time_long.date[:80][::2], rotation='90');
plt.title('  , ', Size=20);
plt.ylabel('  ')
plt.legend()
plt.grid()



( ), ( ).

plt.figure(figsize = (15,10))
plt.grid()
plt.title('    , ', Size=20);
plt.plot(X[1:], dchi, 'r', Marker='o', label=' ')
plt.xticks(X_long[1:120][::3], time_long.date[1:120][::3], rotation='90');
plt.plot(X_long[1:120], teorChi[1:120] - teorChi[:119],'b', label='  ')
plt.ylabel('  ')
plt.legend()



.

. minimize. , , , .

, , , . , , , .

def resLogisticIr(coefficents):
    A0 = coefficents[0]
    A1 = coefficents[1]
    A2 = coefficents[2]
    teor = A0 / (1 + np.exp(A1 * (X.ravel() - A2)))
    return np.sum((teor - ir) ** 2)

minim = minimize(resLogisticIr, [3200, -.16, 80])
minim.x

plt.figure(figsize=(15,10))
teorIr = minim.x[0] / (1 + np.exp(minim.x[1] * (X_long - minim.x[2])))
plt.plot(X_long[:120], teorIr[:120],'b', label='  ')
plt.xticks(X_long[:120][::3], time_long.date[:120][::3], rotation='90');
plt.title('  , ', Size=20);
plt.plot(X,ir,'ro', label=' ')
plt.grid()
plt.legend()
plt.ylabel('  ')



plt.figure(figsize = (15,10))
plt.grid()
plt.title('    , ', Size=20);
plt.plot(X[1:], diran, 'r', Marker='o', label=' ')
plt.plot(X[1:], diran, 'ro')
plt.xticks(X_long[1:120][::3], time_long.date[1:120][::3], rotation='90');
plt.plot(X_long[1:120], teorIr[1:120] - teorIr[:119],'b', label='  ')
plt.ylabel('  ')
plt.legend()



def resLogisticIt(coefficents):
    A0 = coefficents[0]
    A1 = coefficents[1]
    A2 = coefficents[2]
    teor = A0 / (1 + np.exp(A1 * (X.ravel() - A2)))
    return np.sum((teor - it) ** 2)

minim = minimize(resLogisticIt, [3200, -.16, 46])
minim.x

plt.figure(figsize=(15,10))
teorIt = minim.x[0] / (1 + np.exp(minim.x[1] * (X_long - minim.x[2])))
plt.plot(X,it,'ro', label=' ')
plt.plot(X_long[:120], teorIt[:120],'b', label='  ')
plt.xticks(X_long[:120][::3], time_long.date[:120][::3], rotation='90');
plt.title('  , ', Size=20);
plt.ylabel('  ')
plt.grid()
plt.legend()



plt.figure(figsize = (15,10))
plt.grid()
plt.title('    , ', Size=20);
plt.plot(X[1:], dit, 'r', Marker='o', label=' ')
plt.xticks(X_long[1:120][::3], time_long.date[1:120][::3], rotation='90');
plt.plot(X_long[1:120], teorIt[1:120] - teorIt[:119],'b', label='  ')
plt.ylabel('  ')
plt.legend()



def resLogisticSp(coefficents):
    A0 = coefficents[0]
    A1 = coefficents[1]
    A2 = coefficents[2]
    teor = A0 / (1 + np.exp(A1 * (X.ravel() - A2)))
    return np.sum((teor - sp) ** 2)

minim = minimize(resLogisticSp, [3200, -.16, 80])
minim.x

plt.figure(figsize=(15,10))
teorSp = minim.x[0] / (1 + np.exp(minim.x[1] * (X_long - minim.x[2])))
plt.plot(X_long[:120], teorSp[:120],'b', label='  ')
plt.xticks(X_long[:120][::3], time_long.date[:120][::3], rotation='90');
plt.title('  , ', Size=20);
plt.plot(X,sp,'ro', label=' ')
plt.grid()
plt.legend()
plt.ylabel('  ')



plt.figure(figsize = (15,10))
plt.grid()
plt.plot(X[1:], dsp, 'r', Marker='o', label=' ')
plt.plot(X[1:], dsp, 'ro')
plt.xticks(X_long[1:120][::3], time_long.date[1:120][::3], rotation='90');
plt.title('    , ', Size=20);
plt.plot(X_long[1:120], teorSp[1:120] - teorSp[:119],'b', label='  ')
plt.ylabel('  ')
plt.legend()



def resLogisticUs(coefficents):
    A0 = coefficents[0]
    A1 = coefficents[1]
    A2 = coefficents[2]
    teor = A0 / (1 + np.exp(A1 * (X.ravel() - A2)))
    return np.sum((teor - us) ** 2)

minim = minimize(resLogisticUs, [3200, -.16, 100])
minim.x

plt.figure(figsize=(15,10))
teorUS = minim.x[0] / (1 + np.exp(minim.x[1] * (X_long - minim.x[2])))
plt.plot(X_long[:120], teorUS[:120],'b', label='  ')
plt.xticks(X_long[:120][::3], time_long.date[:120][::3], rotation='90');
plt.title('  , ', Size=20);
plt.plot(X,us,'ro', label=' ')
plt.grid()
plt.legend()
plt.ylabel('  ')



plt.figure(figsize = (15,10))
plt.grid()
plt.title('    , ', Size=20);
plt.plot(X[1:], dus, 'r', Marker='o', label=' ')
plt.plot(X[1:], dus, 'ro')
plt.xticks(X_long[1:120][::3], time_long.date[1:120][::3], rotation='90');
plt.plot(X_long[1:120], teorUS[1:120] - teorUS[:119],'b', label='  ')
plt.ylabel('  ')
plt.legend()


All Articles