From 6d8df056bece7e9d11f30a9999f87b205fd4385f Mon Sep 17 00:00:00 2001 From: artdgn Date: Fri, 12 Jun 2020 20:19:53 +1000 Subject: [PATCH] add world-news dashboard for significant changes in last 10 days - large positive and negative changes in tranmission rates (waves), ICU need, cases and deaths - world-stacked plots for active and recovered --- _notebooks/2020-06-12-covid19-news.ipynb | 3072 ++++++++++++++++++++++ _notebooks/2020-06-12-covid19-news.py | 447 ++++ images/news.png | Bin 0 -> 136779 bytes 3 files changed, 3519 insertions(+) create mode 100644 _notebooks/2020-06-12-covid19-news.ipynb create mode 100755 _notebooks/2020-06-12-covid19-news.py create mode 100644 images/news.png diff --git a/_notebooks/2020-06-12-covid19-news.ipynb b/_notebooks/2020-06-12-covid19-news.ipynb new file mode 100644 index 0000000..3d084ce --- /dev/null +++ b/_notebooks/2020-06-12-covid19-news.ipynb @@ -0,0 +1,3072 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# World News from data (good & bad)\n", + "> Signigicant changes vs. 10 days ago in transmission rates, ICU demand, and cases & deaths data.\n", + "\n", + "- categories: [world, overview, interactive, news]\n", + "- permalink: /covid-news/\n", + "- author: artdgn\n", + "- toc: true\n", + "- image: images/news.png\n", + "- hide: false" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> Warning: This dashboard was not built by an epidemiologist.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "#hide\n", + "import pandas as pd\n", + "import overview_helpers\n", + "\n", + "stylers = overview_helpers.PandasStyling" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#hide\n", + "day_diff = 10\n", + "\n", + "cur_data = overview_helpers.CovidData()\n", + "df_cur_all, debug_dfs = cur_data.table_with_projections(debug_dfs=True)\n", + "df_cur = cur_data.filter_df(df_cur_all)\n", + "\n", + "past_data = overview_helpers.CovidData(-day_diff)\n", + "df_past = past_data.filter_df(past_data.table_with_projections())" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "lines_to_next_cell": 2 + }, + "outputs": [ + { + "data": { + "text/markdown": [ + "***Based on data up to: 2020-06-11. Compared to (10 days before): 2020-06-01***" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "from IPython.display import Markdown\n", + "past_date = pd.to_datetime(past_data.dt_cols[-1]).date().isoformat()\n", + "Markdown(f\"***Based on data up to: {cur_data.cur_date}. \\\n", + " Compared to ({day_diff} days before): {past_date}***\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "#hide\n", + "df_data = df_cur.copy()\n", + "df_data['infection_rate_past'] = df_past['infection_rate']\n", + "df_data['infection_rate_past_err'] = df_past['growth_rate_std']\n", + "df_data['needICU.per100k_past'] = df_past['needICU.per100k']" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "#hide\n", + "def index_format(df):\n", + " df = cur_data.rename_long_names(df)\n", + " df.index = df.apply(\n", + " lambda s: f\"\"\"{s['emoji_flag']} {s.name}\"\"\", axis=1)\n", + " return df\n", + "\n", + "def style_news_infections(df):\n", + " cols = {\n", + " 'Cases.new.est': 'Estimated
recent cases
in last 5 days',\n", + " 'infection_rate': 'Current:
Estimated
daily
transmission
rate',\n", + " 'infection_rate_past': f'{day_diff} days ago:
Estimated
daily
transmission
rate',\n", + " 'needICU.per100k': 'Estimated
current
ICU need
per 100k
population',\n", + " 'affected_ratio.est': 'Estimated
total
affected
population
percentage',\n", + " }\n", + " \n", + " rate_norm = max(df['infection_rate'].max(), df['infection_rate_past'].max())\n", + " return (index_format(df)[cols.keys()].rename(columns=cols).style\n", + " .bar(subset=[cols['needICU.per100k']], color='#b21e3e', vmin=0, vmax=10)\n", + " .bar(subset=cols['Cases.new.est'], color='#b57b17')\n", + " .bar(subset=cols['affected_ratio.est'], color='#5dad64', vmin=0, vmax=1.0)\n", + " .apply(stylers.add_bar, color='#f49d5a',\n", + " s_v=df['infection_rate']/rate_norm, subset=cols['infection_rate'])\n", + " .apply(stylers.add_bar, color='#d8b193',\n", + " s_v=df['infection_rate_past']/rate_norm, subset=cols['infection_rate_past'])\n", + " .format('{:.2f}', subset=[cols['needICU.per100k']])\n", + " .format('{:,.0f}', subset=cols['Cases.new.est'])\n", + " .format('{:.1%}', subset=[cols['affected_ratio.est'], \n", + " cols['infection_rate'],\n", + " cols['infection_rate_past']], na_rep=\"-\"))\n", + " \n", + "def style_news_icu(df):\n", + " cols = {\n", + " 'Cases.new.est': 'Estimated
recentcases
in last 5 days',\n", + " 'needICU.per100k': 'Current:
Estimated
ICU need
per 100k
population',\n", + " 'needICU.per100k_past': f'{day_diff} days ago:
Estimated
ICU need
per 100k
population',\n", + " 'infection_rate': 'Estimated
daily
transmission
rate',\n", + " 'affected_ratio.est': 'Estimated
total
affected
population
percentage',\n", + " }\n", + " \n", + " return (index_format(df)[cols.keys()].rename(columns=cols).style\n", + " .bar(subset=cols['needICU.per100k'], color='#b21e3e', vmin=0, vmax=10)\n", + " .bar(subset=cols['needICU.per100k_past'], color='#c67f8e', vmin=0, vmax=10)\n", + " .bar(subset=cols['Cases.new.est'], color='#b57b17')\n", + " .bar(subset=cols['affected_ratio.est'], color='#5dad64', vmin=0, vmax=1.0)\n", + " .apply(stylers.add_bar, color='#f49d5a',\n", + " s_v=df['infection_rate']/df['infection_rate'].max(), \n", + " subset=cols['infection_rate'])\n", + " .format('{:.2f}', subset=[cols['needICU.per100k'], cols['needICU.per100k_past']])\n", + " .format('{:,.0f}', subset=cols['Cases.new.est'])\n", + " .format('{:.1%}', subset=[cols['affected_ratio.est'], \n", + " cols['infection_rate']]))\n", + "\n", + "def style_basic(df):\n", + " cols = {\n", + " 'Cases.total.est': 'Estimated
total
cases',\n", + " 'Deaths.total': 'Total
reported
deaths',\n", + " 'last_case_date': 'Date
of last
reported case',\n", + " 'last_death_date': 'Date
of last
reported death',\n", + " } \n", + " return (index_format(df)[cols.keys()].rename(columns=cols).style\n", + " .format('{:,.0f}', subset=[cols['Cases.total.est'], cols['Deaths.total']]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Transmission rate:\n", + "> Note: \"transmission rate\" here is a measure of speed of spread of infection, and means how much of the susceptible population each infected person is infecting per day (if everyone is susceptible). E.g. 10% means that 100 infected patients will infect 10 new people per day. Related to [R0](https://en.wikipedia.org/wiki/Basic_reproduction_number). See [Methodology](#Methodology) for details of calculation." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## ⭕ Bad news: new waves\n", + "> Large increase in transmission rate vs. 10 days ago, that might mean a relapse, new wave, worsening outbreak. \n", + "\n", + "- Countries are sorted by size of change in transmission rate.\n", + "- Includes only countries that were previously active (more than 100 estimated new cases).\n", + "- \"Large increase\" = at least +1% change." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Estimated
recent cases
in last 5 days
Current:
Estimated
daily
transmission
rate
10 days ago:
Estimated
daily
transmission
rate
Estimated
current
ICU need
per 100k
population
Estimated
total
affected
population
percentage
🇧🇬 Bulgaria1,9269.3%1.9%0.640.2%
🇬🇷 Greece4167.4%1.2%0.160.1%
🇧🇦 Bosnia1,3478.4%3.7%0.740.5%
🇸🇦 Saudi Arabia37,9537.3%4.2%2.070.9%
🇷🇸 Serbia5774.5%1.7%0.770.3%
🇱🇷 Liberia1,9618.4%6.3%0.040.3%
🇮🇱 Israel1,6497.8%5.4%0.750.5%
🇱🇹 Lithuania1315.0%2.8%0.360.2%
🇲🇦 Morocco1,6104.6%2.4%0.090.1%
🇳🇴 Norway1673.5%1.6%0.330.4%
🇯🇵 Japan4902.7%1.4%0.070.0%
🇮🇩 Indonesia61,9587.0%5.5%0.100.2%
🇨🇿 Czechia6904.7%3.4%0.520.3%
🇳🇱 Netherlands7,4434.1%2.8%1.253.1%
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "# optimistic rates\n", + "rate_past_opt = df_past['infection_rate'] - df_past['growth_rate_std']\n", + "rate_past_opt[rate_past_opt < 0] = 0\n", + "rate_cur_opt = df_cur['infection_rate'] - df_cur['growth_rate_std']\n", + "rate_cur_opt[rate_cur_opt < 0] = 0\n", + "\n", + "rate_diff = rate_cur_opt - rate_past_opt\n", + "pct_rate_diff = rate_diff / df_past['growth_rate_std']\n", + "higher_trans = ((df_cur['infection_rate'] > 0.02) & \n", + " (df_cur['Cases.new.est'] > 100) &\n", + " (rate_diff > 0.01) &\n", + " (pct_rate_diff > 3))\n", + "new_waves = rate_diff[higher_trans].sort_values(ascending=False).index\n", + "style_news_infections(df_data.loc[new_waves])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "#hide\n", + "import altair as alt\n", + "alt.data_transformers.disable_max_rows()\n", + "\n", + "df_alt_all = pd.concat([d.reset_index() for d in debug_dfs], axis=0)\n", + "\n", + "def infected_plots(countries, title, days_back=60):\n", + " df_alt = df_alt_all[df_alt_all['day'].between(-days_back, 0) & \n", + " (df_alt_all['country'].isin(countries))]\n", + "\n", + " select_country = alt.selection_single(\n", + " name='Select',\n", + " fields=['country'],\n", + " bind='legend',\n", + " empty='all',\n", + " init={'country': countries[0]}\n", + " )\n", + "\n", + " today_line = (alt.Chart(pd.DataFrame({'x': [-10]}))\n", + " .mark_rule(color='#c8d1ce')\n", + " .encode(x='x', strokeWidth=alt.value(6), opacity=alt.value(0.5)))\n", + " \n", + " lines = (alt.Chart(df_alt).mark_line().encode(\n", + " x=alt.X('day:Q', \n", + " scale=alt.Scale(type='symlog'),\n", + " axis=alt.Axis(labelOverlap='greedy', values=list(range(-days_back, 0, 5)),\n", + " title=f'days relative to today ({cur_data.cur_date})')),\n", + " y=alt.Y('Infected:Q',\n", + " scale=alt.Scale(type='log'),\n", + " axis=alt.Axis(format='%', title='Infected percentage'),\n", + " ),\n", + " color=alt.Color('country:N', \n", + " legend=alt.Legend(title='Country',\n", + " labelFontSize=14,\n", + " values=countries.to_list())),\n", + " opacity=alt.condition(select_country, alt.value(1), alt.value(0.4)),\n", + " strokeWidth=alt.condition(select_country, alt.value(4), alt.value(2)))\n", + " )\n", + "\n", + " return ((lines + today_line)\n", + " .add_selection(select_country)\n", + " .configure_title(fontSize=20)\n", + " .configure_axis(labelFontSize=15, titleFontSize=18, grid=True)\n", + " .properties(title=title, width=550, height=340).interactive(bind_x=False))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> Tip: Click country name in legend to switch countries. Uze mouse wheel to zoom Y axis." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "" + ], + "text/plain": [ + "alt.LayerChart(...)" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "infected_plots(new_waves, \"Countries with new waves (vs. 10 days ago)\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 🟢 Good news: slowing waves\n", + "> Large decrease in transmission rate vs. 10 days ago, that might mean a slowing down / effective control measures.\n", + "\n", + "- Countries are sorted by size of change in transmission rate.\n", + "- Includes only countries that were previously active (more than 100 estimated new cases).\n", + "- \"Large decrease\" = at least -1% change." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Estimated
recent cases
in last 5 days
Current:
Estimated
daily
transmission
rate
10 days ago:
Estimated
daily
transmission
rate
Estimated
current
ICU need
per 100k
population
Estimated
total
affected
population
percentage
🇳🇵 Nepal1,7558.8%17.6%0.220.0%
🇲🇻 Maldives1082.1%8.7%1.670.5%
🇴🇲 Oman7,1837.2%12.1%2.681.0%
🇫🇷 France17,7132.6%6.8%1.013.8%
🇰🇿 Kazakhstan1,2254.8%7.5%0.690.1%
🇵🇪 Peru104,5285.0%8.3%7.063.8%
🇪🇬 Egypt70,4646.9%9.9%0.340.5%
🇮🇳 India331,2536.9%7.6%0.220.2%
🇨🇺 Cuba1112.5%5.5%0.130.1%
🇵🇰 Pakistan188,4028.8%8.3%0.450.5%
🇮🇷 Iran93,2264.5%6.2%1.112.4%
🇵🇦 Panama10,3597.2%8.5%4.352.1%
🇪🇸 Spain10,4082.1%3.4%1.424.7%
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "lower_trans = ((df_cur['infection_rate'] > 0.02) & \n", + " (df_cur['Cases.new.est'] > 100) &\n", + " (rate_diff < -0.01) &\n", + " (pct_rate_diff < -3))\n", + "slowing_outbreaks = rate_diff[lower_trans].sort_values().index\n", + "style_news_infections(df_data.loc[slowing_outbreaks])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> Tip: Click country name in legend to switch countries. Uze mouse wheel to zoom Y axis." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "" + ], + "text/plain": [ + "alt.LayerChart(...)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "infected_plots(slowing_outbreaks, \"Countries with slowing waves (vs. 10 days ago)\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ICU need" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> Note: for details of ICU need calculation please see [Methodology](#Methodology)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## ⭕ Bad news: higher ICU need\n", + "> Large increases in need for ICU beds per 100k population vs. 10 days ago.\n", + "\n", + "- Only countries for which the ICU need increased by more than 0.5 (per 100k)." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Estimated
recentcases
in last 5 days
Current:
Estimated
ICU need
per 100k
population
10 days ago:
Estimated
ICU need
per 100k
population
Estimated
daily
transmission
rate
Estimated
total
affected
population
percentage
🇨🇱 Chile57,53514.4611.316.7%2.4%
🇦🇲 Armenia4,5298.405.736.2%1.5%
🇸🇪 Sweden34,1807.905.435.8%4.7%
🇲🇰 North Macedonia3,8772.791.178.7%1.3%
🇧🇷 Brazil1,166,2485.533.986.5%4.1%
🇧🇭 Bahrain1,9045.824.386.0%1.0%
🇵🇦 Panama10,3594.353.047.2%2.1%
🇴🇲 Oman7,1832.681.787.2%1.0%
🇲🇩 Moldova5,6103.132.406.5%1.5%
🇶🇦 Qatar6,28112.4111.694.9%2.7%
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "icu_diff = df_cur['needICU.per100k'] - df_past['needICU.per100k']\n", + "icu_increase = icu_diff[icu_diff > 0.5].sort_values(ascending=False).index\n", + "style_news_icu(df_data.loc[icu_increase])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> Tip: Click country name in legend to switch countries. Uze mouse wheel to zoom Y axis." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "" + ], + "text/plain": [ + "alt.LayerChart(...)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "infected_plots(icu_increase, \"Countries with Higher ICU need (vs. 10 days ago)\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 🟢 Good news: lower ICU need\n", + "> Large decreases in need for ICU beds per 100k population vs. 10 days ago.\n", + "\n", + "- Only countries for which the ICU need decreased by more than 0.5 (per 100k)." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Estimated
recentcases
in last 5 days
Current:
Estimated
ICU need
per 100k
population
10 days ago:
Estimated
ICU need
per 100k
population
Estimated
daily
transmission
rate
Estimated
total
affected
population
percentage
🇬🇧 United Kingdom68,3063.164.172.8%5.7%
🇮🇪 Ireland2841.242.220.6%3.9%
🇧🇪 Belgium6,8591.992.952.7%7.3%
🇸🇬 Singapore1,4775.916.803.6%0.7%
🇪🇸 Spain10,4081.422.162.1%4.7%
🇲🇻 Maldives1081.672.402.1%0.5%
🇨🇦 Canada15,6602.112.772.9%2.1%
🇮🇹 Italy11,7521.221.872.1%4.0%
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "icu_decrease = icu_diff[icu_diff < -0.5].sort_values().index\n", + "style_news_icu(df_data.loc[icu_decrease])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> Tip: Click country name in legend to switch countries. Uze mouse wheel to zoom Y axis." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "" + ], + "text/plain": [ + "alt.LayerChart(...)" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "infected_plots(icu_decrease, \"Countries with Lower ICU need (vs. 10 days ago)\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Cases and deaths" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## ⭕ Bad news: new first significant outbreaks\n", + "> Countries that have started their first significant outbreak (crossed 1000 total reported cases or 20 deaths) vs. 10 days ago." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Estimated
recent cases
in last 5 days
Current:
Estimated
daily
transmission
rate
10 days ago:
Estimated
daily
transmission
rate
Estimated
current
ICU need
per 100k
population
Estimated
total
affected
population
percentage
🇸🇸 South Sudan3,48316.9%-0.110.2%
🇨🇬 Congo (Brazzaville)7813.6%-0.050.2%
🇲🇬 Madagascar7055.4%-0.030.0%
🇵🇾 Paraguay2326.8%-0.110.0%
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "new_entries = df_cur.index[~df_cur.index.isin(df_past.index)]\n", + "style_news_infections(df_data.loc[new_entries])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> Tip: Click country name in legend to switch countries. Uze mouse wheel to zoom Y axis." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "" + ], + "text/plain": [ + "alt.LayerChart(...)" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "infected_plots(new_entries, \"Countries with first large outbreak (vs. 10 days ago)\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## 🟢 Good news: no new cases or deaths\n", + "> New countries with no new cases or deaths vs. 10 days ago.\n", + "\n", + "- Only considering countries that had at least 1000 estimated total cases and at least 10 total deaths and had and active outbreak previously." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Estimated
total
cases
Total
reported
deaths
Date
of last
reported case
Date
of last
reported death
🇬🇶 Equatorial Guinea6,198122020-05-292020-05-25
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "significant_past = ((df_past['Cases.total.est'] > 1000) & (df_past['Deaths.total'] > 10))\n", + "active_in_past = ((df_past['Cases.new'] > 0) | (df_past['Deaths.new'] > 0))\n", + "no_cases_filt = ((df_cur['Cases.total'] - df_past['Cases.total']) == 0)\n", + "no_deaths_filt = ((df_cur['Deaths.total'] - df_past['Deaths.total']) == 0)\n", + "no_cases_and_deaths = df_cur.loc[no_cases_filt & no_deaths_filt & \n", + " significant_past & active_in_past].index\n", + "\n", + "# style_news_table(df_pretty.loc[no_cases_and_deaths], df_data.loc[no_cases_and_deaths])\n", + "style_basic(df_data.loc[no_cases_and_deaths])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> Tip: Click country name in legend to switch countries. Uze mouse wheel to zoom Y axis." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "" + ], + "text/plain": [ + "alt.LayerChart(...)" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "infected_plots(no_cases_and_deaths, \"New countries with no new cases or deaths (vs. 10 days ago)\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Mixed news: no new deaths, only new cases\n", + "> New countries with no new deaths (only new cases) vs. 10 days ago.\n", + "\n", + "- Only considering countries that had at least 1000 estimated total cases and at least 10 total deaths and had an active outbreak previously." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Estimated
recent cases
in last 5 days
Current:
Estimated
daily
transmission
rate
10 days ago:
Estimated
daily
transmission
rate
Estimated
current
ICU need
per 100k
population
Estimated
total
affected
population
percentage
🇬🇳 Guinea6963.7%7.6%0.090.1%
🇨🇳 China1832.8%3.3%0.000.0%
🇱🇰 Sri Lanka421.9%4.6%0.080.0%
🇱🇺 Luxembourg392.4%1.6%0.831.9%
🇳🇪 Niger350.9%0.8%0.000.1%
🇦🇺 Australia352.1%3.6%0.040.0%
🇸🇰 Slovakia253.1%1.1%0.060.1%
🇸🇮 Slovenia181.8%0.7%0.100.4%
🇺🇾 Uruguay60.4%3.1%0.100.1%
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "no_deaths = df_cur.loc[no_deaths_filt & (~no_cases_filt) & \n", + " significant_past & active_in_past].index\n", + "style_news_infections(df_data.loc[no_deaths])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> Tip: Click country name in legend to switch countries. Uze mouse wheel to zoom Y axis." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "" + ], + "text/plain": [ + "alt.LayerChart(...)" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "infected_plots(no_deaths, \"Countries with only new cases (vs. 10 days ago)\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## No news: continously inactive countries\n", + "> Countries that had no new cases or deaths 10 days ago or now.\n", + "\n", + "- Only considering countries that had at least 1000 estimated total cases and at least 10 total deaths.\n", + "- Caveat: these countries may have stopped reporting data like [Tanzania](https://en.wikipedia.org/wiki/COVID-19_pandemic_in_Tanzania)." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Estimated
total
cases
Total
reported
deaths
Date
of last
reported case
Date
of last
reported death
🇳🇿 New Zealand2,347222020-05-212020-05-27
🇹🇿 Tanzania10,235212020-05-082020-05-08
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "not_active = df_cur.loc[no_cases_filt & significant_past & ~active_in_past].index\n", + "style_basic(df_data.loc[not_active])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> Tip: Click country name in legend to switch countries. Uze mouse wheel to zoom Y axis." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "" + ], + "text/plain": [ + "alt.LayerChart(...)" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "infected_plots(not_active, \"Continuosly inactive countries (now and 10 days ago)\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Extras:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> Note: For interactive map, per country details, projections, and modeling methodology see [Projections of ICU need by Country dashboard](/covid-progress-projections/)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> Warning: the visualisation below contains the results of a predictive model that was not built by an epidemiologist." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Future model projections plots per country\n", + "> For countries in any of the above groups." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "> Tip: Choose country from the drop-down below the graph." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "" + ], + "text/plain": [ + "alt.LayerChart(...)" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "all_news = (new_waves, slowing_outbreaks, \n", + " icu_increase, icu_decrease,\n", + " not_active, no_deaths, no_cases_and_deaths, new_entries)\n", + "news_countries = [c for g in all_news for c in g]\n", + "df_alt_filt = df_alt_all[(df_alt_all['day'] > -60) & \n", + " (df_alt_all['country'].isin(news_countries))]\n", + "overview_helpers.altair_sir_plot(df_alt_filt, new_waves[0])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Future World projections (all countries stacked)\n", + "The outputs of the models for all countries in stacked plots.\n", + "> Tip: Hover the mouse of the area to see which country is which and the countries S/I/R ratios at that point. \n", + "\n", + "> Tip: The plots are zoomable and draggable." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "#hide\n", + "df_tot = df_alt_all.rename(columns={'country': cur_data.COL_REGION}\n", + " ).set_index(cur_data.COL_REGION)\n", + "df_tot['population'] = df_cur_all['population']\n", + "for c in df_tot.columns[df_alt_all.dtypes == float]:\n", + " df_tot[c + '-total'] = df_tot[c] * df_tot['population']\n", + "df_tot = df_tot.reset_index()\n", + "df_tot.columns = [c.replace('.', '-') for c in df_tot.columns]" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "#hide\n", + "# filter by days\n", + "df_tot = df_tot[(df_tot['day'].between(-30, 30) & (df_tot['day'] % 3 == 0)) | (df_tot['day'] % 10 == 0)]\n", + "\n", + "# filter out noisy countries for actively infected plot:\n", + "df_tot_filt = df_tot[df_tot[cur_data.COL_REGION].isin(df_cur.index.unique())]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### World total estimated actively infected" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "" + ], + "text/plain": [ + "alt.LayerChart(...)" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "import altair as alt\n", + "alt.data_transformers.disable_max_rows()\n", + "\n", + "# today\n", + "today_line = (alt.Chart(pd.DataFrame({'x': [0]}))\n", + " .mark_rule(color='orange')\n", + " .encode(x='x', size=alt.value(1)))\n", + "\n", + "# make plot\n", + "max_y = df_tot_filt[df_tot_filt['day']==30]['Infected-total'].sum()\n", + "stacked_inf = alt.Chart(df_tot_filt).mark_area().encode(\n", + " x=alt.X('day:Q',\n", + " title=f'days relative to today ({cur_data.cur_date})',\n", + " scale=alt.Scale(domain=(-30, 30))),\n", + " y=alt.Y(\"Infected-total:Q\", stack=True, title=\"Number of people\",\n", + " scale=alt.Scale(domain=(0, max_y))),\n", + " color=alt.Color(\"Country/Region:N\", legend=None),\n", + " tooltip=['Country/Region', 'Susceptible', 'Infected', 'Removed'], \n", + ")\n", + "(stacked_inf + today_line).interactive()\\\n", + ".properties(width=650, height=340)\\\n", + ".properties(title='Actively infected')\\\n", + ".configure_title(fontSize=20)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### World total estimated recovered or dead" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "" + ], + "text/plain": [ + "alt.LayerChart(...)" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#hide_input\n", + "max_y = df_tot_filt[df_tot_filt['day']==30]['Removed-total'].sum()\n", + "stacked_rem = alt.Chart(df_tot_filt).mark_area().encode(\n", + " x=alt.X('day:Q',\n", + " title=f'days relative to today ({cur_data.cur_date})',\n", + " scale=alt.Scale(domain=(-30, 30))),\n", + " y=alt.Y(\"Removed-total:Q\", stack=True, title=\"Number of people\",\n", + " scale=alt.Scale(domain=(0, max_y))),\n", + " color=alt.Color(\"Country/Region:N\", legend=None),\n", + " tooltip=['Country/Region', 'Susceptible', 'Infected', 'Removed']\n", + ")\n", + "\n", + "(stacked_rem + today_line).interactive()\\\n", + ".properties(width=650, height=340)\\\n", + ".properties(title='Recovered or dead')\\\n", + ".configure_title(fontSize=20)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Methodology\n", + "- I'm not an epidemiologist.\n", + "- Tranmission rates calculation:\n", + " - Case growth rate is calculated over the 5 past days.\n", + " - Confidence bounds are calculated by from the weighted standard deviation of the growth rate over the last 5 days. Countries with highly noisy transmission rates are exluded from tranmission rate change tables (\"new waves\", \"slowing waves\"). \n", + " - Tranmission rate is calculated from cases growth rate by estimating the actively infected population change relative to the susceptible population.\n", + "- Recovery rate (for estimating actively infected): \n", + " - Where the rate estimated from [Total Outstanding Cases](https://covid19dashboards.com/outstanding_cases/#Appendix:-Methodology-of-Predicting-Recovered-Cases) is too high (on down-slopes) recovery probability if 1/20 is used (equivalent 20 days to recover).\n", + "- Total cases are estimated from the reported deaths for each country:\n", + " - Each country has different testing policy and capacity and cases are under-reported in some countries. Using an estimated IFR (fatality rate) we can estimate the number of cases some time ago by using the total deaths until today. We can than use this estimation to estimate the testing bias and multiply the current reported case numbers by that.\n", + " - IFRs for each country is estimated using the age IFRs from [May 1 New York paper](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3590771) and [UN demographic data for 2020](https://population.un.org/wpp/Download/Standard/Population/). These IFRs can be found in `df['age_adjusted_ifr']` column. Some examples: US - 0.98%, UK - 1.1%, Qatar - 0.25%, Italy - 1.4%, Japan - 1.6%.\n", + " - The average fatality lag is assumed to be 8 days on average for a case to go from being confirmed positive (after incubation + testing lag) to death. This is the same figure used by [\"Estimating The Infected Population From Deaths\"](https://covid19dashboards.com/covid-infected/).\n", + " - Testing bias: the actual lagged fatality rate is than divided by the IFR to estimate the testing bias in a country. The estimated testing bias then multiplies the reported case numbers to estimate the *true* case numbers (*=case numbers if testing coverage was as comprehensive as in the heavily tested countries*).\n", + "- ICU need is calculated and age-adjusted as follows:\n", + " - UK ICU ratio was reported as [4.4% of active reported cases](https://www.imperial.ac.uk/media/imperial-college/medicine/sph/ide/gida-fellowships/Imperial-College-COVID19-NPI-modelling-16-03-2020.pdf).\n", + " - Using UKs ICU ratio and IFRs corrected for age demographics we can estimate each country's ICU ratio (the number of cases requiring ICU hospitalisation). For example using the IFR ratio between UK and Qatar to devide UK's 4.4% we get an ICU ratio of around 1% for Qatar which is also the ratio [they report to WHO here](https://apps.who.int/gb/COVID-19/pdf_files/30_04/Qatar.pdf).\n", + " - The ICU need is calculated from reported cases rather than from total estimated active cases. This is because the ICU ratio (4.4%) is based on reported cases." + ] + } + ], + "metadata": { + "jupytext": { + "encoding": "# -*- coding: utf-8 -*-", + "formats": "ipynb,py:light", + "text_representation": { + "extension": ".py", + "format_name": "light", + "format_version": "1.5", + "jupytext_version": "1.4.2" + } + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.9" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/_notebooks/2020-06-12-covid19-news.py b/_notebooks/2020-06-12-covid19-news.py new file mode 100755 index 0000000..91dc3ef --- /dev/null +++ b/_notebooks/2020-06-12-covid19-news.py @@ -0,0 +1,447 @@ +# -*- coding: utf-8 -*- +# --- +# jupyter: +# jupytext: +# formats: ipynb,py:light +# text_representation: +# extension: .py +# format_name: light +# format_version: '1.5' +# jupytext_version: 1.4.1 +# kernelspec: +# display_name: Python 3 +# language: python +# name: python3 +# --- + +# # World News from data (good & bad) +# > Signigicant changes vs. 10 days ago in transmission rates, ICU demand, and cases & deaths data. +# +# - categories: [world, overview, interactive, news] +# - permalink: /covid-news/ +# - author: artdgn +# - toc: true +# - image: images/news.png +# - hide: false + +# > Warning: This dashboard was not built by an epidemiologist. +# + +# + +#hide +import pandas as pd +import overview_helpers + +stylers = overview_helpers.PandasStyling + +# + +#hide +day_diff = 10 + +cur_data = overview_helpers.CovidData() +df_cur_all, debug_dfs = cur_data.table_with_projections(debug_dfs=True) +df_cur = cur_data.filter_df(df_cur_all) + +past_data = overview_helpers.CovidData(-day_diff) +df_past = past_data.filter_df(past_data.table_with_projections()) +# - + +#hide_input +from IPython.display import Markdown +past_date = pd.to_datetime(past_data.dt_cols[-1]).date().isoformat() +Markdown(f"***Based on data up to: {cur_data.cur_date}. \ + Compared to ({day_diff} days before): {past_date}***") + + +#hide +df_data = df_cur.copy() +df_data['infection_rate_past'] = df_past['infection_rate'] +df_data['infection_rate_past_err'] = df_past['growth_rate_std'] +df_data['needICU.per100k_past'] = df_past['needICU.per100k'] + + +# + +#hide +def index_format(df): + df = cur_data.rename_long_names(df) + df.index = df.apply( + lambda s: f"""{s['emoji_flag']} {s.name}""", axis=1) + return df + +def style_news_infections(df): + cols = { + 'Cases.new.est': 'Estimated
recent cases
in last 5 days', + 'infection_rate': 'Current:
Estimated
daily
transmission
rate', + 'infection_rate_past': f'{day_diff} days ago:
Estimated
daily
transmission
rate', + 'needICU.per100k': 'Estimated
current
ICU need
per 100k
population', + 'affected_ratio.est': 'Estimated
total
affected
population
percentage', + } + + rate_norm = max(df['infection_rate'].max(), df['infection_rate_past'].max()) + return (index_format(df)[cols.keys()].rename(columns=cols).style + .bar(subset=[cols['needICU.per100k']], color='#b21e3e', vmin=0, vmax=10) + .bar(subset=cols['Cases.new.est'], color='#b57b17') + .bar(subset=cols['affected_ratio.est'], color='#5dad64', vmin=0, vmax=1.0) + .apply(stylers.add_bar, color='#f49d5a', + s_v=df['infection_rate']/rate_norm, subset=cols['infection_rate']) + .apply(stylers.add_bar, color='#d8b193', + s_v=df['infection_rate_past']/rate_norm, subset=cols['infection_rate_past']) + .format('{:.2f}', subset=[cols['needICU.per100k']]) + .format('{:,.0f}', subset=cols['Cases.new.est']) + .format('{:.1%}', subset=[cols['affected_ratio.est'], + cols['infection_rate'], + cols['infection_rate_past']], na_rep="-")) + +def style_news_icu(df): + cols = { + 'Cases.new.est': 'Estimated
recentcases
in last 5 days', + 'needICU.per100k': 'Current:
Estimated
ICU need
per 100k
population', + 'needICU.per100k_past': f'{day_diff} days ago:
Estimated
ICU need
per 100k
population', + 'infection_rate': 'Estimated
daily
transmission
rate', + 'affected_ratio.est': 'Estimated
total
affected
population
percentage', + } + + return (index_format(df)[cols.keys()].rename(columns=cols).style + .bar(subset=cols['needICU.per100k'], color='#b21e3e', vmin=0, vmax=10) + .bar(subset=cols['needICU.per100k_past'], color='#c67f8e', vmin=0, vmax=10) + .bar(subset=cols['Cases.new.est'], color='#b57b17') + .bar(subset=cols['affected_ratio.est'], color='#5dad64', vmin=0, vmax=1.0) + .apply(stylers.add_bar, color='#f49d5a', + s_v=df['infection_rate']/df['infection_rate'].max(), + subset=cols['infection_rate']) + .format('{:.2f}', subset=[cols['needICU.per100k'], cols['needICU.per100k_past']]) + .format('{:,.0f}', subset=cols['Cases.new.est']) + .format('{:.1%}', subset=[cols['affected_ratio.est'], + cols['infection_rate']])) + +def style_basic(df): + cols = { + 'Cases.total.est': 'Estimated
total
cases', + 'Deaths.total': 'Total
reported
deaths', + 'last_case_date': 'Date
of last
reported case', + 'last_death_date': 'Date
of last
reported death', + } + return (index_format(df)[cols.keys()].rename(columns=cols).style + .format('{:,.0f}', subset=[cols['Cases.total.est'], cols['Deaths.total']])) + + +# - + +# # Transmission rate: +# > Note: "transmission rate" here is a measure of speed of spread of infection, and means how much of the susceptible population each infected person is infecting per day (if everyone is susceptible). E.g. 10% means that 100 infected patients will infect 10 new people per day. Related to [R0](https://en.wikipedia.org/wiki/Basic_reproduction_number). See [Methodology](#Methodology) for details of calculation. + +# +# ## ⭕ Bad news: new waves +# > Large increase in transmission rate vs. 10 days ago, that might mean a relapse, new wave, worsening outbreak. +# +# - Countries are sorted by size of change in transmission rate. +# - Includes only countries that were previously active (more than 100 estimated new cases). +# - "Large increase" = at least +1% change. + +# + +#hide_input +# optimistic rates +rate_past_opt = df_past['infection_rate'] - df_past['growth_rate_std'] +rate_past_opt[rate_past_opt < 0] = 0 +rate_cur_opt = df_cur['infection_rate'] - df_cur['growth_rate_std'] +rate_cur_opt[rate_cur_opt < 0] = 0 + +rate_diff = rate_cur_opt - rate_past_opt +pct_rate_diff = rate_diff / df_past['growth_rate_std'] +higher_trans = ((df_cur['infection_rate'] > 0.02) & + (df_cur['Cases.new.est'] > 100) & + (rate_diff > 0.01) & + (pct_rate_diff > 3)) +new_waves = rate_diff[higher_trans].sort_values(ascending=False).index +style_news_infections(df_data.loc[new_waves]) + +# + +#hide +import altair as alt +alt.data_transformers.disable_max_rows() + +df_alt_all = pd.concat([d.reset_index() for d in debug_dfs], axis=0) + +def infected_plots(countries, title, days_back=60): + df_alt = df_alt_all[df_alt_all['day'].between(-days_back, 0) & + (df_alt_all['country'].isin(countries))] + + select_country = alt.selection_single( + name='Select', + fields=['country'], + bind='legend', + empty='all', + init={'country': countries[0]} + ) + + today_line = (alt.Chart(pd.DataFrame({'x': [-10]})) + .mark_rule(color='#c8d1ce') + .encode(x='x', strokeWidth=alt.value(6), opacity=alt.value(0.5))) + + lines = (alt.Chart(df_alt).mark_line().encode( + x=alt.X('day:Q', + scale=alt.Scale(type='symlog'), + axis=alt.Axis(labelOverlap='greedy', values=list(range(-days_back, 0, 5)), + title=f'days relative to today ({cur_data.cur_date})')), + y=alt.Y('Infected:Q', + scale=alt.Scale(type='log'), + axis=alt.Axis(format='%', title='Infected percentage'), + ), + color=alt.Color('country:N', + legend=alt.Legend(title='Country', + labelFontSize=14, + values=countries.to_list())), + opacity=alt.condition(select_country, alt.value(1), alt.value(0.4)), + strokeWidth=alt.condition(select_country, alt.value(4), alt.value(2))) + ) + + return ((lines + today_line) + .add_selection(select_country) + .configure_title(fontSize=20) + .configure_axis(labelFontSize=15, titleFontSize=18, grid=True) + .properties(title=title, width=550, height=340).interactive(bind_x=False)) + + +# - + +# > Tip: Click country name in legend to switch countries. Uze mouse wheel to zoom Y axis. + +#hide_input +infected_plots(new_waves, "Countries with new waves (vs. 10 days ago)") + +# +# ## 🟢 Good news: slowing waves +# > Large decrease in transmission rate vs. 10 days ago, that might mean a slowing down / effective control measures. +# +# - Countries are sorted by size of change in transmission rate. +# - Includes only countries that were previously active (more than 100 estimated new cases). +# - "Large decrease" = at least -1% change. + +#hide_input +lower_trans = ((df_cur['infection_rate'] > 0.02) & + (df_cur['Cases.new.est'] > 100) & + (rate_diff < -0.01) & + (pct_rate_diff < -3)) +slowing_outbreaks = rate_diff[lower_trans].sort_values().index +style_news_infections(df_data.loc[slowing_outbreaks]) + +# > Tip: Click country name in legend to switch countries. Uze mouse wheel to zoom Y axis. + +#hide_input +infected_plots(slowing_outbreaks, "Countries with slowing waves (vs. 10 days ago)") + +# # ICU need + +# > Note: for details of ICU need calculation please see [Methodology](#Methodology). + +# +# ## ⭕ Bad news: higher ICU need +# > Large increases in need for ICU beds per 100k population vs. 10 days ago. +# +# - Only countries for which the ICU need increased by more than 0.5 (per 100k). + +#hide_input +icu_diff = df_cur['needICU.per100k'] - df_past['needICU.per100k'] +icu_increase = icu_diff[icu_diff > 0.5].sort_values(ascending=False).index +style_news_icu(df_data.loc[icu_increase]) + +# > Tip: Click country name in legend to switch countries. Uze mouse wheel to zoom Y axis. + +#hide_input +infected_plots(icu_increase, "Countries with Higher ICU need (vs. 10 days ago)") + +# +# ## 🟢 Good news: lower ICU need +# > Large decreases in need for ICU beds per 100k population vs. 10 days ago. +# +# - Only countries for which the ICU need decreased by more than 0.5 (per 100k). + +#hide_input +icu_decrease = icu_diff[icu_diff < -0.5].sort_values().index +style_news_icu(df_data.loc[icu_decrease]) + +# > Tip: Click country name in legend to switch countries. Uze mouse wheel to zoom Y axis. + +#hide_input +infected_plots(icu_decrease, "Countries with Lower ICU need (vs. 10 days ago)") + +# # Cases and deaths + +# +# ## ⭕ Bad news: new first significant outbreaks +# > Countries that have started their first significant outbreak (crossed 1000 total reported cases or 20 deaths) vs. 10 days ago. + +#hide_input +new_entries = df_cur.index[~df_cur.index.isin(df_past.index)] +style_news_infections(df_data.loc[new_entries]) + +# > Tip: Click country name in legend to switch countries. Uze mouse wheel to zoom Y axis. + +#hide_input +infected_plots(new_entries, "Countries with first large outbreak (vs. 10 days ago)") + +# +# ## 🟢 Good news: no new cases or deaths +# > New countries with no new cases or deaths vs. 10 days ago. +# +# - Only considering countries that had at least 1000 estimated total cases and at least 10 total deaths and had and active outbreak previously. + +# + +#hide_input +significant_past = ((df_past['Cases.total.est'] > 1000) & (df_past['Deaths.total'] > 10)) +active_in_past = ((df_past['Cases.new'] > 0) | (df_past['Deaths.new'] > 0)) +no_cases_filt = ((df_cur['Cases.total'] - df_past['Cases.total']) == 0) +no_deaths_filt = ((df_cur['Deaths.total'] - df_past['Deaths.total']) == 0) +no_cases_and_deaths = df_cur.loc[no_cases_filt & no_deaths_filt & + significant_past & active_in_past].index + +# style_news_table(df_pretty.loc[no_cases_and_deaths], df_data.loc[no_cases_and_deaths]) +style_basic(df_data.loc[no_cases_and_deaths]) +# - + +# > Tip: Click country name in legend to switch countries. Uze mouse wheel to zoom Y axis. + +#hide_input +infected_plots(no_cases_and_deaths, "New countries with no new cases or deaths (vs. 10 days ago)") + +# ## Mixed news: no new deaths, only new cases +# > New countries with no new deaths (only new cases) vs. 10 days ago. +# +# - Only considering countries that had at least 1000 estimated total cases and at least 10 total deaths and had an active outbreak previously. + +#hide_input +no_deaths = df_cur.loc[no_deaths_filt & (~no_cases_filt) & + significant_past & active_in_past].index +style_news_infections(df_data.loc[no_deaths]) + +# > Tip: Click country name in legend to switch countries. Uze mouse wheel to zoom Y axis. + +#hide_input +infected_plots(no_deaths, "Countries with only new cases (vs. 10 days ago)") + +# ## No news: continously inactive countries +# > Countries that had no new cases or deaths 10 days ago or now. +# +# - Only considering countries that had at least 1000 estimated total cases and at least 10 total deaths. +# - Caveat: these countries may have stopped reporting data like [Tanzania](https://en.wikipedia.org/wiki/COVID-19_pandemic_in_Tanzania). + +#hide_input +not_active = df_cur.loc[no_cases_filt & significant_past & ~active_in_past].index +style_basic(df_data.loc[not_active]) + +# > Tip: Click country name in legend to switch countries. Uze mouse wheel to zoom Y axis. + +#hide_input +infected_plots(not_active, "Continuosly inactive countries (now and 10 days ago)") + +# # Extras: + +# > Note: For interactive map, per country details, projections, and modeling methodology see [Projections of ICU need by Country dashboard](/covid-progress-projections/) + +# > Warning: the visualisation below contains the results of a predictive model that was not built by an epidemiologist. + +# ## Future model projections plots per country +# > For countries in any of the above groups. + +# > Tip: Choose country from the drop-down below the graph. + +#hide_input +all_news = (new_waves, slowing_outbreaks, + icu_increase, icu_decrease, + not_active, no_deaths, no_cases_and_deaths, new_entries) +news_countries = [c for g in all_news for c in g] +df_alt_filt = df_alt_all[(df_alt_all['day'] > -60) & + (df_alt_all['country'].isin(news_countries))] +overview_helpers.altair_sir_plot(df_alt_filt, new_waves[0]) + +# ## Future World projections (all countries stacked) +# The outputs of the models for all countries in stacked plots. +# > Tip: Hover the mouse of the area to see which country is which and the countries S/I/R ratios at that point. +# +# > Tip: The plots are zoomable and draggable. + +#hide +df_tot = df_alt_all.rename(columns={'country': cur_data.COL_REGION} + ).set_index(cur_data.COL_REGION) +df_tot['population'] = df_cur_all['population'] +for c in df_tot.columns[df_alt_all.dtypes == float]: + df_tot[c + '-total'] = df_tot[c] * df_tot['population'] +df_tot = df_tot.reset_index() +df_tot.columns = [c.replace('.', '-') for c in df_tot.columns] + +# + +#hide +# filter by days +df_tot = df_tot[(df_tot['day'].between(-30, 30) & (df_tot['day'] % 3 == 0)) | (df_tot['day'] % 10 == 0)] + +# filter out noisy countries for actively infected plot: +df_tot_filt = df_tot[df_tot[cur_data.COL_REGION].isin(df_cur.index.unique())] +# - + +# ### World total estimated actively infected + +# + +#hide_input +import altair as alt +alt.data_transformers.disable_max_rows() + +# today +today_line = (alt.Chart(pd.DataFrame({'x': [0]})) + .mark_rule(color='orange') + .encode(x='x', size=alt.value(1))) + +# make plot +max_y = df_tot_filt[df_tot_filt['day']==30]['Infected-total'].sum() +stacked_inf = alt.Chart(df_tot_filt).mark_area().encode( + x=alt.X('day:Q', + title=f'days relative to today ({cur_data.cur_date})', + scale=alt.Scale(domain=(-30, 30))), + y=alt.Y("Infected-total:Q", stack=True, title="Number of people", + scale=alt.Scale(domain=(0, max_y))), + color=alt.Color("Country/Region:N", legend=None), + tooltip=['Country/Region', 'Susceptible', 'Infected', 'Removed'], +) +(stacked_inf + today_line).interactive()\ +.properties(width=650, height=340)\ +.properties(title='Actively infected')\ +.configure_title(fontSize=20) +# - + +# ### World total estimated recovered or dead + +# + +#hide_input +max_y = df_tot_filt[df_tot_filt['day']==30]['Removed-total'].sum() +stacked_rem = alt.Chart(df_tot_filt).mark_area().encode( + x=alt.X('day:Q', + title=f'days relative to today ({cur_data.cur_date})', + scale=alt.Scale(domain=(-30, 30))), + y=alt.Y("Removed-total:Q", stack=True, title="Number of people", + scale=alt.Scale(domain=(0, max_y))), + color=alt.Color("Country/Region:N", legend=None), + tooltip=['Country/Region', 'Susceptible', 'Infected', 'Removed'] +) + +(stacked_rem + today_line).interactive()\ +.properties(width=650, height=340)\ +.properties(title='Recovered or dead')\ +.configure_title(fontSize=20) +# - + +# # Methodology +# - I'm not an epidemiologist. +# - Tranmission rates calculation: +# - Case growth rate is calculated over the 5 past days. +# - Confidence bounds are calculated by from the weighted standard deviation of the growth rate over the last 5 days. Countries with highly noisy transmission rates are exluded from tranmission rate change tables ("new waves", "slowing waves"). +# - Tranmission rate is calculated from cases growth rate by estimating the actively infected population change relative to the susceptible population. +# - Recovery rate (for estimating actively infected): +# - Where the rate estimated from [Total Outstanding Cases](https://covid19dashboards.com/outstanding_cases/#Appendix:-Methodology-of-Predicting-Recovered-Cases) is too high (on down-slopes) recovery probability if 1/20 is used (equivalent 20 days to recover). +# - Total cases are estimated from the reported deaths for each country: +# - Each country has different testing policy and capacity and cases are under-reported in some countries. Using an estimated IFR (fatality rate) we can estimate the number of cases some time ago by using the total deaths until today. We can than use this estimation to estimate the testing bias and multiply the current reported case numbers by that. +# - IFRs for each country is estimated using the age IFRs from [May 1 New York paper](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3590771) and [UN demographic data for 2020](https://population.un.org/wpp/Download/Standard/Population/). These IFRs can be found in `df['age_adjusted_ifr']` column. Some examples: US - 0.98%, UK - 1.1%, Qatar - 0.25%, Italy - 1.4%, Japan - 1.6%. +# - The average fatality lag is assumed to be 8 days on average for a case to go from being confirmed positive (after incubation + testing lag) to death. This is the same figure used by ["Estimating The Infected Population From Deaths"](https://covid19dashboards.com/covid-infected/). +# - Testing bias: the actual lagged fatality rate is than divided by the IFR to estimate the testing bias in a country. The estimated testing bias then multiplies the reported case numbers to estimate the *true* case numbers (*=case numbers if testing coverage was as comprehensive as in the heavily tested countries*). +# - ICU need is calculated and age-adjusted as follows: +# - UK ICU ratio was reported as [4.4% of active reported cases](https://www.imperial.ac.uk/media/imperial-college/medicine/sph/ide/gida-fellowships/Imperial-College-COVID19-NPI-modelling-16-03-2020.pdf). +# - Using UKs ICU ratio and IFRs corrected for age demographics we can estimate each country's ICU ratio (the number of cases requiring ICU hospitalisation). For example using the IFR ratio between UK and Qatar to devide UK's 4.4% we get an ICU ratio of around 1% for Qatar which is also the ratio [they report to WHO here](https://apps.who.int/gb/COVID-19/pdf_files/30_04/Qatar.pdf). +# - The ICU need is calculated from reported cases rather than from total estimated active cases. This is because the ICU ratio (4.4%) is based on reported cases. diff --git a/images/news.png b/images/news.png new file mode 100644 index 0000000000000000000000000000000000000000..e321e4d84c8bf00c9142cc8f8260c848a908da84 GIT binary patch literal 136779 zcmdqJ^;;Bd)Ga(TNF&lINJw{ggA&q6N-AB_Ff>RC3P^`^cek{Zl!P?Wl0(OL&-0%5 z`wz}9hik5paeCi7*IJuMbyWrICuC0`5D2!CqU;+81PKO#APSwVAVrl8%YUAj3gw!bxfzUvdWTmt` z(+~c5`4YnJC64EQ9{4%3yTs%5m^C3jc}erGy~?22x;=YVXFpQA?54Isd-|eu*1)b< zOU1tZSTd?UQ|@j3^LlM$T1i19TH+zABcJW7d#={RjDx=&YxlmQp7Gx@zTF=k|NRQT+9iLohw(r6gv4un3iAH{ANM6UJM({^MVil4 z#Q49@k!SvY`YA%FD8W*kScxawd2!;y-gm$9RkR1#j9T0x6kh#j!_=&3e4s?iEA+&$z#22&bP)qif8! zdGRcJZp4UZJwDtXnGYqrC@Ly~&fA3zS@eWpJUzZY3ZOReJ(24_36z8wl__?abP; zm8RIkFBOhrDv8S_*RKPfnFCX55;18GEf{Cp;|g+eC=@tobp~wds*JG`51vadBW%B0 z+->`tsC*8%X55L{48FMEv9YmD*zgWJvyS9eRH(YYVkPQL<+D95cl5*T>+74?hgB^e zrUE?#Hc24{S4#E=fa!pngBO4;!AFDpX5GmQs&3sj-OM`~5;C$-=ODGw$ToS#K@b33StpVSwweVr{NgFLbe#oyRwzppf-WnKa#eEyKV*adnzT@Y4 z`NuaS%FH!sIj_Q zV_i^HC~QNpI6wb|`JI~h_4hpk>vZR^y_3q$2ZK~jGwI}UM_#i0dfPcG!`6ZV`Ik&g zJCn9MySJ}_tHcK?e1pdm1WNAEBz4`=(n40*aq}T=JZ4}+ug#O|;Uq4g=wjbZcn9V^ z)A5x>cfC;JzWBq+`@)QZh2^^UiKnn+6aPp()&lRl+HrBsj^!rjyuE5oRUs6zm;!|j z<0?}G!B|Z(T~Vs>8&S%EuZPVd9kFg$y@c{#S?vxMJp0L09q{Ns!$lN@!n*jd54IBJ5eHx77~3sPu=iOixcUEm8)rotw6poBsK;VT3YE30|5a;O=Dj zBQIH>u8ALtB+hq{q?5*mhIiwcVh~8@O5EPwhb^wep%5Y0zf6m)BkN19<9(PMZP1n$ z;UDj~n*KP*=4l)()MHv_xF_u`bl(0s(pp@(UB1*>q;#y|<>OleZm-=iYQ@9eyh&hr zd$H&kKC<14`8$=nnj3jgDQazQ!7g+J-A&3mA;kajzF*BnrDJ@;Qyj?r- z#CsBY45AqgSNw|RB@2rb{G8Wh{)=*m3&V9c8nsr#<-vR~v9V{4!nQbUTC?QPDT#Q0{JvBS52pm{l)(m@44mdK*s;U(#n{j1%kh>`eO> zx@bch}V88G^8b5yf-nQPra?z@G?T^PwAIMP}1_mYGWi>Sf zxT4331vjEZ9L89cbEU%U_dMVD?Nd)-V;LeEhKA9uV?t<+ ze?F3Ddhap&!e(?!(w_YH4XNC0GeF88mcbPZfjvl(RRqc~@PLIx(YGx3AXlza+v z-=AGedg~x1BNP0=H$OjL@cw-2>tSq`5=hG;M{QGwXN3U_m&-ntdj&y@hy7vLm^ z9s65SUvK`qFPf?vmW>j(2er|5*8&|UF~)JdYfjlECCc*-4i576_T?^z&KvzX-@hY+ zs)9y?wm&*LdbRTSP?&DcN#b-m#8_GZ-gd48(L2fVB*xJfN#d#-*Qpm#?otGTA#c|)F;pZ^^^N0}$H8uplJNrAjU&m!^WJFof z`cJs+beP4@TO3|m&#C{b!rY?g6Eeed*x1;fw}*`)Vhu$_Oy(<~D9|XqNe;lF5-k$8 zUh4@h>8dlI@E>L_gnx-|0uS@nSuh`QKjncm1dygnYLrl>B7b3#DurQqe`3B%9@T{}^ z8fyMqsGdje1p zxYt3T*T3AE+lP_PpJwiP^3b$D^?NCkbweH>d{Z$t&i`U9nrBSi-orhQ-e>@NKg5`& z<-R2W3MsenM3(nnafyB0Kw`Cpkpd<8e*XB;_{c~vuucrQV;g>{PI(U+wQsg?1NgZm zhMPTJN(!F;;>-L`qD;=OeuIZ;)VI5ADT`jM2HV)$YF^CD&297%oBR;kP7i*nDoATf z^P5W$xD9GHPLU?5s}$bq zi2(25{!f8Z)B%Z&0A!7&Jafm6Ypb6bBD(WLa`=}k0TQRDr>jnaro3bz1AjX5zib7E zD^uv&A;OZShPyY_`ERIM44y%ErwXkP8ueI}VbE^VE)2%>c;{&2O5OI4k`6S<;%e0K zx&)kQqaZOiJ>2YTt1P(}nm35c6;7>vVyPIs`91uV<#SqEsa>lfJF9*TvQ;fF0ezKkE!wx=|DSz7Mzx+vvV`5d#~8Lqpx5JM43aX)Q|1`Q%!s^FX?JXGOi!n+DMtCo9lwcb4l6w%{z3rFF zi;2nq)mACV|9nezG+juuzD!@&#l__qMAB+6uEdYaj!UsunWCgRrO&{Jb!as2k0#Zt zvA}pZFO1l;dKT z6zol_h+mSDdQ3SbOJ|--NKk`}!R-Ltq|Bs~3PgK}YnI=IzUax1r%eYnBkJ1Pp}D!w zZR!n3uu#8z{knE{Ha-B_yC~qPD}R>p{&Txkv+o@hJ~Hs5`Y*!FnwO-0<8qyEqS5S|UBMCY?wiru8C_u-!>LdL_iEq3UQ7$PY-Dfru9^ z!ZleLlIiP`@Z1~-A{&^ht(}EPeW zJu=vg?9TUsZwez&yAC7>_<7mx)ZMNxd~ft z+E8I$a`+W8tvnZL6kePnXSJDASpjr;lZt-rnPCRUCro-VM9uk6!+ivUl@sV8BuU^- z$~5$#6G}w#_nL>quTk*q^W*FOnvv-mDi6@!Mj{)lzy(F zxM|wwp*h>C$SwkL|fwtS`eW%iAMZxST z@>NG+^uX;kTR{ky2bPNp(Tm2Cc-BOkXHk(AZo;1<%}+cDulLXJ_5`-PDR_wm^6 ztup)000xSwbjfZ#Xq>cNdEoDsw>X*kkkuQ4SAuAE-CCSuC%xRl%CCBuONP zb$!z^xn6D}>0cmEJe80*_?ArgijE3%2)XHNZ=%gOffe-bk4xa&AUSUTWFNrR&)u?aRjnoFyFN5 zi+A|wktC3=gPpfR7Mc3&yEu%}$Fid6jGJ>=<_VS7e8U1S+q(4v!ZB@lp?z2}QkeFv zVR|&FFwXL2sPoj{t^`(rxG=<`%IlWLafzO5qfxvoWJs5WAQ2>chJ5Xn|DmnDG%EpF z!^!7^AS&WqTCY#9mVd8dbPX~Ua6#EpQAW>Ix?(es6)U@&eN&8hTkFG-Tz(B|$S8#5Z@$8*}IG#uQYB=SsZwM*nuj=a5g zjvOpM!F?mn5NJ}cPq?Msch`y=0|<1?CP*v`k@}ZH8LHg_q0Ec**1d%=PhTIY#7P6OzRJt{P9pV&XELV>^s!w!$dt z*RMAKt`a>Rq=Vx`pwEf|<$bG3zt(DPGf_?c{rlp*yKriMlB14Wc92(sgMtv#L7NPL zg5$=AE`_g_H!dSW4Bcn6{X9L;HS)4EEf^V)S}j(&2}43CrfsoZ7*cVM!s&S*96lHQ{fMlGXFRP8n73 z;F4z3enc<}D=vE=R8McLX_F|9{O@FZ9!eSy)spkd8|%SP!5?%ptBswgC&$~8zN;$n z`RXhoe$<272*A$k^QNrksCQoIq>&#F7xI1m;KQi*63@73a99{B7;)jK2_GL{6Bum} zAf4Bvj@$)k=ijSK=k5Bzj8g4&X7%bDHwxq!%onTYQ)&YM0Q$NCAWv*x0ChC2g^_D* z6B7}wPvpoHm6!JcK<@zLQ8<5u^oMSGQojVJd{sZKAIKEiSn|pVN?KCKH^hn+arhG1v zj$<9`sI&^L6*c>B8|)AuKQqP1pFMj9fsU}ZVnIc-{IMZRuQY$bV=|U z)mcSFC2kx*ofuD^Y!(a)XW%3odou%E_JghM2^hWB08)btG4xyuonHNdh5lqu>0^(R z#ol7Dw|mk$A+=HpCp0%K$7@z@sLFImxY*+|3bn2tS zQe1m(csa72|5%kokMZsl?IZo~Yutke^rp9yRn{UGz9$%DmpXJ4vq6$+zG%960@907 z^}DssWEl|*o2tLf9EyzcQdzmge&WTtCu?Rw}C@$RDe zD(|y^P%;&S!dzKcY%KLH#Qej{o;9T5OG;9zV%GLCno4o0!R)EjuB4xzgKu;7P3um_ zWtpd+taS~ndURkE+nZFfGoz$#La88vczAL3j1c*aS0bJ?{Fp@3p zuytp<d12R@4;3&-e+J0SwX9rV4tS<8&f~k^0N8*qpjMsspaVBXI zw106ud_;R|n9AZMsKu!?5lbdjSG}$bw(?!=n$25`8aM)$zHfSAG^OpK`uWngLR+D*1}O-dvUAG)CL5!t1NW<~OCphm zq+0BI_-ys*)2Dbv`YOA5?%#(WNn+%Ge&bQVSgLHlF!=K23k^{eyz~3|_3IU^G5{OW zv=J*}TCK%F4>7{3DU^wPV7Va0s*W@&3qRJPm+ze}8_< zTS9NTI~~cHoY-5pFjZH_%?3Cm@H;6m14hf!S&e7L=o))jPE<@TEPMj++Eeg`oZntC zv9kWyEzFATe1KJw4m@m7KXw5G9L(GrV8VmH0qMYx4d+)G!p}Tb{5&fAmx|A$_wkZe zqT0|=MFj`-e`Q+jA_#T8`pg46#ST(5T@Ciuz{6AK|1m}SdV+MuH7A;Xpi4B49&JB? zUMhZ?)U>evp8Z5}v~+HB8*wO&&bPEREzgo6?P-H(^N*i@^aO0CD8mv~X1;4t3P$yR zbmcXz`)xYh#zcoetEq&gK)p;+C}2Z9ZR>V$L+i>Yxk$+na7ed8pG>ULZ&$~~Gg}SRN&)@MZ+{(Eq z%aNp#@1ELjlq`K`ZAhhFI0*S?VnXS%0DOa)6v7gPxINKVdmYK&)d40o}`PlUQfO# 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 z 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 literal 0 HcmV?d00001