Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog

Nouvelle simulation sur l'évolution du nombre de décès dus au COVID-19

15 Avril 2020 , Rédigé par Hugues MEUNIER

Dans la suite des articles précédents, une mise à jour de la modélisation en Python des chiffres des décès liés au covid-19 en France dans les hôpitaux.

La courbe s'infléchit vers un palier qui se dessine autour des 12 000 décès dans les hôpitaux. Ce palier serait atteint au jour 34 depuis le début de la simulation (34 jours) selon le calcul prédictif (par régression polynomiale). On sera autour du 23 avril 2020. Néanmoins, le déconfinement peut faire redémarrer la courbe des décès avec un déphasage de 10 à 20 jours s'il n'est pas assez bien préparé car le taux d'immunité au virus est semble-t-il assez faible en France (moins de 10%). Donc les promiscuités dans les transports en commun, dans les écoles, dans les magasins et le non-respect de la distanciation sociale peut favoriser un redémarrage des décès  en France tant que la population ne sera pas vaccinée...

Nouvelle simulation sur l'évolution du nombre de décès dus au COVID-19

Rappel du code Python

# Imports des bib
import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression

# données du gouvernement source https://geodes.santepubliquefrance.fr/#c=indicator&f=0&i=covid_hospit.dc&s=2020-03-31&t=a01
x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]).reshape((-1, 1))
y = np.array([218, 327, 450, 525, 632, 860, 1100, 1388, 1696, 1995, 2314, 2606, 3024, 3523, 4032, 4503, 5091, 5532, 5889, 6494, 7091, 7632, 8044, 8598, 8943, 9253, 9588, 10129])
# x_pred les valeurs à prédire une fois le modèle créé
x_pred = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38]).reshape((-1, 1))

#Définition de la fonction polynomiale de degré 3 et transformation des données
transformer = PolynomialFeatures(degree=3, include_bias=False)
transformer.fit(x)
x_ = transformer.transform(x)

#Calcul du modèle
model = LinearRegression().fit(x_, y)

#Calcul du coefficient de détermination (le R2) ou le score
r_sq = model.score(x_, y)
print('coefficient of determination pour la France:', r_sq)
#Affiche la valeur calculée pour x=0 pour la France
print('intercept France:', model.intercept_)
# Affiche les coefficients du modèle pour la France
print('coefficients France:', model.coef_)


#calcule la prédiction pour les valeurs de la France
y_pred = model.predict(x_)
print('predicted response France:', y_pred, sep='\n')

#Transforme les données x pour la prévision: 30 j à partir du 18/03
transformer.fit(x_pred)
xx_ = transformer.transform(x_pred)

#recalcule le modèle pour la France avec 30 j
model2 = LinearRegression().fit(x_, y)

#Calcule les prédictions pour la France
y_pred2 = model.predict(xx_)

#graphique
f = plt.figure()
plt.scatter(x, y, color='red', label='Morbidité réelle du covid-19 en France')
plt.plot(x_pred, y_pred2, color='blue', label='Morbidité calculée du covid-19 en France')
fig_size = plt.rcParams["figure.figsize"]
fig_size[0] = 24
fig_size[1] = 18
plt.rcParams["figure.figsize"] = fig_size
plt.title('Evolution des décès COVID-19 (Régression polynomiale de degré 3) du 03/04/2020 pour la France')
plt.xlabel('Jour à partir,du 18/03')
plt.ylabel('Nb de décès')
leg = plt.legend();
plt.grid()
plt.show()

#exporte le graphique dans un fichier pdf
f.savefig("morb-covid.png", format='png', bbox_inches='tight')

#covid-19 #coronavirus #covid19 #covid19FR

Partager cet article

Repost0
Pour être informé des derniers articles, inscrivez vous :

Commenter cet article