Overblog
Suivre ce blog Administration + Créer mon blog

Articles récents

Comparatif de l'évolution du nombre de décès COVID-19 en France et en Allemagne et calculs prédictifs sur 30 jours

3 Avril 2020 , Rédigé par Hugues MEUNIER

Le but de cet article n'est pas de polémiquer mais d'avertir les dirigeants et les décideurs qu'en situation épidémique, les décisions prises en amont peuvent avoir de grandes conséquences et que ces conséquences peuvent être terribles comme le montrent les chiffres publiés par certains gouvernements. L'OMS a averti très tôt qu'il fallait agir fort et vite mais peu de pays ont entendu ce message.

Le graphique plus bas compare l'évolution du nombre total des décès liés au covid-19 depuis le 18 mars. L'axe des abscisses correspond au nombre de jours depuis le 18 mars.   

Les données sont celles fournies par les deux gouvernements.

La modélisation est très simple et est basée sur une régression polynomiale. Pour les puristes, la modélisation a été faite en Python3 (voir article précédent avec le code source pour le calcul de la France). Bien entendu la courbe calculée tend vers l'infini mais tant que nous n'approchons pas du pic de l'épidémie, cette courbe des décès va continuer à croître fortement. Près du pic, la pente de la courbe devrait ralentir (la dérivée diminue) et devenir nulle. Nous n'en sommes pas là...

Vers la fin février et le début mars, la France et l'Allemagne n'ont pas réagi de la même façon vis-à-vis des données remontées par les scientifiques. L'Allemagne est dirigée par une scientifique (Angela Merkel est physicienne).

Maintenant les courbes :

Comparatif de l'évolution du nombre de décès COVID-19 en France et en Allemagne et calculs prédictifs sur 30 jours

Les points représentent les chiffres officiels pour les deux pays. Les courbes représentent les valeurs calculées par le modèle polynomial.

Si la tendance reste la même et si on ne s'approche pas trop du pic, les 10 000 décès seront atteints en France vers le 10 avril prochain. En Allemagne, il y aura donc à la même date autour de 2700 décès.

D'après les spécialistes, le pic pourrait être atteint en France un peu après le 15 avril car les effets du confinement vont bientôt porter leurs fruits. Les courbes sur le graphique devraient alors s’aplatir progressivement.

On voit clairement que les pentes de courbes françaises et allemandes sont bien différentes et que ce sont, en partie car il y a également des différences structurelles, les décisions de février des deux gouvernements qui ont généré les effets actuels. 

 

L'incidence des cas dans une épidémie a été modélisée depuis des années et suis une courbe bien connue. La pente (la dérivée de la courbe au plus fort de l'épidémie) dépend en gros de deux facteurs (le r0 et le nombre de contacts que l'on a par unité de temps). Le r0 correspond au nombre de personnes infectées par une personne infectée.

Pour aller plus loin, vous pouvez consulter les articles quelquefois un peu difficiles sur la modélisation des épidémies avec le modèle SIR :

https://interstices.info/modeliser-la-propagation-dune-epidemie/

http://www.math.ens.fr/enseignement/telecharger_fichier.php?fichier=1693

http://www.cmap.polytechnique.fr/~anr-manege/Aussois2013/Bakari.pdf

Lire la suite

MAJ avec les chiffres du 03/04/2020

3 Avril 2020 , Rédigé par Hugues MEUNIER

R2 = 0,9992 donc un très bon résultat du modèle.

 

Lire la suite

MAJ : avec les chiffres du 01/04/2020

2 Avril 2020 , Rédigé par Hugues MEUNIER

On est toujours dans une tendance 10 000 décès le 10/04/2020. 

 

Lire la suite

Évaluation de l'évolution du nombre de décès COVID-19 en python par une régression polynomiale

1 Avril 2020 , Rédigé par Hugues MEUNIER

Ce travail a été réalisé en python 3 avec Anaconda et Jupyter. Si ces termes ne vous disent rien alors c'est peut-être mieux d'aller voir quelques tutos sur python et Anaconda:

https://docs.anaconda.com/anaconda/user-guide/getting-started/

Les estimations ont été faites à partir des chiffres du gouvernement publiés ici :

https://geodes.santepubliquefrance.fr/#c=indicator&f=0&i=covid_hospit.dc&s=2020-03-31&t=a01

Voilà le graphique final:

 

Nous obtenons donc un modèle polynomiale de degré 3 représentant l'évolution du nombre de décès en France depuis le 18/03/2020 (modèle créé à partir de 14 points et extrapolé pour 30).

Cette courbe montre également qu'il y aura environ 10 000 morts dans une dizaine de jours (autour du 10/04) donc ce qui est conforme avec les données de l'Italie qui suivent la même tendance que celles de la France (nous sommes déphasés parfaitement de 9-10 jours avec l'Italie sur le nombre de décès dus au COVID-19).

Le programme Python pour calculer le modèle et créer le graphique est le suivant :

# 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]).reshape((-1, 1))
y = np.array([218, 327, 450, 525, 632, 860, 1100, 1388, 1696, 1995, 2314, 2606, 3024, 3523])
# 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]).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:', r_sq)
#Affiche la valeur calculée pour x=0
print('intercept:', model.intercept_)
# Afiiche les coefficients du modèle
print('coefficients:', model.coef_)

#calcule la prédiction pour les valeurs
y_pred = model.predict(x_)
print('predicted response:', 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
model2 = LinearRegression().fit(x_, y)

#Calcule les prédictions et les affiche
y_pred2 = model.predict(xx_)
print('predicted response:', y_pred2, sep='\n')
 print('real response:', y, sep='\n')

#graphique
f = plt.figure()
plt.scatter(x, y, color='red')

plt.plot(x_pred, y_pred2, color='blue')

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 01/04/2020')

plt.xlabel('Jour à partir,du 18/03')

plt.ylabel('Nb de décès')

plt.grid()

plt.show()

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

Bonne lecture

Lire la suite

Créer un swap sur linux

17 Août 2019 , Rédigé par Hugues MEUNIER

Quelquefois sous docker, on récupère une erreur out of memory (137) su le build ou le run de conteneurs. Dans le cloud, les VMs avec beaucoup de mémoire coûtent cher...

Il est possible de créer un espace disque swap qui permettra d'augmenter l'espace mémoire utilisatble par docker ou d'autres programmes:

# Vérifier au préalable que vous n'avez pas de swap

sudo swapon -s

# Allouer 4GB  à /swapfile

sudo fallocate -l 4G /swapfile

# Restreindre les droits

sudo chmod 600 /swapfile

ls -lh /swapfile

# Activer le swap

sudo mkswap /swapfile

sudo swapon /swapfile

# Vérifier que la mémoire a augmenté!

free -m

sudo swapon -s

 # Configurer fstab pour utiliser le swap après chaque démarrage

sudo nano /etc/fstab

 # ajouter cette ligne dans /etc/fstab, sauvegarder and sorter (Ctrl X)

/swapfile   none    swap    sw    0   0

 # Changer le seuil mémoire d'utilisation du swap, ainsi le swap est utilisé uniquement quand  10% de la RAM n'est pas utilisé

echo 10 | sudo tee /proc/sys/vm/swappiness

echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf

Lire la suite
Lire la suite

Sigfox et la biodiversité

30 Décembre 2018 , Rédigé par Hugues MEUNIER

Je suis fan des solutions IOT basées sur SIGFOX qui est une société française basée à Toulouse et qui est devenue la référence mondiale dans le monde des IOT (cocorico!!).

Ci-dessous un article de l'usinenouvelle sur une application des objets connectés SIGFOX :

https://www.usinenouvelle.com/editorial/quand-les-technologies-de-sigfox-volent-au-secours-de-la-biodiversite.N787194

 

Lire la suite

On l'attendait depuis longtemps : 25 $ en vente dès aujourd'hui !

16 Novembre 2018 , Rédigé par Hugues MEUNIER

Le pi 3A+ est ici :

https://www.raspberrypi.org/products/raspberry-pi-3-model-a-plus/

 

Lire la suite

Chiffrer et déchiffrer en 3DES

20 Septembre 2018 , Rédigé par Hugues MEUNIER

https://www.codeguru.com/csharp/csharp/cs_misc/security/triple-des-encryption-and-decryption-in-c.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%253A+Codegurucom+%2528CodeGuru.com%2529

Lire la suite

DC/OS disponible dans AZURE

15 Novembre 2017 , Rédigé par Hugues MEUNIER

Un super tutoriel par Stanislas ici :

https://stanislas.io/2016/04/29/deploiement-d-un-cluster-dcos-sur-azure/

 

Lire la suite
<< < 1 2 3 4 5 6 7 8 9 10 20 > >>