Skip to content

Instantly share code, notes, and snippets.

@aseyboldt
Last active December 20, 2018 14:35
Show Gist options
  • Save aseyboldt/f19817ebd265dab2c5b18e3725b89dbd to your computer and use it in GitHub Desktop.
Save aseyboldt/f19817ebd265dab2c5b18e3725b89dbd to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import arviz\n",
"import pydream.parameters\n",
"import pydream.core\n",
"import seaborn as sns\n",
"import numpy as np\n",
"from scipy import stats"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def run_dream(params, logp, start, chains, indep_chains=False):\n",
" n_runs = chains if indep_chains else 1\n",
" runs = []\n",
" for _ in range(n_runs):\n",
" trace, logp_vals = pydream.core.run_dream(\n",
" params, logp, verbose=False, nchains=chains, start=start)\n",
" \n",
" if indep_chains:\n",
" trace = [trace[0]]\n",
" runs.extend(trace)\n",
"\n",
" trace = np.array(runs).transpose(2, 0, 1)\n",
" trace = {'param%02i' % i: trace[i] for i in range(n_params)}\n",
" return arviz.dict_to_dataset(trace)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"n_params = 3\n",
"\n",
"params = [\n",
" pydream.parameters.FlatParam(test_value=np.random.randn(n_params))\n",
"]\n",
"\n",
"def logp(values):\n",
" return stats.norm(loc=2, scale=np.arange(n_params) + 1).logpdf(values).sum()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Warning: start position provided but random_start set to True. Overrode random_start value and starting walk at provided start position.\n",
"Saving history to file: 2018_12_20_15:10:00_DREAM_chain_history.npy\n",
"Saving fitted crossover values: [3.9624809522319674e-25, 2.222875345025927e-25, 1.0] to file: 2018_12_20_15:10:00_DREAM_chain_adapted_crossoverprob.npy\n",
"Saving fitted gamma level values: [1.0] to file: 2018_12_20_15:10:00_DREAM_chain_adapted_gammalevelprob.npy\n"
]
}
],
"source": [
"n_chains = 5\n",
"\n",
"start = list(np.random.randn(n_chains, n_params))\n",
"trace_dep = run_dream(\n",
" params, logp, start, n_chains, indep_chains=False)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<xarray.Dataset>\n",
"Dimensions: ()\n",
"Data variables:\n",
" param00 float64 1.018\n",
" param01 float64 2.032\n",
" param02 float64 3.026"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"trace_dep.std()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"n_params = 3\n",
"\n",
"params = [\n",
" pydream.parameters.SampledParam(\n",
" stats.norm, loc=2, scale=i + 1)\n",
" for i in range(n_params)\n",
"]\n",
"\n",
"def logp(values):\n",
" return 0."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Warning: start position provided but random_start set to True. Overrode random_start value and starting walk at provided start position.\n",
"Saving history to file: 2018_12_20_15:11:13_DREAM_chain_history.npy\n",
"Saving fitted crossover values: [2.6572605913009755e-25, 9.265460481643886e-27, 1.0] to file: 2018_12_20_15:11:13_DREAM_chain_adapted_crossoverprob.npy\n",
"Saving fitted gamma level values: [1.0] to file: 2018_12_20_15:11:13_DREAM_chain_adapted_gammalevelprob.npy\n"
]
}
],
"source": [
"n_chains = 5\n",
"\n",
"start = list(np.random.randn(n_chains, n_params))\n",
"trace_dep = run_dream(\n",
" params, logp, start, n_chains, indep_chains=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is wrong:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<xarray.Dataset>\n",
"Dimensions: ()\n",
"Data variables:\n",
" param00 float64 3.057\n",
" param01 float64 3.063\n",
" param02 float64 3.066"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"trace_dep.std()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7f07595e45f8>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x7f07595ae588>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x7f07595569e8>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x7f07594ffb70>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x7f075952cf60>]],\n",
" dtype=object)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1490.4x662.4 with 6 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"arviz.plot_autocorr(trace_dep, var_names=['param00'], max_lag=1000)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"n_params = 50\n",
"\n",
"params = [\n",
" pydream.parameters.FlatParam(test_value=np.random.randn(n_params))\n",
"]\n",
"\n",
"def logp(values):\n",
" return stats.norm(loc=2, scale=np.arange(n_params) + 1).logpdf(values).sum()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Warning: start position provided but random_start set to True. Overrode random_start value and starting walk at provided start position.\n",
"Saving history to file: 2018_12_20_15:16:12_DREAM_chain_history.npy\n",
"Saving fitted crossover values: [6.441617174942065e-24, 2.5649342664106558e-23, 1.0] to file: 2018_12_20_15:16:12_DREAM_chain_adapted_crossoverprob.npy\n",
"Saving fitted gamma level values: [1.0] to file: 2018_12_20_15:16:12_DREAM_chain_adapted_gammalevelprob.npy\n",
"Warning: start position provided but random_start set to True. Overrode random_start value and starting walk at provided start position.\n",
"Saving history to file: 2018_12_20_15:17:48_DREAM_chain_history.npy\n",
"Saving fitted crossover values: [6.0350877186320855e-24, 2.7082092489873934e-23, 1.0] to file: 2018_12_20_15:17:48_DREAM_chain_adapted_crossoverprob.npy\n",
"Saving fitted gamma level values: [1.0] to file: 2018_12_20_15:17:48_DREAM_chain_adapted_gammalevelprob.npy\n",
"Warning: start position provided but random_start set to True. Overrode random_start value and starting walk at provided start position.\n",
"Saving history to file: 2018_12_20_15:19:24_DREAM_chain_history.npy\n",
"Saving fitted crossover values: [4.896376335542605e-24, 0.5629739588870786, 0.4370260411129213] to file: 2018_12_20_15:19:24_DREAM_chain_adapted_crossoverprob.npy\n",
"Saving fitted gamma level values: [1.0] to file: 2018_12_20_15:19:24_DREAM_chain_adapted_gammalevelprob.npy\n",
"Warning: start position provided but random_start set to True. Overrode random_start value and starting walk at provided start position.\n",
"Saving history to file: 2018_12_20_15:21:01_DREAM_chain_history.npy\n",
"Saving fitted crossover values: [3.775230727910845e-24, 0.5667254060131128, 0.43327459398688706] to file: 2018_12_20_15:21:01_DREAM_chain_adapted_crossoverprob.npy\n",
"Saving fitted gamma level values: [1.0] to file: 2018_12_20_15:21:01_DREAM_chain_adapted_gammalevelprob.npy\n",
"Warning: start position provided but random_start set to True. Overrode random_start value and starting walk at provided start position.\n",
"Saving history to file: 2018_12_20_15:22:37_DREAM_chain_history.npy\n",
"Saving fitted crossover values: [6.0006934922900385e-24, 1.635833840461225e-23, 1.0] to file: 2018_12_20_15:22:37_DREAM_chain_adapted_crossoverprob.npy\n",
"Saving fitted gamma level values: [1.0] to file: 2018_12_20_15:22:37_DREAM_chain_adapted_gammalevelprob.npy\n",
"Warning: start position provided but random_start set to True. Overrode random_start value and starting walk at provided start position.\n",
"Saving history to file: 2018_12_20_15:24:14_DREAM_chain_history.npy\n",
"Saving fitted crossover values: [4.631626960320875e-24, 0.5619354230780411, 0.438064576921959] to file: 2018_12_20_15:24:14_DREAM_chain_adapted_crossoverprob.npy\n",
"Saving fitted gamma level values: [1.0] to file: 2018_12_20_15:24:14_DREAM_chain_adapted_gammalevelprob.npy\n"
]
}
],
"source": [
"n_chains = 5\n",
"\n",
"start = list(np.random.randn(n_chains, n_params))\n",
"trace_dep = run_dream(\n",
" params, logp, start, n_chains, indep_chains=False)\n",
"trace_indep = run_dream(\n",
" params, logp, start, n_chains, indep_chains=True)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<xarray.Dataset>\n",
"Dimensions: ()\n",
"Data variables:\n",
" param00 float64 1.0\n",
" param01 float64 1.0\n",
" param02 float64 1.0\n",
" param03 float64 1.0\n",
" param04 float64 1.0\n",
" param05 float64 1.0\n",
" param06 float64 1.0\n",
" param07 float64 1.01\n",
" param08 float64 1.0\n",
" param09 float64 1.0\n",
" param10 float64 1.0\n",
" param11 float64 1.0\n",
" param12 float64 1.0\n",
" param13 float64 1.0\n",
" param14 float64 1.0\n",
" param15 float64 1.0\n",
" param16 float64 1.0\n",
" param17 float64 1.0\n",
" param18 float64 1.01\n",
" param19 float64 1.0\n",
" param20 float64 1.0\n",
" param21 float64 1.0\n",
" param22 float64 1.0\n",
" param23 float64 1.0\n",
" param24 float64 1.01\n",
" param25 float64 1.0\n",
" param26 float64 1.01\n",
" param27 float64 1.0\n",
" param28 float64 1.0\n",
" param29 float64 1.0\n",
" param30 float64 1.0\n",
" param31 float64 1.0\n",
" param32 float64 1.0\n",
" param33 float64 1.01\n",
" param34 float64 1.0\n",
" param35 float64 1.0\n",
" param36 float64 1.0\n",
" param37 float64 1.01\n",
" param38 float64 1.0\n",
" param39 float64 1.0\n",
" param40 float64 1.0\n",
" param41 float64 1.0\n",
" param42 float64 1.0\n",
" param43 float64 1.0\n",
" param44 float64 1.0\n",
" param45 float64 1.01\n",
" param46 float64 1.0\n",
" param47 float64 1.0\n",
" param48 float64 1.0\n",
" param49 float64 1.0"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"arviz.gelman_rubin(trace_indep)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<xarray.Dataset>\n",
"Dimensions: ()\n",
"Data variables:\n",
" param00 float64 2.179e+03\n",
" param01 float64 1.679e+03\n",
" param02 float64 1.506e+03\n",
" param03 float64 1.459e+03\n",
" param04 float64 1.363e+03\n",
" param05 float64 1.177e+03\n",
" param06 float64 1.32e+03\n",
" param07 float64 1.109e+03\n",
" param08 float64 1.26e+03\n",
" param09 float64 1.196e+03\n",
" param10 float64 1.309e+03\n",
" param11 float64 1.22e+03\n",
" param12 float64 935.0\n",
" param13 float64 1.138e+03\n",
" param14 float64 1.138e+03\n",
" param15 float64 1.155e+03\n",
" param16 float64 1.19e+03\n",
" param17 float64 1.225e+03\n",
" param18 float64 665.0\n",
" param19 float64 1.097e+03\n",
" param20 float64 908.0\n",
" param21 float64 879.0\n",
" param22 float64 1.05e+03\n",
" param23 float64 1.119e+03\n",
" param24 float64 947.0\n",
" param25 float64 955.0\n",
" param26 float64 964.0\n",
" param27 float64 1.209e+03\n",
" param28 float64 1.063e+03\n",
" param29 float64 1.13e+03\n",
" param30 float64 983.0\n",
" param31 float64 891.0\n",
" param32 float64 910.0\n",
" param33 float64 1.023e+03\n",
" param34 float64 1.053e+03\n",
" param35 float64 778.0\n",
" param36 float64 938.0\n",
" param37 float64 782.0\n",
" param38 float64 924.0\n",
" param39 float64 1.124e+03\n",
" param40 float64 1.037e+03\n",
" param41 float64 861.0\n",
" param42 float64 995.0\n",
" param43 float64 901.0\n",
" param44 float64 1.058e+03\n",
" param45 float64 960.0\n",
" param46 float64 962.0\n",
" param47 float64 1.059e+03\n",
" param48 float64 780.0\n",
" param49 float64 967.0"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"arviz.effective_n(trace_indep)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7f0742448978>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x7f074242ffd0>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x7f07423d2dd8>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x7f07423fcbe0>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x7f07423a2c50>]],\n",
" dtype=object)"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1490.4x662.4 with 6 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"arviz.plot_autocorr(trace_indep, var_names=['param49'], max_lag=1000)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Auto-assigning NUTS sampler...\n",
"Initializing NUTS using jitter+adapt_diag...\n",
"Multiprocess sampling (4 chains in 4 jobs)\n",
"NUTS: [y]\n",
"Sampling 4 chains: 100%|██████████| 4000/4000 [00:02<00:00, 1935.36draws/s]\n"
]
}
],
"source": [
"# PyMC3 get's more samples than that in 2 seconds ;-)\n",
"import pymc3 as pm\n",
"\n",
"with pm.Model() as model:\n",
" pm.Normal('y', mu=2, sd=np.arange(n_params) + 1, shape=n_params)\n",
" trace_pm = pm.sample()"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"trace_pm = arviz.from_pymc3(trace=trace_pm)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<xarray.Dataset>\n",
"Dimensions: (y_dim_0: 50)\n",
"Coordinates:\n",
" * y_dim_0 (y_dim_0) int64 0 1 2 3 4 5 6 7 8 9 ... 41 42 43 44 45 46 47 48 49\n",
"Data variables:\n",
" y (y_dim_0) float64 4.23e+03 5.235e+03 ... 4.349e+03 5.742e+03"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"arviz.effective_n(trace_pm)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7f06c3cf2f28>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x7f06c3c55320>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x7f06c3c7cd68>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x7f06c3c25b00>]],\n",
" dtype=object)"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAB8sAAAFTCAYAAAC+gu0qAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3X+0bWdZH/rvQ0IEJKiQ9CSQpvwoBQVsYqJANHBATvWCowqxQlBCqCUGJDWiWLhltJEC9oKNyWCYQjIcIxBEAqFWoHIJiRxgkB9wcosIBkQNQRoSkiuCYAghfe4fex3uzs4+Z6+zz/o9P58x1thnz/nOdz7zXXPOZ+31nDlndXcAAAAAAAAAYEjuNe8AAAAAAAAAAGDWFMsBAAAAAAAAGBzFcgAAAAAAAAAGR7EcAAAAAAAAgMFRLAcAAAAAAABgcBTLAQAAAAAAABgcxXIAAAAAAAAABkexHAAAAAAAAIDBUSwHAAAAAAAAYHAUy4GpqapTqqqr6p9vMm93VV0zj7gAYMjkZwBYPPIzACwe+RmGQbEcmKY/SnJTkl9aP7GqHp3kyUneOI+gAGDg5GcAWDzyMwAsHvkZBkCxHJia7v52kouS/HxVffe6WWck+bskl84lMAAYMPkZABaP/AwAi0d+hmFQLAem7cIk90tyapJU1X2SPD/JW7r79nkGBgADJj8DwOKRnwFg8cjPsOIUy4Gp6u6bsna7mjNHk/5VkgcmedPcggKAgZOfAWDxyM8AsHjkZ1h91d3zjgFYcVX11CRXJjkxyflJ/nd3P2m+UQHAsMnPALB45GcAWDzyM6w2xXJgJqrq+iRfTvKkJD/f3W+bc0gAMHjyMwAsHvkZABaP/Ayry23YgVn5r1n7IHFbknfNORYAYI38DACLR34GgMUjP8OKUiwHZuWdo58Xd/cdc40EANhLfgaAxSM/A8DikZ9hRSmWA7PyU0k6yZvmHQgA8B3yMwAsHvkZABaP/AwryjPLgamqqh9I8oisfYi4prufNeeQAGDw5GcAWDzyMwAsHvkZVp9iOTBVVbU7yUlJrkry3O6+ab4RAQDyMwAsHvkZABaP/AyrT7EcAAAAAAAAgMHxzHIAAAAAAAAABkexHAAAAAAAAIDBUSwHpqqq/nFVXVZVX62qr1XVf6uqY+cdFwAMWVUdU1VvqKqrq+ofqqqr6qHzjgsAhqqqfraq3lVVN1bV7VX12ar6rao6fN6xAcBQVdVPVNWfVNXNVXVHVX2xqt5RVT8w79iAyfHMcmBqqup+Sf40yR1JXpmkk7w6yf2S/GB3f2OO4QHAYFXVziSXJrkuySFJ/kWSh3X35+cYFgAMVlVdk+QLSf4oyReTHJ/knCSfSXJSd//v+UUHAMNUVacm+aEk1ya5NcmxSV6e5B8neVx33zjH8IAJUSwHpqaqfiXJuUke1d1/OZr2sCSfS/Ib3X3uPOMDgKGqqnvt/dK9qv5NkouiWA4Ac1NVR3b3rRumnZbkzUl+vLv/ZD6RAQDrVdWjsvaf2X69u//LvOMBDp7bsAPT9C+TXLO3UJ4k3X1Dko8m+em5RQUAA+fqNABYLBsL5SMfH/18yCxjAQD26/8d/fz2XKMAJkaxHJimxyT51CbTP53Ec10AAABg3548+nn9XKMAgIGrqkOq6rCqemSSNyW5OckfzDksYEIOnXcAwEp7YJKvbDL9b5N834xjAQAAgKVQVQ9J8qokV3T3nnnHAwADd22SE0b//sskT+3uL88xHmCCXFkOAAAAAAuiqu6f5I+ydnvXF8w5HAAgeV6SJyR5bpKvJflAVT10ngEBk6NYDkzTV7L5FeT7uuIcAAAABquq7pvkPUkenuQnuvuLcw4JAAavu6/v7mu7+w+S/HiS+yd5+ZzDAibEbdiBafp01p5bvtEPJPnzGccCAAAAC6uq7p3ksiQnJtnV3X8255AAgA26+++q6i+T/NN5xwJMhivLgWl6d5InVNXD904Y3Z7mR0fzAAAAYPCq6l5Jfj/JU5P8THdfM+eQAIBNVNWOJI9O8lfzjgWYjOrueccArKiq+u4kf5rk9iSvTNJJ/lOSw5P8YHd/fY7hAcCgVdXPjv7540nOTPLiJLcmubW7PzS3wABggKrqv2YtH78myXs3zP6i27EDwOxV1R8m+X+SfDJrzyr/Z0l+NclRSX6ku/9ijuEBE6JYDkxVVR2b5HeS7EpSSa5McnZ3f36ecQHA0FXVvv4Q+FB375xlLAAwdFX1+ST/ZB+zf7O7z5ldNABAklTVv0vyc0kekeSwJH+TZHeS3/L9NqwOxXIAAAAAAAAABmcqzyyvqidV1bur6n9VVVfV6WMs87iq+lBV3T5a7j9UVW1oc0pV/XlV3TH6+cxpxA8AAAAAAADAaptKsTzJ/ZN8KsmvZO1ZxftVVQ9I8oEktyT54dFyL0vy0nVtnpjk0iS/n+S40c93VtXjJx08AAAAAAAAAKtt6rdhr6qvJ3lJd1+8nzYvSvJ/JdnR3bePpr0yyYuSHNPdXVWXJnlgd+9at9wVSW7t7lOnuQ0AAAAAAAAArJZpXVl+oJ6Y5CN7C+Uj70/y4CQPXdfm8g3LvT/JSVOPDgAAAAAAAICVcui8Axg5KskXN0y7Zd28G0Y/b9mkzVGbdVhVZyQ5I0nuda97nXD88cdPLFgAWGbXXXfdbd195DzWLT8DwObkZwBYPPIzACyeSefnRSmWT1x3X5jkwiQ5/PDDe8+ePXOOCAAWQ1XdOK91y88AsDn5GQAWj/wMAItn0vl5UW7DfnOSHRum7Vg3b39tbg4AAAAAAAAAHIBFKZZfneTkqrrPumm7ktyU5PPr2uzasNyuJFdNPToAAAAAAAAAVspUiuVVdf+qOq6qjhut49jR78eO5v9WVV25bpG3JfmHJBdX1WOr6llJXp7k3O7uUZvzkzy1ql5eVY+uqlckeUqS86axDQAAAAAAAACsrmldWX5ikv85et03yW+O/v2q0fyjkzxib+Pu/mrWrhJ/cJI9SX43yX9Jcu66NlcleU6S05N8MslpSZ7d3ddOaRsAAAAAAAAAWFGHTqPT7t6dpPYz//RNpv1Zkidt0e9lSS47yPAAAAAAAAAAGLhFeWY5AAAAAAAAAMyMYjkAAAAAAAAAg6NYDgAAAAAAAMDgKJYDAAAAAAAAMDiK5QAAAAAAAAAMjmI5AAAAAAAAAIOjWA4AAAAAAADA4CiWAwAAAAAAADA4iuUAAAAAAAAADI5iOQAAAAAAAACDo1gOAAAAAAAAwOAolgMAAAAAAAAwOIrlAAAAAAAAAAyOYjkAAAAAAAAAg6NYDgAAAAAAAMDgKJYDAAAAAAAAMDiK5QAAAAAAAAAMjmI5AAAAAAAAAIOjWA4AAAAAAADA4CiWAwAAAAAAADA4iuUAAAAAAAAADI5iOQAAAAAAAACDo1gOAAAAAAAAwOBMrVheVS+uqhuq6ptVdV1VnbyfthdXVW/y+sa6Njv30ebR09oGAAAAAAAAAFbTVIrlVfXsJOcneW2S45NcleR9VXXsPhb5lSRHb3j9dZJ3bNL2MRvafW6iwQMAAAAAAACw8qZ1ZflLk1zc3Rd19/XdfVaSLyV50WaNu/ur3X3z3leSRyR5eJKLNmn+5fVtu/uuKW0DAAAAAAAAACtq4sXyqjosyQlJLt8w6/IkJ43ZzQuTfLq7r9pk3p6q+lJVXVlVTzmIUAEAAAAAAAAYqGlcWX5EkkOS3LJh+i1Jjtpq4ar6niQ/l3teVb73yvRTkjwryWeTXLmvZ6FX1RlVtaeq9tx5550HtgUAwFTIzwCweORnAFg88jMAzMah8w5gE7+QtSL+Jesndvdns1Yg3+vqqnpokpcl+cjGTrr7wiQXJsnhhx/eU4oVADgA8jMALB75GQAWj/wMALMxjSvLb0tyV5IdG6bvSHLzGMu/MMm7uvtvx2h7bZJHHlh4AAAAAAAAAAzdxIvl3f2tJNcl2bVh1q4kmz2D/Duq6keS/PPc8xbs+3Jc1m7PDgAAAAAAAABjm9Zt2M9NcklVfSzJR5OcmeTBSd6YJFX1liTp7tM2LHdGks919+6NHVbV2Uk+n+TTSQ7L2u3afyZrzzAHAAAAAAAAgLFNpVje3ZdW1YOSvDLJ0Uk+leTp3X3jqMmxG5epqsOTPCfJq/bR7WFJXp/kmCS3Z61o/ozu/uMJhw8AAAAAAADAipvWleXp7guSXLCPeTs3mfb3Se6/n/5el+R1k4oPAAAAAAAAgOGa+DPLAQAAAAAAAGDRKZYDAAAAAAAAMDiK5QAAAAAAAAAMjmI5AAAAAAAAAIOjWA4AAAAAAADA4CiWAwAAAAAAADA4iuUAAAAAAAAADI5iOQAAAAAAAACDo1gOAAAAAAAAwOAolgMAAAAAAAAwOIrlAAAAAAAAAAyOYjkAAAAAAAAAg6NYDgAAAAAAAMDgKJYDAAAAAAAAMDiK5QAAAAAAAAAMjmI5AAAAAAAAAIOjWA4AAAAAAADA4CiWAwAAAAAAADA4iuUAAAAAAAAADI5iOQAAAAAAAACDo1gOAAAAAAAAwOAolgMAAAAAAAAwOFMrllfVi6vqhqr6ZlVdV1Un76ftzqrqTV6P3tDulKr686q6Y/TzmdOKHwAAAAAAAIDVNZVieVU9O8n5SV6b5PgkVyV5X1Udu8Wij0ly9LrX59b1+cQklyb5/STHjX6+s6oeP/ENAAAAAAAAAGClTevK8pcmubi7L+ru67v7rCRfSvKiLZb7cnffvO5117p5Zyf5YHe/ZtTna5LsHk0HAAAAAAAAgLFNvFheVYclOSHJ5RtmXZ7kpC0W31NVX6qqK6vqKRvmPXGTPt8/Rp8AAAAAAAAAcDfTuLL8iCSHJLllw/Rbkhy1j2X2XnV+SpJnJflskis3POf8qAPps6rOqKo9VbXnzjvvPLAtAACmQn4GgMUjPwPA4pGfAWA2Dp13AEnS3Z/NWoF8r6ur6qFJXpbkI9vs88IkFybJ4Ycf3gcZIgAwAfIzACwe+RkAFo/8DACzMY0ry29LcleSHRum70hy8wH0c22SR677/eYJ9AkAAAAAAAAAky+Wd/e3klyXZNeGWbuSXHUAXR2Xtduz73X1BPoEAAAAAAAAgKndhv3cJJdU1ceSfDTJmUkenOSNSVJVb0mS7j5t9PvZST6f5NNJDkvyC0l+JmvPMN/r/CQfrqqXJ/nvSZ6Z5ClJfmxK2wAAAAAAAADAippKsby7L62qByV5ZZKjk3wqydO7+8ZRk2M3LHJYktcnOSbJ7Vkrmj+ju/94XZ9XVdVzkrw6yauS/FWSZ3f3tdPYBgAAAAAAAABW17SuLE93X5Dkgn3M27nh99cled0YfV6W5LJJxAcAAAAAAADAcE38meUAAAAAAAAAsOgUywEAAAAAAAAYHMVyAAAAAAAAAAZHsRwAAAAAAACAwVEsBwAAAAAAAGBwFMsBAAAAAAAAGBzFcgAAAAAAAAAGR7EcAAAAAAAAgMFRLAcAAAAAAABgcBTLAQAAAAAAABgcxXIAAAAAAAAABkexHAAAAAAAAIDBUSwHAAAAAAAAYHAUywEAAAAAAAAYHMVyAAAAAAAAAAZHsRwAAAAAAACAwVEsBwAAAAAAAGBwFMsBAAAAAAAAGBzFcgAAAAAAAAAGR7EcAAAAAAAAgMFRLAcAAAAAAABgcBTLAQAAAAAAABgcxXIAAAAAAAAABmdqxfKqenFV3VBV36yq66rq5P20fVZVXV5Vt1bV31fVtVX1Lze0Ob2qepPXfaa1DQAAAAAAAACspqkUy6vq2UnOT/LaJMcnuSrJ+6rq2H0s8uQkf5LkGaP2f5zkDzcpsP9DkqPXv7r7m5PfAgAAAAAAWHw7d+7Mzp075x0GACylQ6fU70uTXNzdF41+P6uqfjLJi5K8YmPj7v6VDZN+s6qekeRnknzk7k375mkEDAAAAAAAAMBwTPzK8qo6LMkJSS7fMOvyJCcdQFeHJ/nKhmn3raobq+qLVfXeqjr+IEIFAAAAAAAAYKCmcRv2I5IckuSWDdNvSXLUOB1U1S8nOSbJJesmfzbJv07y00lOTfLNJB+tqkfuo48zqmpPVe258847D2wLAICpkJ8BYPEcSH52m1cAmA1/PwPAbEzlmeUHo6pOSfL6JM/t7hv3Tu/uq7v7zd39ie7+SJJnJ/mrJGdt1k93X9jdJ3b3ife+971nEjsAsH/yMwAsHvkZABaP/AwAszGNYvltSe5KsmPD9B1J9vu88ar62axdTX5ad79nf227+64ke5JsemU5AAAAAAAAAOzLxIvl3f2tJNcl2bVh1q4kV+1ruar6uawVyk/v7su2Wk9VVZIfTPKl7UcLAAAAAAAAwBAdOqV+z01ySVV9LMlHk5yZ5MFJ3pgkVfWWJOnu00a/PydrhfJfT/Lhqtr7bPNvdfffjtr8xyTXJPlckgck+bdZK5a/aErbAAAAAAAAAMCKmkqxvLsvraoHJXllkqOTfCrJ09c9g/zYDYucOYrlvNFrrw8l2Tn69/cmuTDJUUm+muR/JnlSd39sGtsAAAAAAAAAwOqa1pXl6e4Lklywj3k79/f7Ppb51SS/OonYAAAAAAAAABi2iT+zHAAAAAAAAAAWnWI5AAAAAAAAAIOjWA4AAMDC2blzZ3bu3DnvMAAAAIAVplgOAAAAAAAAwOAolgMAAAAAAAAwOIrlAEvOLUoBAAAAAAAOnGI5AAAAAAAAAIOjWM6guSIXYHE5RwMAAAAAME2K5QAAAAAAAAAMjmI5AAAAAAAAsHDcfZJpUywHAABgpnzZAQAAi81ndmAoFMsBmCgfpAEAAAAAgGWgWA4AABwQ/zEKAAAAOFi+X5gdY71viuWxgyzj9i9jzNs1pG2FoXBcAwAAAMDB8R0bQ7AM+/kyxLg/iuUAsMKW/YMKMDzOW3dnPAAAAACmR7EcmAlf9ALAeORMWFyOT2Av5wMAYJZ89oDpUSyfICer1eR9heXimAUOlvMILA/HKwCLYJr5SK5jluxvwCQ5pyyfob5niuXA3czzZDjvE/G81w9MhmP57sYZj3mP2bTWP+/tAgAYMp/FAKbPuZb1luE7oGla5W3bypC3fRIUy5kpByyQOBcAwCqT5wHWOB9uzRjB7DjemAb71YEzZrB4FMuBA7aMCX0ZY56koW8/ALMn98yOsYbF4pgEmJ5pnmOdv5kU+xJDYD9nlSiWs7KcrJkGf5TBYnHcwIFZlWNmVbZjnoY0hkPa1iHy/m6PcWPV2KeBSXAuYX/sH3BwFvkYUixfUIu80wDMwjKcB5chRibH+81Q2NdnZ1pj7T2cL+PPOIa0n2xnW4c0PsnwthdgmTlnsz/2D9azPyyPqRXLq+rFVXVDVX2zqq6rqpO3aP/kUbtvVtVfV9WZB9vnJNmpmQT70cEzhrNjrIEDNaTzxpC2Fdaz7zMk9vetGSNYXI5PALgn+ZHNTKVYXlXPTnJ+ktcmOT7JVUneV1XH7qP9w5L88ajd8Ul+K8kbquqU7fa5TBycd2c8WHarvA+v8rbBRvb3uzMek2EcWWT2T1gs8z4m573+IVuGsZ9ljMswHstq49hOc6zH6Xve62dyvJdsZd7nBDhY9s/VMq0ry1+a5OLuvqi7r+/us5J8KcmL9tH+zCQ3dfdZo/YXJXlzkl8/iD4Xkg8KAMA4VvUPx+3GvIzbCiwuRZ7ZW5VxWJXtWDSL9vlgWd/nVf38OE3GA1aDY5kDYX9hkdgf725e41HdPdkOqw5L8g9JTu3ud66b/rtJHtvdT95kmQ8n+bPu/uV10/5VkrcluV+SOtA+13vAjn/Sv/T6t+9z/ic+8YkkyXHHHTeXNuNO28p2llnEdS1jm3FNa6wnuR3TGpN5vx/LsM/Me9vGWWZVxnGW4zGp9W/XZuv67eefdF13nzj1lW9hWvl5UuO7sZ9Jnke3s/5VbjPP3LPd5Va57yGdx+dtWmM972NxGdrMcv8cd/2rlJ8nudwk+p3k/j7vfXcrs/67b7v7+3b6meRyW5n33+HLkEMX7ViY9XG+nRi3a945azvmvc9Msu9Vys+z/B501sfEsp7/Fz2eZeh7Gb8rWNb1zzOeWX/GHceibf+8949Zr3/S+XkaxfIHJ/lfSZ7c3R9eN/0/JPn57n7UJsv8RZK3dver1k17UpIPJXlw1orlB9rnGUnOSJIHPuQRJ/zr117ynXnLsGON088sP/SuyhcJ837PxmmzDDGO02be79m817+dNuMsN+8x2866DiamrdrM+/2ZZozT2tZkvn/szyI/j7PMouXHRTsfzfuPkEX8YmWe27oqXwbNeuwnlVe202aS27GdNrNebhnbjGPWnyEWMT9PMh9MYpmDWW5afc973573+rdj3uexZR3HRf/bcNoxbafNpMzyO7ll+Cwwy+8TtpuHVv3v53n/TTfv8+g4lmFd2/1eYhm/Y1uG/LBo78c4Zn0eXbT3cRnbjGvR4p5mnt1uX4rlY/a53oknnth79uz5zu97L+HfvXv3PpeZZZtxbNbPdta/3XimudwythnHdte1DDGO02be79m817+dNuOY95htZ10HE9NWbRbt/dmsr0V8P6pqIf5n/LTy8zjLzDI/zvL9nfUxMcv3bFLmnTMm1e8y5JVx2kzzHD2tvLJd885Zsz7PLXqbccz6M8Qi5udJ5oNJLHMwy02r70Xbb6e5/mnGOI5J7TPz/iwwze2YZTzTXN+897WNJrXPzHt85v1ZYFLxTKrvcde/rPl5kjl83vvudqzyZ8ZpvR/TfJ+XYT/bznhMMqZ5fg6dZF/aLPZxPqk2i7DvTTo/Hzqpjta5LcldSXZsmL4jyc37WObmfbT/9qi/2kafK2VR/kCAZeGYOXDGbDImNY7ej+ma9/jOe/3Amo3HomPznowJwGpznp+dVR7rRdu2RYsHFnGfXLSYFi2ecS1r3HAgprmfL8oxNPFieXd/q6quS7IryTvXzdqV5F37WOzqJM/cMG1Xkj3dfWey9r8EDrBPYEYW5YTG+Lxnd2c8YNiGfA4Y8rbPmrGGu3NM3J3xgMU1y+NzCF9Gs5rsXyw7+/Bwee9JpnNleZKcm+SSqvpYko8mOTNrt1N/Y5JU1VuSpLtPG7V/Y5KXVNV5Sd6U5EeTnJ7k1HH7nLRlOECWIUb2z3sIB8cxxKTYl1hkm+2f9lkAhma7uW+cu4gsQ17dzt1QlmG7OHDeV2BeluH8swwxLqJVHbdV3S4mbyrF8u6+tKoelOSVSY5O8qkkT+/uG0dNjt3Q/oaqenqS30nyoiQ3Jfm33f2uA+iTTcz7dsBORsC4fNkD++cYmS/jPx2ungJYDM6Zs2OsV4P3EQ6c42YYlvU/pQHDNq0ry9PdFyS5YB/zdm4y7UNJfmi7fc6Dkzzs25COjyFtK3B3Qy+grvK2MXn2l9W1aO/tosXDZHl/AWbLeRcWi2NyNXlfYd9mcXxMrVjOmkU7yS1aPJO0ytvG/nnv2R/7B/aB5eM9A2AeVjX/rOp2AcC+zDL3ybOraVXe11XZjnkb+sUyQ6BYDktoVU68896Oea+fYbCfAUPgduqzYzxmxxcijMM+MBzea1gtjunxrepYrep2Jau9bcyP/YpVplgOU7IMz3mX4ACYtkXLNYsWDwDAqpjU5yyf1wBgOaltsKwUy1kKTnzzM++xX5X1z3s7AFhM8gMAAADz5m9TYMgUy5k7iRhWn+N8NoYwzkPYxkVgnIFJc16B5ec4hgPjmAEA5slnkfEplgMADIgPyjBMjn2YH8cfAMDBW9bPVNOKe1nHg+W3ivueYjkAAAAAHKRV/OIQpsXxAgCbGydHenzsZCmWA6yYWSY4yXQyjCMAADAE/vaBxeKYBADFcgAAAAAAAGDK/CcdFpFiOYMyy9tXAACsAp+NAAAAABjXsn2XpFgOAADAUli2P7gBAACAxaZYDgAAAGyb/8QAAADAsrrXvAMAAAAAAAAAgFlzZTnAEnHVDgCsrqHn+aFvPwAAAP42ZPZcWQ4AAAAAAADA4CiWAwAAAAAAADA4bsMOAAAAAAArwi2MAWB8riwHAAAAAAAAYHAUywEAAAAAAAAYHMVyAAAAAAAAAAZHsRwAAAAAAACAwVEsBwAAAAAAAGBwFMsBAAAAAAAAGJyJF8ur6ruq6g1VdVtVfaOq3l1Vx2yxzCuq6uNV9bWqurWq3lNVj93Q5uKq6g2vayYdPwAAAAAAAACrbxpXlp+X5JQkpyY5OckDkry3qg7ZzzI7k1yQ5KQkT03y7SRXVNUDN7S7IsnR615Pn2jkAAAAAAAAAAzCoZPsrKq+J8kvJnlBd39gNO15SW5M8rQk799sue7+iQ39PC/JV5P8aJL3rJt1R3ffPMmYAQAAAAAAABieSV9ZfkKSeye5fO+E7v6bJNdn7arxcR2etdi+smH6j1XVl6vqL6rqoqr6RwcbMAAAAAAAAADDM+li+VFJ7kpy24bpt4zmjev8JJ9IcvW6af93ktOS/HiSX0vyI0n+pKq+a7MOquqMqtpTVXtuvfXWA1g1ADAt8jMALB75GQAWj/wMALMxVrG8ql5dVb3Fa+ckAqqqc5P8WJJTuvuuvdO7++3d/e7u/rPufk+S/yPJo5I8Y7N+uvvC7j6xu0888sgjJxEaAHCQ5GcAWDzyMwAsHvkZAGZj3GeWn5fkrVu0+UKSJyQ5JMkRSdb/d7cdST6y1Uqq6neSPCfJU7r7r/fXtrtvqqovJnnkVv0CAAAAAAAAwHpjFcu7+7bc89bq91BV1yW5M8muJG8bTTsmyfcnuWqLZc9P8uysFco/M8a6jkjykCRf2qotAAAAAAAAAKw30WeWd/dXk/xektdV1dOq6vgklyT5ZJIr9rarqs9U1UvW/f67SV6Q5LlJvlJVR41e9x/Nv39V/XZVPbGqHjq65ft7knw5yR9OchsAAAAAAAAAWH3j3ob9QJyd5NtJLk1y3yRXJjlt/fPHs/as8SPW/f7i0c8rN/T1m0nOSXJXksclOS3J92btavIPJvm57v77CccPAAAAAAAAwIqbeLG8u+9Ictbota82tb/fN2l/e5KfmEiAAAAAAAAAAAzeRG/DDgAAAAAAAADLQLEcAAAAAAAAgMFRLAcAAAAAAABgcBTLAQAAAAAAABgcxXIAAACnPytPAAASj0lEQVQAAAAABkexHAAAAAAAAIDBUSwHAAAAAAAAYHAUywEAAAAAAAAYHMVyAAAAAAAAAAZHsRwAAAAAAACAwVEsBwAAAAAAAGBwDp13APOwe/fueYcAAAAAAAAAwBy5shwAAAAAAACAwVEsBwAAAAAAAGBwBnkbdgBg8XhMCgAAAAAAs+TKcgAAAAAAAAAGR7EcAAAAAAAAgMFRLAcAAAAAAABgcBTLAQAAAAAAABgcxXIAAAAAAAAABkexHAAAAAAAAIDBOXTeAQAAAACLZ/fu3fMOAQAAAKbKleUAAAAAAAAADM7Ei+VV9V1V9Yaquq2qvlFV766qY7ZY5pyq6g2vmze0qVG7m6rq9qraXVWPmXT8AAAAAAAAAKy+aVxZfl6SU5KcmuTkJA9I8t6qOmSL5T6b5Oh1r8dtmP8bSX4tyVlJfjjJl5N8oKoOn1zoAAAAAAAAAAzBRJ9ZXlXfk+QXk7yguz8wmva8JDcmeVqS9+9n8W93982bzaiqSnJ2kv/c3e8aTXt+1grmz03ypoltBAAAAAAAAAArb9JXlp+Q5N5JLt87obv/Jsn1SU7aYtmHj26xfkNVvb2qHr5u3sOSHLWh39uTfHiMfgEAAAAAYOnt3r07u3fvnncYALAyJl0sPyrJXUlu2zD9ltG8fbk2yelJfjLJC0dtr6qqB63rd28/Y/VbVWdU1Z6q2nPrrbeOvQEAwPTIzwCweORnAFg88jMAzMZYxfKqenVV9RavndsNorvf193v6O5PdvcVSX5qFNvzD6LPC7v7xO4+8cgjj9xuNwDABMnPALB45GcAWDzyMwDMxrjPLD8vyVu3aPOFJE9IckiSI5Ks/+9uO5J8ZNyguvvrVfXpJI8cTdr7LPMdo/Ws73fT55wDAAAAAAAAwL6MVSzv7ttyz1ur30NVXZfkziS7krxtNO2YJN+f5Kpxg6qq+yR5dJIPjibdkLWi+K4kH1/X5uQkLxu3XwAAAAAAAABIJvzM8u7+apLfS/K6qnpaVR2f5JIkn0xyxd52VfWZqnrJut9/u6qeXFUPq6rHJ7ksyXcnefOo387a1e3/rqqeVVWPTXJxkq9nVJQHAAAAAAAAgHGNexv2A3F2km8nuTTJfZNcmeS07r5rXZtHZe1W7Xsdk+QP8v/fvv2aJE/o7hvXtXndqL/fTfJ9Sa5N8i+6+++nsA0AAAAAAAAArLCJF8u7+44kZ41e+2pTG35/zhj9dpJzRi8AAAAAAAAA2LaJ3oYdAAAAAAAAAJaBYjkAAAAAAAAAg6NYDgAAAAAAAMDgKJYDAAAAAAAAMDiK5QAAAAAAAAAMjmI5AAAAAAAAAIOjWA4AAAAAAADA4CiWAwAAAAAAADA4iuUAAAAAAAAADI5iOQAAAAAAAACDo1gOAAAAAAAAwOAolgMAAAAAAAAwOIrlAAAAAAAAAAyOYjkAAAAAAAAAg6NYDgAAAAAAAMDgKJYDAAAAAAAAMDiK5QAAAAAAAAAMjmI5AAAAAAAAAIOjWA4AAAAAAADA4CiWAwAAAAAAADA4iuUAAAAAAAAADI5iOQAAAAAAAACDM/FieVV9V1W9oapuq6pvVNW7q+qYLZb5fFX1Jq//sa7NOZvMv3nS8QMAAAAAAACw+qZxZfl5SU5JcmqSk5M8IMl7q+qQ/Szzw0mOXvf6oSSd5B0b2n12Q7vHTTRyAAAAAAAAAAbh0El2VlXfk+QXk7yguz8wmva8JDcmeVqS92+2XHffuqGfX0zytdyzWP7t7nY1OQAAAAAAAAAHZdJXlp+Q5N5JLt87obv/Jsn1SU4ap4OqqqwV3N/a3bdvmP3wqrqpqm6oqrdX1cMnFDcAAAAAAAAAAzLpYvlRSe5KctuG6beM5o1jV5KHJblow/Rrk5ye5CeTvHDU31VV9aDNOqmqM6pqT1XtufXWWzdrAgDMmPwMAItHfgaAxSM/A8BsjFUsr6pXV1Vv8do5oZhemOTj3f2n6yd29/u6+x3d/cnuviLJT43if/5mnXT3hd19YnefeOSRR04oNADgYMjPALB45GcAWDzyMwDMxrjPLD8vyVu3aPOFJE9IckiSI5Ks/+9uO5J8ZKuVVNU/SvLTSX55q7bd/fWq+nSSR27VFgAAAAAAAADWG6tY3t235Z63Vr+HqrouyZ1Zu5X620bTjkny/UmuGmNVpye5I8kfjLGu+yR5dJIPjtEvAAAAAAAAAHzHRJ9Z3t1fTfJ7SV5XVU+rquOTXJLkk0mu2Nuuqj5TVS9Zv2xVVZJ/k+Tt3f31jX1X1W9X1ZOr6mFV9fgklyX57iRvnuQ2AAAAAAAAALD6xr0N+4E4O8m3k1ya5L5JrkxyWnffta7No7J2q/b1dmbtluq/sI9+j8naFed7b/F+TZIndPeNE4scAAAAAAAAgEGYeLG8u+9Ictbota82tcm0Dya5x/R1858zkQABAAAAAAAAGLyJ3oYdAAAAAAAAAJaBYjkAAAAAAAAAg6NYDgAAAAAAAMDgKJYDAAAAAAAAMDiK5QAAAAAAAAAMjmI5AAAAAAAAAIOjWA4AAAAAAADA4CiWAwAAAAAAADA4iuUAAAAAAAAADI5iOQAAAAAAAACDo1gOAAAAAAAAwOAolgMAAAAAAAAwOIrlAAAAAAAAAAyOYjkAAAAAAAAAg6NYDgAAAAAAAMDgKJYDAAAAAAAAMDiK5QAAAAAAAAAMjmI5AAAAAAAAAIOjWA4AAAAAAADA4CiWAwAAAAAAADA4iuUAAAAAAAAADI5iOQAAAAAAAACDo1gOAAAAAAAAwOBMvFheVWdU1Qer6u+qqqvqoWMud0pV/XlV3TH6+cwN86uqzqmqm6rq9qraXVWPmXT8AAAAAAAAAKy+aVxZfr8klyc5Z9wFquqJSS5N8vtJjhv9fGdVPX5ds99I8mtJzkryw0m+nOQDVXX4ZMIGAAAAAAAAYCgOnXSH3X1eklTViQew2NlJPtjdrxn9/pqqespo+qlVVaN//+fufteo/+dnrWD+3CRvmlT8AAAAAAAAAKy+RXlm+ROzdjX6eu9PctLo3w9LctT6Nt19e5IPr2sDAAAAAAAAAGOZ+JXl23RUkls2TLtlND3rfm7W5iGbdVhVZyQ5Y/TrHVX1qQnEydaOSHLbvIMYCGM9O8Z6doz1bDxqXiuWn+fGsTU7xnp2jPXsGOvZkJ+Hx7E1O8Z6doz1bBjn2ZGfh8fxNTvGejaM8+wY69mZaH4eq1heVa9O8u+3aPaU7t590BFNSHdfmOTCJKmqPd19ILeFZ5uM9ewY69kx1rNjrGejqvbMa93y83wY69kx1rNjrGfHWM+G/Dw8xnp2jPXsGOvZMM6zIz8Pj7GeHWM9G8Z5doz17Ew6P497Zfl5Sd66RZsvHEQcNyfZsWHajtH0rPu5Y8N61rcBAAAAAAAAgLGMVSzv7tsy3VsHXJ1kV5LXr5u2K8lVo3/fkLWi+K4kH0+SqrpPkpOTvGyKcQEAAAAAAACwgib+zPKqOiprzxj/Z6NJP1BV35vkC939t6M2Vyb5WHe/YtTm/CQfrqqXJ/nvSZ6Z5ClJfixJurur6rwk/2dVfSbJXyR5ZZKvJ3nbGGFdOJGNYxzGenaM9ewY69kx1rOxKOO8KHEMgbGeHWM9O8Z6doz1bCzKOC9KHENgrGfHWM+OsZ4N4zw7izLWixLHEBjr2THWs2GcZ8dYz85Ex7q6e5L9parOSfIfN5n1gu6+eNTm80l2d/fp65b72SSvTvLwJH+V5N93939bN79G/f5Sku9Lcm2SX+7uT010AwAAAAAAAABYeRMvlgMAAAAAAADAorvXvAMAAAAAAAAAgFlb+WJ5Vb24qm6oqm9W1XVVdfK8Y1pmVfWKqvp4VX2tqm6tqvdU1WM3tKmqOqeqbqqq26tqd1U9Zl4xr4rR2P9/7d1viGV1Hcfx9zclLHdJo3Ij2P5QrYZBGYJbm45LC8ISVBBSRPigP7CmPhCSEELQrKi0xckHReCyEQo9iJIEC7JoFcHIMrcwcgsydS1Cs9Z0l18Pzhn2eNnVcef8vj/mnPcLDt655w4cPw7zvsMd75SIWB7c59YjiYjXR8Se/uv6mYjYHxEXDM679Qgi4qSIuHbwfflARFwXEScPHuPWJyAizo+IH0XEI/33iksWzr/orhFxekTsjYgn+2NvRJxW4Vpt88jsczv2uS77nMM+12Of580+t2Gb67PPOexzPfZ53uxzG/a5Pvucwz7X07LPk36xPCIuBnYD1wPvBu4G7oiIzU0vbH1bAm4G3gtsBw4DP4uIVw8e83ngSuAy4FzgIPDTiNiYe6nTERHnAZ8Bfrdwyq1H0H+z3AcEsBM4i27Tg4OHufU4rgIuBS4HzgSu6D/+wuAxbn1iNgC/p9v00DHOr2bX7wPnABf1xznA3jEv0jZXs4R9Tmef67LPqexzPfZ53pawz6lsc332OZV9rsc+z9sS9jmVfa7PPqeyz/W063MpZbIHcC/wnYX7/gR8ufW1TeXov3iPAB/sPw7gUeDqwWNeAfwb+Gzr612PB/Aq4M/AhcBdwLJbj77x9cC+Fzjv1uNtfTuwZ+G+PcDtbj3qzk8Dlww+ftFd6Z5EF+B9g8ds6+/bMuK12eacrwH7XH9j+1x/Y/uct7V9ztnZPs/8sM/V97XNOTvb57yt7XPOzvZ55od9rr6vfc7Z2T7nbW2fc3ZO7fNk/8/yiHg58B7gzoVTd9L91pjGsZHuHQr+1X/8ZmATg91LKYeAX+LuJ+rbwA9KKT9fuN+tx/Mh4N6IuC0iDkbE/RHxuYiI/rxbj+dXwIURcSZARLyD7rd4f9Kfd+s6VrPrVronIXcPPm8f8B9G2t42p7LP9dnn+uxzHvvchn2eH/tcl23OYZ/z2Oc27PP82Oe67HMO+5zHPrdRtc8nv9DJde41wEnA4wv3Pw58IP9yJms3cD9wT//xpv6fx9r9DVkXNRUR8WngrcAnjnHarcfzFmAXcCPwFeBdwE39uWXcekxfpfshZH9EHKHr0JdKKTf35926jtXsugl4ovS/cgdQSikRcXDw+Wtlm/PY54rscxr7nMc+t2Gf58c+V2KbU9nnPPa5Dfs8P/a5Evucyj7nsc9tVO3zlF8sV2URcQPdWxhsK6UcaX09UxMRW+jePmVbKeW51tczcS8D7iulrPxdkd9ExNvo/tbIcrvLmqSLgU8CHwcepHvitjsiDpRSvtv0yqSJsM912edU9jmPfZYqs8/12OZ09jmPfZYqs8/12Od09jmPfZ6gyb4NO/APur81csbC/WcAj+VfzrRExI3Ax4DtpZSHB6dWtnX3tdtK91ukD0bE4Yg4DFwA7Opv/7N/nFuv3aPA/oX7/gBs7m/7dT2erwFfL6XcWkp5oJSyF7gBWHki59Z1rGbXx4DXDt6eif726xhve9tcmX1OYZ/z2Oc89rkN+zwT9rk625zLPuexz23Y55mwz9XZ51z2OY99bqNqnyf7Ynkp5Vng18COhVM7eP771esliojdHH0i8ceF0wfovuh2DB5/CvB+3P2l+iHwTrrfTFo57gNu7W8/hFuPZR+wZeG+twN/7W/7dT2eV9L9sDd0hKM9cus6VrPrPcAGuh9mVmwFTmWk7W1zXfY5jX3OY5/z2Oc27PMM2OcUtjmXfc5jn9uwzzNgn1PY51z2OY99bqNun0spkz3o3g7hWeBTwFl0f3/kaeCNra9tvR7At4CngO107/G/cmwYPOYq4EngI8DZdAH8O7Cx9fWv9wO4C1h269F3PRd4Dria7u/ofLTf9VK3Hn3rW4C/ATuBNwEfBp4AvuHWa952A0d/+Pgv8MX+9ubV7grcATzQP4nY2t/+8cjXaZvr/Pe3z233t891drXPeVvb53rb2ucZH/a56fa2ud629jlva/tcb1v7POPDPjfd3j7X29Y+521tn+tt26zPzf/lE8bdBfwF+B/db+Od3/qa1vMBlOMc1wweE8A1dG/98QzwC+Ds1tc+heMYTyjcerxtdwK/7Xd8CLgcCLcefeeNwDfpfqvxEPAw3d8vOsWt17zt0nG+P9+y2l2B04Hv0f3Q+FR/+7QK12qbx9/UPrfd3z7X29Y+5+xsn+tta59nfNjnptvb5rr72uecne1zvW3t84wP+9x0e/tcd1/7nLOzfa63bbM+R//JkiRJkiRJkiRJkiTNxmT/ZrkkSZIkSZIkSZIkScfji+WSJEmSJEmSJEmSpNnxxXJJkiRJkiRJkiRJ0uz4YrkkSZIkSZIkSZIkaXZ8sVySJEmSJEmSJEmSNDu+WC5JkiRJkiRJkiRJmh1fLJckSZIkSZIkSZIkzY4vlkuSJEmSJEmSJEmSZscXyyVJkiRJkiRJkiRJs/N/x36wpVdugd4AAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 1987.2x331.2 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"arviz.plot_autocorr(trace_pm.posterior.isel(y_dim_0=-1))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"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.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment