{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"accelerator": "GPU",
"colab": {
"name": "US_changing_point.ipynb",
"provenance": [],
"collapsed_sections": [],
"toc_visible": true
},
"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.10"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "kqXl71t9suiG"
},
"source": [
"# Estimating the Date of COVID-19 Changes\n",
"\n",
"https://nbviewer.jupyter.org/github/jramkiss/jramkiss.github.io/blob/master/_posts/notebooks/covid19-changes.ipynb "
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "HomIs0U8a7OM"
},
"source": [
"https://www.nytimes.com/interactive/2020/us/covid-19-vaccine-doses.html\n"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "gFnvD8OysuiI",
"outputId": "12b90a28-6743-4382-8ce0-2e61e75c9e90"
},
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"\n",
"import seaborn as sns; sns.set()\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.dates as mdates\n",
"\n",
"\n",
"from sklearn.linear_model import LinearRegression\n",
"\n",
"from scipy import stats\n",
"import statsmodels.api as sm\n",
"import pylab\n",
"\n",
"# from google.colab import files\n",
"# from io import StringIO\n",
"# uploaded = files.upload()\n",
"\n",
"from io import BytesIO\n",
"from zipfile import ZipFile\n",
"import pandas\n",
"import requests\n",
"\n",
"\n",
"url = 'https://raw.githubusercontent.com/assemzh/ProbProg-COVID-19/master/us_total.csv'\n",
"\n",
"data = pd.read_csv(url)\n",
"\n",
"data.Date = pd.to_datetime(data.Date)\n",
"\n",
"# for fancy python printing\n",
"from IPython.display import Markdown, display\n",
"def printmd(string):\n",
" display(Markdown(string))\n",
" \n",
"import warnings\n",
"warnings.filterwarnings('ignore')\n",
"\n",
"import matplotlib as mpl\n",
"mpl.rcParams['figure.dpi'] = 250"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"/usr/local/lib/python3.7/dist-packages/statsmodels/tools/_testing.py:19: FutureWarning: pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.\n",
" import pandas.util.testing as tm\n"
],
"name": "stderr"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "hzvPpvVvphTD"
},
"source": [
"## Create country\n"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 419
},
"id": "Jcd9EqPddWNC",
"outputId": "3dfc1fe3-6ae5-4753-cc32-642905d85cb0"
},
"source": [
"data[\"Country/Region\"]='US'\n",
"data"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Date | \n",
" Confirmed | \n",
" Deaths | \n",
" Recovered | \n",
" Active | \n",
" New cases | \n",
" New deaths | \n",
" New recovered | \n",
" Country/Region | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 2020-03-22 | \n",
" 33918.0 | \n",
" 435.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 9836.0 | \n",
" 142.0 | \n",
" 0.0 | \n",
" US | \n",
"
\n",
" \n",
" 1 | \n",
" 2020-03-23 | \n",
" 43754.0 | \n",
" 577.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 10122.0 | \n",
" 140.0 | \n",
" 348.0 | \n",
" US | \n",
"
\n",
" \n",
" 2 | \n",
" 2020-03-24 | \n",
" 53876.0 | \n",
" 717.0 | \n",
" 348.0 | \n",
" 0.0 | \n",
" 12085.0 | \n",
" 239.0 | \n",
" 13.0 | \n",
" US | \n",
"
\n",
" \n",
" 3 | \n",
" 2020-03-25 | \n",
" 65961.0 | \n",
" 956.0 | \n",
" 361.0 | \n",
" 0.0 | \n",
" 18012.0 | \n",
" 269.0 | \n",
" 320.0 | \n",
" US | \n",
"
\n",
" \n",
" 4 | \n",
" 2020-03-26 | \n",
" 83973.0 | \n",
" 1225.0 | \n",
" 681.0 | \n",
" 0.0 | \n",
" 17894.0 | \n",
" 378.0 | \n",
" 188.0 | \n",
" US | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 349 | \n",
" 2021-03-06 | \n",
" 28952970.0 | \n",
" 524362.0 | \n",
" 0.0 | \n",
" 28429067.0 | \n",
" 40903.0 | \n",
" 671.0 | \n",
" 0.0 | \n",
" US | \n",
"
\n",
" \n",
" 350 | \n",
" 2021-03-07 | \n",
" 28993873.0 | \n",
" 525033.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 44758.0 | \n",
" 719.0 | \n",
" 0.0 | \n",
" US | \n",
"
\n",
" \n",
" 351 | \n",
" 2021-03-08 | \n",
" 29038631.0 | \n",
" 525752.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 57417.0 | \n",
" 1947.0 | \n",
" 0.0 | \n",
" US | \n",
"
\n",
" \n",
" 352 | \n",
" 2021-03-09 | \n",
" 29096048.0 | \n",
" 527699.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 57667.0 | \n",
" 1494.0 | \n",
" 0.0 | \n",
" US | \n",
"
\n",
" \n",
" 353 | \n",
" 2021-03-10 | \n",
" 29153715.0 | \n",
" 529193.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" US | \n",
"
\n",
" \n",
"
\n",
"
354 rows × 9 columns
\n",
"
"
],
"text/plain": [
" Date Confirmed Deaths ... New deaths New recovered Country/Region\n",
"0 2020-03-22 33918.0 435.0 ... 142.0 0.0 US\n",
"1 2020-03-23 43754.0 577.0 ... 140.0 348.0 US\n",
"2 2020-03-24 53876.0 717.0 ... 239.0 13.0 US\n",
"3 2020-03-25 65961.0 956.0 ... 269.0 320.0 US\n",
"4 2020-03-26 83973.0 1225.0 ... 378.0 188.0 US\n",
".. ... ... ... ... ... ... ...\n",
"349 2021-03-06 28952970.0 524362.0 ... 671.0 0.0 US\n",
"350 2021-03-07 28993873.0 525033.0 ... 719.0 0.0 US\n",
"351 2021-03-08 29038631.0 525752.0 ... 1947.0 0.0 US\n",
"352 2021-03-09 29096048.0 527699.0 ... 1494.0 0.0 US\n",
"353 2021-03-10 29153715.0 529193.0 ... NaN NaN US\n",
"\n",
"[354 rows x 9 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 2
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "koX5yGHrsuib"
},
"source": [
"# function to make the time series of confirmed and daily confirmed cases for a specific country\n",
"def create_country (country, end_date, state = False) : \n",
" if state :\n",
" df = data.loc[data[\"Province/State\"] == country, [\"Province/State\", \"Date\", \"Confirmed\", \"Deaths\", \"Recovered\"]]\n",
" else : \n",
" df = data.loc[data[\"Country/Region\"] == country, [\"Country/Region\", \"Date\", \"Confirmed\", \"Deaths\", \"Recovered\"]]\n",
" df.columns = [\"country\", \"date\", \"confirmed\", \"deaths\", \"recovered\"]\n",
"\n",
" # group by country and date, sum(confirmed, deaths, recovered). do this because countries have multiple cities \n",
" df = df.groupby(['country','date'])['confirmed', 'deaths', 'recovered'].sum().reset_index()\n",
"\n",
" # # convert date string to datetime\n",
" # std_dateparser = lambda x: str(x)[5:10]\n",
" # df.date = pd.to_datetime(df.date)\n",
" # df['date_only'] = df.date.apply(std_dateparser)\n",
" df = df.sort_values(by = \"date\")\n",
" df = df[df.date <= end_date]\n",
"\n",
" # make new confirmed cases every day:\n",
" cases_shifted = np.array([0] + list(df.confirmed[:-1]))\n",
" daily_confirmed = np.array(df.confirmed) - cases_shifted\n",
" df[\"daily_confirmed\"] = daily_confirmed \n",
"\n",
" fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(7, 6))\n",
" ax = [ax]\n",
" sns.lineplot(x = df.date, \n",
" y = df.daily_confirmed, \n",
" ax = ax[0])\n",
"\n",
" ax[0].set(ylabel='Daily Confirmed Cases')\n",
"\n",
" ax[0].axvline(pd.to_datetime('2020-12-14'), \n",
" linestyle = '--', linewidth = 1.5,\n",
" label = \"Start of Vaccination: Dec 14, 2020\" ,\n",
" color = \"red\") \n",
"\n",
" \n",
" ax[0].xaxis.get_label().set_fontsize(16)\n",
" ax[0].yaxis.get_label().set_fontsize(16)\n",
" ax[0].title.set_fontsize(20)\n",
" ax[0].tick_params(labelsize=16)\n",
" myFmt = mdates.DateFormatter('%b %-d')\n",
" ax[0].xaxis.set_major_formatter(myFmt)\n",
"\n",
" ax[0].set(ylabel='Daily Confirmed Cases', xlabel='');\n",
" ax[0].legend(loc = \"bottom right\", fontsize=12.8)\n",
" sns.set_style(\"ticks\")\n",
" plt.tight_layout()\n",
" sns.despine()\n",
"\n",
" plt.savefig('/content/sample_data/us_daily.pdf')\n",
" print(df.tail())\n",
" return df\n",
"\n",
"\n",
"def summary(samples):\n",
" site_stats = {}\n",
" for k, v in samples.items():\n",
" site_stats[k] = {\n",
" \"mean\": torch.mean(v, 0),\n",
" \"std\": torch.std(v, 0),\n",
" \"5%\": v.kthvalue(int(len(v) * 0.05), dim=0)[0],\n",
" \"95%\": v.kthvalue(int(len(v) * 0.95), dim=0)[0],\n",
" }\n",
" return site_stats"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 543
},
"id": "w_A0fd4Zsuiw",
"outputId": "1ad8a9f2-4689-4062-911f-cd657413cba8"
},
"source": [
"cad = create_country(\"US\", end_date = \"2021-03-10\")"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
" country date confirmed deaths recovered daily_confirmed\n",
"349 US 2021-03-06 28952970.0 524362.0 0.0 58062.0\n",
"350 US 2021-03-07 28993873.0 525033.0 0.0 40903.0\n",
"351 US 2021-03-08 29038631.0 525752.0 0.0 44758.0\n",
"352 US 2021-03-09 29096048.0 527699.0 0.0 57417.0\n",
"353 US 2021-03-10 29153715.0 529193.0 0.0 57667.0\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "DnUbQCQXP_eZ"
},
"source": [
"https://www.dw.com/en/israels-clever-coronavirus-vaccination-strategy/a-56586888#:~:text=To%20date%2C%20Israel%20has%20administered,40%25%20of%20the%20country's%20population."
]
},
{
"cell_type": "code",
"metadata": {
"id": "UR0BM7TysujG"
},
"source": [
"cad_start = \"2020-11-01\" # 13 confirmed cases\n",
"cad = cad[cad.date >= cad_start].reset_index(drop = True)\n",
"cad[\"days_since_start\"] = np.arange(cad.shape[0]) + 1"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 204
},
"id": "bG8_D398bqPR",
"outputId": "ea94aecf-bede-4bf5-d2b9-2c4b4d0ef47d"
},
"source": [
"cad.head()"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" country | \n",
" date | \n",
" confirmed | \n",
" deaths | \n",
" recovered | \n",
" daily_confirmed | \n",
" days_since_start | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" US | \n",
" 2020-11-01 | \n",
" 9291068.0 | \n",
" 231776.0 | \n",
" 3630579.0 | \n",
" 104899.0 | \n",
" 1 | \n",
"
\n",
" \n",
" 1 | \n",
" US | \n",
" 2020-11-02 | \n",
" 9376816.0 | \n",
" 232312.0 | \n",
" 3674981.0 | \n",
" 85748.0 | \n",
" 2 | \n",
"
\n",
" \n",
" 2 | \n",
" US | \n",
" 2020-11-03 | \n",
" 9504162.0 | \n",
" 233905.0 | \n",
" 3705130.0 | \n",
" 127346.0 | \n",
" 3 | \n",
"
\n",
" \n",
" 3 | \n",
" US | \n",
" 2020-11-04 | \n",
" 9607933.0 | \n",
" 235055.0 | \n",
" 3743527.0 | \n",
" 103771.0 | \n",
" 4 | \n",
"
\n",
" \n",
" 4 | \n",
" US | \n",
" 2020-11-05 | \n",
" 9737135.0 | \n",
" 236217.0 | \n",
" 3781751.0 | \n",
" 129202.0 | \n",
" 5 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" country date confirmed ... recovered daily_confirmed days_since_start\n",
"0 US 2020-11-01 9291068.0 ... 3630579.0 104899.0 1\n",
"1 US 2020-11-02 9376816.0 ... 3674981.0 85748.0 2\n",
"2 US 2020-11-03 9504162.0 ... 3705130.0 127346.0 3\n",
"3 US 2020-11-04 9607933.0 ... 3743527.0 103771.0 4\n",
"4 US 2020-11-05 9737135.0 ... 3781751.0 129202.0 5\n",
"\n",
"[5 rows x 7 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 11
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "OaTHo6I2sujp",
"outputId": "4280c88b-751b-4ff2-c087-7d6700608a19"
},
"source": [
"cad.shape\n",
"cad_tmp = cad\n",
"cad_tmp.shape"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(130, 7)"
]
},
"metadata": {
"tags": []
},
"execution_count": 12
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "loi3CtjSsuoz"
},
"source": [
"## Data for Regression"
]
},
{
"cell_type": "code",
"metadata": {
"id": "Os_M7r4Tsuo4"
},
"source": [
"# variable for data to easily swap it out:\n",
"country_ = \"US\"\n",
"reg_data = cad_tmp.copy()"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 204
},
"id": "3RjDFEbA91X-",
"outputId": "8dae4943-24fa-4f62-f75c-f7d7ff7bf86a"
},
"source": [
"reg_data.head()"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" country | \n",
" date | \n",
" confirmed | \n",
" deaths | \n",
" recovered | \n",
" daily_confirmed | \n",
" days_since_start | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" US | \n",
" 2020-11-01 | \n",
" 9291068.0 | \n",
" 231776.0 | \n",
" 3630579.0 | \n",
" 104899.0 | \n",
" 1 | \n",
"
\n",
" \n",
" 1 | \n",
" US | \n",
" 2020-11-02 | \n",
" 9376816.0 | \n",
" 232312.0 | \n",
" 3674981.0 | \n",
" 85748.0 | \n",
" 2 | \n",
"
\n",
" \n",
" 2 | \n",
" US | \n",
" 2020-11-03 | \n",
" 9504162.0 | \n",
" 233905.0 | \n",
" 3705130.0 | \n",
" 127346.0 | \n",
" 3 | \n",
"
\n",
" \n",
" 3 | \n",
" US | \n",
" 2020-11-04 | \n",
" 9607933.0 | \n",
" 235055.0 | \n",
" 3743527.0 | \n",
" 103771.0 | \n",
" 4 | \n",
"
\n",
" \n",
" 4 | \n",
" US | \n",
" 2020-11-05 | \n",
" 9737135.0 | \n",
" 236217.0 | \n",
" 3781751.0 | \n",
" 129202.0 | \n",
" 5 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" country date confirmed ... recovered daily_confirmed days_since_start\n",
"0 US 2020-11-01 9291068.0 ... 3630579.0 104899.0 1\n",
"1 US 2020-11-02 9376816.0 ... 3674981.0 85748.0 2\n",
"2 US 2020-11-03 9504162.0 ... 3705130.0 127346.0 3\n",
"3 US 2020-11-04 9607933.0 ... 3743527.0 103771.0 4\n",
"4 US 2020-11-05 9737135.0 ... 3781751.0 129202.0 5\n",
"\n",
"[5 rows x 7 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 14
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "j_hdR3EG12jx",
"outputId": "f3f620fd-9d80-47dc-e5c2-c33599e71f72"
},
"source": [
"reg_data.shape"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(130, 7)"
]
},
"metadata": {
"tags": []
},
"execution_count": 15
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "JkO0Z8M0supC"
},
"source": [
"## Change Point Estimation in Pyro"
]
},
{
"cell_type": "code",
"metadata": {
"id": "aIUed4Ny3-oq",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "b13b8a8d-7689-4263-f806-eb05f75a316c"
},
"source": [
"!pip install pyro-ppl\n",
"!pip install numpyro\n"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Collecting pyro-ppl\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/aa/7a/fbab572fd385154a0c07b0fa138683aa52e14603bb83d37b198e5f9269b1/pyro_ppl-1.6.0-py3-none-any.whl (634kB)\n",
"\u001b[K |████████████████████████████████| 634kB 4.3MB/s \n",
"\u001b[?25hRequirement already satisfied: opt-einsum>=2.3.2 in /usr/local/lib/python3.7/dist-packages (from pyro-ppl) (3.3.0)\n",
"Requirement already satisfied: torch>=1.8.0 in /usr/local/lib/python3.7/dist-packages (from pyro-ppl) (1.8.1+cu101)\n",
"Requirement already satisfied: numpy>=1.7 in /usr/local/lib/python3.7/dist-packages (from pyro-ppl) (1.19.5)\n",
"Collecting pyro-api>=0.1.1\n",
" Downloading https://files.pythonhosted.org/packages/fc/81/957ae78e6398460a7230b0eb9b8f1cb954c5e913e868e48d89324c68cec7/pyro_api-0.1.2-py3-none-any.whl\n",
"Requirement already satisfied: tqdm>=4.36 in /usr/local/lib/python3.7/dist-packages (from pyro-ppl) (4.41.1)\n",
"Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from torch>=1.8.0->pyro-ppl) (3.7.4.3)\n",
"Installing collected packages: pyro-api, pyro-ppl\n",
"Successfully installed pyro-api-0.1.2 pyro-ppl-1.6.0\n",
"Collecting numpyro\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/00/a6/064eedcec968207259acf06cf156c0ea9a6534328bdf7da0e768cfdb3239/numpyro-0.6.0-py3-none-any.whl (218kB)\n",
"\u001b[K |████████████████████████████████| 225kB 5.4MB/s \n",
"\u001b[?25hCollecting jax==0.2.10\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/88/9d/2862825b5eddd0df64c78b22cc0b897f0128b1c6494bf39e4849e9e0fade/jax-0.2.10.tar.gz (589kB)\n",
"\u001b[K |████████████████████████████████| 593kB 7.1MB/s \n",
"\u001b[?25hRequirement already satisfied: tqdm in /usr/local/lib/python3.7/dist-packages (from numpyro) (4.41.1)\n",
"Collecting jaxlib==0.1.62\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/7e/75/30f1c643b7edb1309b6d748809042241737fe43127cb41754266eca79250/jaxlib-0.1.62-cp37-none-manylinux2010_x86_64.whl (35.7MB)\n",
"\u001b[K |████████████████████████████████| 35.7MB 98kB/s \n",
"\u001b[?25hRequirement already satisfied: numpy>=1.12 in /usr/local/lib/python3.7/dist-packages (from jax==0.2.10->numpyro) (1.19.5)\n",
"Requirement already satisfied: absl-py in /usr/local/lib/python3.7/dist-packages (from jax==0.2.10->numpyro) (0.12.0)\n",
"Requirement already satisfied: opt_einsum in /usr/local/lib/python3.7/dist-packages (from jax==0.2.10->numpyro) (3.3.0)\n",
"Requirement already satisfied: flatbuffers in /usr/local/lib/python3.7/dist-packages (from jaxlib==0.1.62->numpyro) (1.12)\n",
"Requirement already satisfied: scipy in /usr/local/lib/python3.7/dist-packages (from jaxlib==0.1.62->numpyro) (1.4.1)\n",
"Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from absl-py->jax==0.2.10->numpyro) (1.15.0)\n",
"Building wheels for collected packages: jax\n",
" Building wheel for jax (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for jax: filename=jax-0.2.10-cp37-none-any.whl size=679776 sha256=122fccd699209761ec50b95c9b10d0797db69830a250ca111d80d085f5371673\n",
" Stored in directory: /root/.cache/pip/wheels/44/ea/ac/3be3bc19ee3b62f6fe1561eb6df1199284bb6bab819c1befa4\n",
"Successfully built jax\n",
"Installing collected packages: jax, jaxlib, numpyro\n",
" Found existing installation: jax 0.2.12\n",
" Uninstalling jax-0.2.12:\n",
" Successfully uninstalled jax-0.2.12\n",
" Found existing installation: jaxlib 0.1.65+cuda110\n",
" Uninstalling jaxlib-0.1.65+cuda110:\n",
" Successfully uninstalled jaxlib-0.1.65+cuda110\n",
"Successfully installed jax-0.2.10 jaxlib-0.1.62 numpyro-0.6.0\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "3ZS9fTPxsupD"
},
"source": [
"import torch\n",
"\n",
"import pyro\n",
"import pyro.distributions as dist\n",
"from torch import nn\n",
"from pyro.nn import PyroModule, PyroSample\n",
"\n",
"from pyro.infer import MCMC, NUTS, HMC\n",
"from pyro.infer.autoguide import AutoGuide, AutoDiagonalNormal\n",
"\n",
"from pyro.infer import SVI, Trace_ELBO\n",
"from pyro.infer import Predictive"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "9gPrEaEJsupP"
},
"source": [
"# we should be able to have an empirical estimate for the mean of the prior for the 2nd regression bias term\n",
"# this will be something like b = log(max(daily_confirmed))\n",
"\n",
"# might be able to have 1 regression model but change the data so that we have new terms for (tau < t) \n",
"# like an interaction term\n",
"\n",
"class COVID_change(PyroModule):\n",
" def __init__(self, in_features, out_features, b1_mu, b2_mu):\n",
" super().__init__()\n",
" self.linear1 = PyroModule[nn.Linear](in_features, out_features, bias = False)\n",
" self.linear1.weight = PyroSample(dist.Normal(0.5, 0.25).expand([1, 1]).to_event(1))\n",
" self.linear1.bias = PyroSample(dist.Normal(b1_mu, 1.))\n",
" \n",
" # could possibly have stronger priors for the 2nd regression line, because we wont have as much data\n",
" self.linear2 = PyroModule[nn.Linear](in_features, out_features, bias = False)\n",
" self.linear2.weight = PyroSample(dist.Normal(0., 0.25).expand([1, 1])) #.to_event(1))\n",
" self.linear2.bias = PyroSample(dist.Normal(b2_mu, b2_mu/4))\n",
"\n",
" def forward(self, x, y=None):\n",
" tau = pyro.sample(\"tau\", dist.Beta(4, 3))\n",
" sigma = pyro.sample(\"sigma\", dist.Uniform(0., 3.))\n",
" # fit lm's to data based on tau\n",
" sep = int(np.ceil(tau.detach().numpy() * len(x)))\n",
" mean1 = self.linear1(x[:sep]).squeeze(-1)\n",
" mean2 = self.linear2(x[sep:]).squeeze(-1)\n",
" mean = torch.cat((mean1, mean2))\n",
" obs = pyro.sample(\"obs\", dist.StudentT(2, mean, sigma), obs=y)\n",
" return mean"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "if0toOMysupU",
"outputId": "e7cbd010-8daa-4e9d-e87f-499a454084db"
},
"source": [
"tensor_data = torch.tensor(reg_data[[\"confirmed\", \"days_since_start\", \"daily_confirmed\"]].values, dtype=torch.float)\n",
"x_data = tensor_data[:, 1].unsqueeze_(1)\n",
"y_data = np.log(tensor_data[:, 0])\n",
"y_data_daily = np.log(tensor_data[:, 2])\n",
"# prior hyper params\n",
"# take log of the average of the 1st quartile to get the prior mean for the bias of the 2nd regression line\n",
"q1 = np.quantile(y_data, q = 0.25)\n",
"bias_1_mean = np.mean(y_data.numpy()[y_data <= q1])\n",
"print(\"Prior mean for Bias 1: \", bias_1_mean)\n",
"\n",
"# take log of the average of the 4th quartile to get the prior mean for the bias of the 2nd regression line\n",
"q4 = np.quantile(y_data, q = 0.75)\n",
"bias_2_mean = np.mean(y_data.numpy()[y_data >= q4])\n",
"print(\"Prior mean for Bias 2: \", bias_2_mean)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Prior mean for Bias 1: 16.255508\n",
"Prior mean for Bias 2: 17.152462\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "nrm8RrFasupc"
},
"source": [
"## Approximate Inference with Stochastic Variational Inference"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "x0nDLSPisupm"
},
"source": [
"# HMC with NUTS"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "X1rSXXtKsupm",
"outputId": "24f82d77-a4c8-429a-820c-7863a7e056ff"
},
"source": [
"model = COVID_change(1, 1, \n",
" b1_mu = bias_1_mean,\n",
" b2_mu = bias_2_mean)\n",
"# need more than 400 samples/chain if we want to use a flat prior on b_2 and w_2\n",
"num_samples = 400 \n",
"# mcmc \n",
"nuts_kernel = NUTS(model)\n",
"mcmc = MCMC(nuts_kernel, \n",
" num_samples=num_samples,\n",
" warmup_steps = 200, \n",
" num_chains = 1)\n",
"mcmc.run(x_data, y_data)\n",
"samples = mcmc.get_samples()"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Sample: 100%|██████████| 600/600 [20:17, 2.03s/it, step size=1.81e-04, acc. prob=0.898]\n"
],
"name": "stderr"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "mLx_GE-7jb63"
},
"source": [
"# Save the model:\n",
"import dill\n",
"# with open('us.pkl', 'wb') as f:\n",
"# \tdill.dump(mcmc, f)\n",
"with open('us.pkl', 'rb') as f:\n",
"\tmcmc = dill.load(f)\n",
" \n",
"samples = mcmc.get_samples()"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "7Z968a5xsupv",
"outputId": "f58a15ac-76c3-4667-aa83-d0fb0bbe1dfa"
},
"source": [
"# extract individual posteriors\n",
"weight_1_post = samples[\"linear1.weight\"].detach().numpy()\n",
"weight_2_post = samples[\"linear2.weight\"].detach().numpy()\n",
"bias_1_post = samples[\"linear1.bias\"].detach().numpy()\n",
"bias_2_post = samples[\"linear2.bias\"].detach().numpy()\n",
"tau_post = samples[\"tau\"].detach().numpy()\n",
"sigma_post = samples[\"sigma\"].detach().numpy()\n",
"\n",
"# build likelihood distribution:\n",
"tau_days = list(map(int, np.ceil(tau_post * len(x_data))))\n",
"mean_ = torch.zeros(len(tau_days), len(x_data))\n",
"obs_ = torch.zeros(len(tau_days), len(x_data))\n",
"for i in range(len(tau_days)) : \n",
" mean_[i, :] = torch.cat((x_data[:tau_days[i]] * weight_1_post[i] + bias_1_post[i],\n",
" x_data[tau_days[i]:] * weight_2_post[i] + bias_2_post[i])).reshape(len(x_data))\n",
" obs_[i, :] = dist.Normal(mean_[i, :], sigma_post[i]).sample()\n",
"samples[\"_RETURN\"] = mean_\n",
"samples[\"obs\"] = obs_\n",
"pred_summary = summary(samples)\n",
"mu = pred_summary[\"_RETURN\"] # mean\n",
"y = pred_summary[\"obs\"] # samples from likelihood: mu + sigma\n",
"y_shift = np.exp(y[\"mean\"]) - np.exp(torch.cat((y[\"mean\"][0:1], y[\"mean\"][:-1])))\n",
"print(y_shift)\n",
"predictions = pd.DataFrame({\n",
" \"days_since_start\": x_data[:, 0],\n",
" \"mu_mean\": mu[\"mean\"], # mean of likelihood\n",
" \"mu_perc_5\": mu[\"5%\"],\n",
" \"mu_perc_95\": mu[\"95%\"],\n",
" \"y_mean\": y[\"mean\"], # mean of likelihood + noise\n",
" \"y_perc_5\": y[\"5%\"],\n",
" \"y_perc_95\": y[\"95%\"],\n",
" \"true_confirmed\": y_data,\n",
" \"true_daily_confirmed\": y_data_daily,\n",
" \"y_daily_mean\": y_shift\n",
"})\n",
"\n",
"w1_ = pred_summary[\"linear1.weight\"]\n",
"w2_ = pred_summary[\"linear2.weight\"]\n",
"\n",
"b1_ = pred_summary[\"linear1.bias\"]\n",
"b2_ = pred_summary[\"linear2.bias\"]\n",
"\n",
"tau_ = pred_summary[\"tau\"]\n",
"sigma_ = pred_summary[\"sigma\"]\n",
"\n",
"ind = int(np.ceil(tau_[\"mean\"] * len(x_data)))"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"tensor([ 0., 123758., 107474., 143517., 139824., 111102., 117757., 137822.,\n",
" 119536., 136832., 141099., 125632., 175256., 113747., 119790., 164404.,\n",
" 142176., 151333., 157725., 127663., 160600., 153363., 152496., 178360.,\n",
" 128725., 172123., 178194., 148925., 201997., 154104., 196959., 157244.,\n",
" 172678., 197221., 160619., 200865., 142596., 213519., 195834., 187626.,\n",
" 185048., 212983., 186515., 217653., 201873., 221126., 184906., 212976.,\n",
" 253842., 221686., 211416., 246752., 218192., 241416., 244118., 237014.,\n",
" 196282., 281720., 252228., 231080., 246670., 251356., 250950., 276856.,\n",
" 223894., 295550., 289356., 285614., 251826., 293064., 261672., 343500.,\n",
" 267660., 278670., 377790., 217006., 275918., 182914., 169854., 108930.,\n",
" 89022., 93620., 105324., 105762., 90956., 95094., 80826., 53410.,\n",
" 121902., 12100., 101208., 46104., 102032., 127176., 65978., 119180.,\n",
" 67914., 65600., 108964., 58170., 135956., 101606., 106796., 103274.,\n",
" 36088., 135646., 13788., 100968., 68676., 110404., 152796., 79136.,\n",
" 36322., 170090., 70698., 113806., 81500., 60522., 133360., 127798.,\n",
" 83650., 146232., 28538., 130194., 33138., 123618., 120502., 108912.,\n",
" 106778., 96290.])\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "KegzMbLOsuqC"
},
"source": [
"## Model Diagnostics\n",
"\n",
"- Residual plots: Should these be samples from the likelihood compared with the actual data? Or just the mean of the likelihood?\n",
"- $\\hat{R}$: The factor that the scale of the current distribution will be reduced by if we were to run the simulations forever. As n tends to $\\inf$, $\\hat{R}$ tends to 1. So we want values close to 1.\n",
"- Mixing and Stationarity: I sampled 4 chains. Do I then take these chains, split them in half and plot them. If they converge to the same stationary distribution, does that mean the MCMC converged? What do I do with more sampled chains?"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "QUh6fBjtsuqV",
"outputId": "a6254d33-4497-40bf-f1a8-1379025ee42b"
},
"source": [
"mcmc.summary()\n",
"diag = mcmc.diagnostics()"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"\n",
" mean std median 5.0% 95.0% n_eff r_hat\n",
" tau 0.60 0.03 0.59 0.55 0.64 5.89 1.31\n",
" sigma 0.02 0.00 0.02 0.01 0.03 2.75 2.24\n",
"linear1.weight[0,0] 0.01 0.00 0.01 0.01 0.01 5.15 1.57\n",
" linear1.bias 16.05 0.01 16.05 16.03 16.06 5.46 1.59\n",
"linear2.weight[0,0] 0.00 0.00 0.00 0.00 0.00 16.96 1.05\n",
" linear2.bias 16.76 0.03 16.76 16.72 16.81 15.75 1.06\n",
"\n",
"Number of divergences: 0\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "LJ2a6Epnsuqf"
},
"source": [
"## Posterior Plots"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 331
},
"id": "bPpET7b6suqg",
"outputId": "9ab32058-e6a0-40a1-be7e-d5c60238821b"
},
"source": [
"print(ind)\n",
"print(reg_data.date[ind])\n",
"\n",
"sns.distplot(weight_1_post, \n",
" kde_kws = {\"label\": \"Weight posterior before CP\"}, \n",
" color = \"red\",\n",
" norm_hist = True,\n",
" kde = True)\n",
"plt.axvline(x = w1_[\"mean\"], linestyle = '--',label = \"Mean weight before CP\" ,\n",
" color = \"red\")\n",
"\n",
"sns.distplot(weight_2_post, \n",
" kde_kws = {\"label\": \"Weight posterior after CP\"}, \n",
" color = \"teal\",\n",
" norm_hist = True,\n",
" kde = True)\n",
"plt.axvline(x = w2_[\"mean\"], linestyle = '--',label = \"Mean weight after CP\" ,\n",
" color = \"teal\")\n",
"\n",
"legend = plt.legend(loc='upper right')\n",
"legend.get_frame().set_alpha(0.7)\n",
"sns.set_style(\"ticks\")\n",
"plt.tight_layout()\n",
"sns.despine()\n",
"plt.savefig('/content/sample_data/us_weights.pdf')\n"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"78\n",
"2021-01-18 00:00:00\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"