Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sur mortalité: bug aux alentours du 29 février? #18

Open
MCMic opened this issue Mar 29, 2021 · 3 comments
Open

Sur mortalité: bug aux alentours du 29 février? #18

MCMic opened this issue Mar 29, 2021 · 3 comments

Comments

@MCMic
Copy link

MCMic commented Mar 29, 2021

Dans la courbe de surmortalité, on voit un truc étrange sur les courbes de 2019 et 2021.
Je peux me tromper mais il semble que c’est aux alentours du 29 février et que le problème n’est pas présent sur la courbe de 2020 qui est bissextile.

https://htmlpreview.github.io/?https://raw.githubusercontent.com/rozierguillaume/covid-19/master/images/html_exports/france/mortalite.html

@paul2t
Copy link

paul2t commented Apr 3, 2021

Je pense aussi que c'est un problème d'année bissextile.
Quand on multiplie les chiffres des dates qui posent problème par 7/6, on obtient des chiffres cohérents.
Dans les données : deces_quotidiens_departement_csv.csv
On peut voir que le 29 février 2019, a le même total de décès que le 28 février 2019. Ce qui est logique puisque ce jour n'existe pas.
Mais dans le code, ceci n'est pas pris en compte : covid19_france_insee.py
df_mortalite_france["Total_deces_2019"].diff().rolling(window=window, center=True).mean()
La diff pour le 29 février est donc de 0. Mais ce 0 est pris en compte dans la moyenne. Ce qui fait un jour de plus mais avec aucun mort. Ça explique donc le ratio de 7/6 observé précédemment.

@lgostiau
Copy link

J'ai à dispo une modif de covid19_france_insee.ipynb qui évite ce souci d'affichage, et qui fait aussi proprement le merge des deux dataframes (cellule 3 initialement commentée)
mortalite

@Rade-Mathis
Copy link

Since the bug is still in production, and that last comment is 1.5 month old, I propose here a quick and dirty fixup.

Pros

  • Make the curves look decent, because values are well scaled

Cons

  • Dirty code
  • Data from 26/02 to 03/03 won't be 7-days means, but 6-days means

Code

In covid19_france_insee.py (or covid19_france_insee.ipynb, I don't know how this thing works)

Replace:

df_mortalite_france.loc[:,"Total_deces_2019_diff"] = df_mortalite_france["Total_deces_2019"].diff().rolling(window=window, center=True).mean()
df_mortalite_france.loc[:,"Total_deces_2020_diff"] = df_mortalite_france["Total_deces_2020"].diff().rolling(window=window, center=True).mean()
df_mortalite_france.loc[:,"Total_deces_2021_diff"] = df_mortalite_france["Total_deces_2021"].diff().rolling(window=window, center=True).mean()

With:

for i in range (2019, 2022) :
    annee = "Total_deces_{}".format(i)
    diff = df_mortalite_france[annee].diff()
    fix_29_02_gap = diff.replace (0.0, diff[58])  # If 29th feb == 0, then 29 feb = 28 feb  (That's dirty)
    df_mortalite_france.loc[:, annee + "_diff"] = fix_29_02_gap.diff().rolling(window=window, center=True).mean()

PS

  • Sorry for making this comment rather than a proper pull-request. I don't really have the setup to code decently right now.
  • I haven't tested the full pipeline.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants