Created
September 17, 2025 21:55
-
-
Save tbrown122387/2d4b2a5e22e0ab7502af08a485b8fa3f to your computer and use it in GitHub Desktop.
Module 4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "id": "cc4eac79-ebd8-4015-bcc9-cd5d0162aed2", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "# Module 4\n", | |
| "\n", | |
| "## DS-6040\n", | |
| "### Bayesian Machine learning\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "19fcc570", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Today's plan\n", | |
| "\n", | |
| "multi-parameter models!\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "42a9c519-a4ea-4747-a848-0c4fc88bc2a3", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Example 1\n", | |
| "\n", | |
| "\n", | |
| "Let $y = (y_1, y_2, \\ldots, y_k)$ be a vector of counts.\n", | |
| "\n", | |
| "Let $\\theta = (\\theta_1, \\theta_2, \\ldots, \\theta_k)$ be the probabilities of any trial resulting in each of the $k$ outcomes. \n", | |
| "\n", | |
| "We assume that there is a known total count (which means $\\sum_i y_i = n$). \n", | |
| "\n", | |
| "We also assume the only possible outcomes are these $k$ outcomes so $\\sum_i \\theta_i = 1$.\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "6022b246-2a41-446f-922f-38ae85172743", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Example 1\n", | |
| "\n", | |
| "\n", | |
| "### Likelihood\n", | |
| "\n", | |
| "A multinomial (or categorical) distribution\n", | |
| "$$\n", | |
| "L(y \\mid \\theta) \\propto \\prod_{i=1}^k \\theta_i^{y_i},\n", | |
| "$$\n", | |
| "\n", | |
| " NB: [`scipy.stats.multinomial`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.multinomial.html) is helpful\n", | |
| "\n", | |
| "### Conjugate Prior\n", | |
| "\n", | |
| "\n", | |
| "A $\\text{Dirichlet}(\\alpha_1, \\ldots, \\alpha_k)$ prior:\n", | |
| "$$\n", | |
| "\\pi(\\theta) \\propto \\prod_{i=1}^k \\theta_i^{\\alpha_i - 1}.\n", | |
| "$$\n", | |
| "\n", | |
| "NB: the chosen hyper-parameters have a very nice interpretation of counts!\n", | |
| "\n", | |
| "NB2: [`scipy.stats.dirichlet`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.dirichlet.html) is helpful\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "c5c32958", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Example 1\n", | |
| "\n", | |
| "This is another conjugate family. \n", | |
| "\n", | |
| "We will show that $\\theta \\mid y \\sim \\text{Dirichlet}(\\alpha_1 + y_1, \\ldots, \\alpha_k + y_k)$ \n", | |
| "\n", | |
| "Intuition before we look at math?\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "6d9637b9", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Example 1\n", | |
| "\n", | |
| "\n", | |
| "Math reminders:\n", | |
| "\n", | |
| " - posterior $\\propto$ likelihood $\\times$ prior\n", | |
| " - $\\propto$ means we can ignore factors that are $\\theta$-less\n", | |
| " - recognizing the final line permits us to use well-known integration formulas\n", | |
| " \n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "1552a631", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Example 1\n", | |
| "\n", | |
| "\n", | |
| "\\begin{align}\n", | |
| "\\pi(\\theta \\mid y) \n", | |
| "&\\propto L(y \\mid \\theta) \\pi(\\theta) \\\\\n", | |
| "&\\propto \\underbrace{\\theta_1^{y_1}\\times \\cdots \\times \\theta_k^{y_k} }_{ \\propto L(y \\mid \\theta)} \\underbrace{\\theta_1^{\\alpha_1 - 1} \\times \\cdots \\times \\theta_k^{\\alpha_k - 1} }_{ \\propto \\pi(\\theta)} \\\\\n", | |
| "&= \\prod_{i=1}^k \\theta_i^{y_i + \\alpha_i - 1}\n", | |
| "\\end{align}\n", | |
| "\n", | |
| "Here $\\theta$ has to have all nonnegative elements and they have to sum to $1$.\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "acfad93e-4977-4712-81e0-fddf80d453f4", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Example 1\n", | |
| "\n", | |
| "The same idea applies if you have $N > 1$ count vectors. Then $y = y_1, \\ldots, y_N$ (each one is length $k$) and the likelihood is\n", | |
| "\n", | |
| "$$\n", | |
| "\\pi(\\theta \\mid y) \\propto L(y_1, \\ldots, y_N \\mid \\theta) \\pi(\\theta)\n", | |
| "$$\n", | |
| "\n", | |
| "where\n", | |
| "\n", | |
| "$$\n", | |
| "L(y_1, \\ldots, y_N \\mid \\theta) = \\prod_{j=1}^N L(y_j \\mid \\theta)\n", | |
| "$$\n", | |
| "\n", | |
| "And the math is the same! Homework question on final posterior!\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "a5ea1cc4", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Example 2\n", | |
| "\n", | |
| "Many times you have data where\n", | |
| "\n", | |
| " - it can be arranged in a two-dimensional container (e.g. a matrix or 2-d array)\n", | |
| " - every number is positive or negative,\n", | |
| " - every number is a floating point (i.e. real-valued),\n", | |
| " - every row is independent from every other row.\n", | |
| "\n", | |
| "In this case it is often reasonable to assume that every row has a multivariate normal distribution. \n", | |
| "\n", | |
| "You might have to transform data \n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "ad236925-7a00-423f-8fb2-536c23cf0da3", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Example 2\n", | |
| "\n", | |
| "Data are higher dimensional now.\n", | |
| "\n", | |
| "All of the parameters are unknown now (more realistic)." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1, | |
| "id": "96676640-1aee-4cf5-850e-ba9ad9b5357a", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "import pandas as pd\n", | |
| "#import os\n", | |
| "#os.chdir(\"/home/taylor/ds-6040/slides/module4/\")\n", | |
| "xyl = pd.read_csv(\"XYL.csv\")\n", | |
| "zts = pd.read_csv(\"ZTS.csv\")\n", | |
| "both = pd.merge(xyl[['Date','Adj Close']], zts[['Date','Adj Close']], on=\"Date\")\n", | |
| "both = both.set_index(\"Date\")\n", | |
| "rets = both.pct_change().iloc[1:,]*100\n", | |
| "rets.columns = ['xyl','zts']" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 2, | |
| "id": "192cb11c-d397-47b3-831a-65a480d540d9", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>xyl</th>\n", | |
| " <th>zts</th>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>Date</th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>2015-02-26</th>\n", | |
| " <td>0.196076</td>\n", | |
| " <td>1.149922</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2015-02-25</th>\n", | |
| " <td>0.754825</td>\n", | |
| " <td>-1.930497</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2015-02-24</th>\n", | |
| " <td>-0.221981</td>\n", | |
| " <td>-0.699912</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2015-02-23</th>\n", | |
| " <td>-0.417122</td>\n", | |
| " <td>0.396476</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2015-02-20</th>\n", | |
| " <td>0.614346</td>\n", | |
| " <td>0.043871</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " xyl zts\n", | |
| "Date \n", | |
| "2015-02-26 0.196076 1.149922\n", | |
| "2015-02-25 0.754825 -1.930497\n", | |
| "2015-02-24 -0.221981 -0.699912\n", | |
| "2015-02-23 -0.417122 0.396476\n", | |
| "2015-02-20 0.614346 0.043871" | |
| ] | |
| }, | |
| "execution_count": 2, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "rets.head()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 3, | |
| "id": "38833af4-da9c-413d-9216-b0c1d5117465", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.collections.PathCollection at 0x75999b0bc9e0>" | |
| ] | |
| }, | |
| "execution_count": 3, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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/tq8ebMWLVqk+vp6/epXv3K6aWnt4MGDamtr6/HzP3DgQH72HTB27Fg99dRTOvPMM/XFF1/ovvvu04UXXqgPP/xQRUVFTjcv4/l/J4L9vnz++edONMl29IiEEWxSV/eP9957z/T5XC5Xj8cMwwj6OMyx8hotXLhQF198sc4991zdcssteuyxx/TrX/9ahw4dcvi7yAzdf8752XfG5Zdfrm9961s655xzNHXqVL388suSpN/+9rcOtwxdZdLvCz0iYSxYsECzZ88Oe8zQoUNNnaukpER//etfAx47fPiwTp482SP5wrxYXqNx48ZJknbu3Mk7QRsVFxcrOzu7R+/HgQMH+NlPAnl5eTrnnHP06aefOt0USJ0rmBobG1VaWtr5eDr/vhBEwiguLlZxcXFczjV+/Hjdf//9amho6Pzhev311+V2u1VVVRWXa2SiWF6jbdu2SVLALzviLycnR1VVVVqzZo3+5V/+pfPxNWvW6KqrrnKwZZCklpYWffTRR5o0aZLTTYGk8vJylZSUaM2aNTr//PMldcyzeuONN7Rs2TKHW2cPgkic7NmzR01NTdqzZ4/a2tr0/vvvS5KGDx+uvn37avr06aqoqNCNN96oBx98UE1NTfr+97+vOXPmqKCgwNnGZ4CNGzdq06ZNmjx5sjwej959910tXLhQ3/jGN3T66ac73by0d+edd+rGG2/U6NGjNX78eD3xxBPas2eP5s6d63TTMs73v/99zZo1S6effroOHDig++67Tz6fTzfddJPTTcsYx44d086dOzs/r6+v1/vvv6/CwkKdfvrpuuOOO/TAAw9oxIgRGjFihB544AH16dNH1113nYOttpHDq3bSxk033WRI6vGxfv36zmM+//xzY+bMmUbv3r2NwsJCY8GCBcaJEyeca3QG2bJlizF27FjD4/EYubm5xte+9jVj8eLFRnNzs9NNyxiPPPKIMWTIECMnJ8cYNWqU8cYbbzjdpIz07W9/2ygtLTV69eplDBo0yLj66quNDz/80OlmZZT169cHvV/cdNNNhmF0LOFdvHixUVJSYrjdbuOiiy4yduzY4WyjbeQyDMNwKgQBAIDMxqoZAADgGIIIAABwDEEEAAA4hiACAAAcQxABAACOIYgAAADHEEQAAIBjCCIAAMAxBBEAAOAYgggAAHAMQQQAADiGIAIAABzz/wOtZ2zS0Qt1MQAAAABJRU5ErkJggg==", | |
| "text/plain": [ | |
| "<Figure size 640x480 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "import matplotlib.pyplot as plt\n", | |
| "plt.scatter(rets.iloc[:,0],rets.iloc[:,1])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "2e7a1563-9752-45e6-9a74-63a4faf7f4e9", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Example 2\n", | |
| "\n", | |
| "Parameters we have to estimate are \n", | |
| "\n", | |
| " - the mean vector $\\mu$, which describes the center of this data;\n", | |
| " - the covariance matrix $\\Sigma$, which describes the shape of the point cloud\n", | |
| "\n", | |
| "In our case\n", | |
| "\n", | |
| " - $\\mu$ is probably around $(0,0)$\n", | |
| " - $\\Sigma$ is $2 \\times 2$\n", | |
| " - $\\Sigma$ has a few constraints on what its value can be\n", | |
| "\n", | |
| "$\\theta$ is the collection of all unknown parameters. How do we put a prior on this? " | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "66cc086e-99e4-4779-99a4-00f4f0c16b95", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Example 2\n", | |
| "\n", | |
| "The Normal-inverse-Wishart prior!\n", | |
| "\n", | |
| "It has a complicated formula, but \n", | |
| " \n", | |
| " $$\\pi(\\mu,\\Sigma) = \\pi(\\mu \\mid \\Sigma)\\pi(\\Sigma)$$\n", | |
| "\n", | |
| "where\n", | |
| "\n", | |
| " - $\\pi(\\Sigma)$ is an inverse Wishart, which is the multivariate generalization of an inverse Gamma,\n", | |
| "\n", | |
| "and\n", | |
| "\n", | |
| " - $\\pi(\\mu \\mid \\Sigma)$ is multivariate normal.\n", | |
| "\n", | |
| "Choosing a specific NIW involves picking four hyperparameters: $\\mu_0, \\kappa_0, \\Lambda_0, \\nu_0$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "c3abdeec-9769-4390-88b8-5b89a38afb0a", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Example 2\n", | |
| "\n", | |
| "The Normal-inverse-Wishart prior...\n", | |
| "\n", | |
| " - it can be written as $\\pi(\\mu, \\Sigma) = \\text{NIW}(\\mu_0, \\kappa_0, \\Lambda_0, \\nu_0)$\n", | |
| " - $\\mu_0, \\kappa_0, \\Lambda_0, \\nu_0$ can be tricky hyperparameters to choose\n", | |
| " - If $L(y \\mid \\mu, \\Sigma)$ is normal, then $\\pi(\\mu, \\Sigma \\mid y)$ is again Normal-inverse-Wishart\n", | |
| "\n", | |
| "See BDA3 (pg73) for more details\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "5a4c9625-db9f-4a50-bd33-ee459d7bb03d", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| " ## Example 2\n", | |
| "\n", | |
| "The Normal-inverse-Wishart prior... more info on $\\mu_0, \\kappa_0, \\Lambda_0, \\nu_0$:\n", | |
| "\n", | |
| "First, $\\pi(\\mu \\mid \\Sigma) = \\text{Normal}(\\mu_0, \\Sigma / \\kappa_0)$, so\n", | |
| "\n", | |
| "- $\\mu_0$ is your point estimate of what $\\mu$ is\n", | |
| " - increasing $\\kappa_0$ increases your conviction in $\\mu_0$ being the \"center\" of your data\n", | |
| "\n", | |
| "Second, $\\pi(\\Sigma) = \\text{Inverse Wishart}_{ \\nu_0}(\\Lambda_0^{-1})$\n", | |
| " - $\\Lambda_0 / (\\nu_0 - k - 1)$ is the estimate for the covariance matrix of your data\n", | |
| "\n", | |
| "NB: $k$ is the dimension of the data. \n", | |
| "\n", | |
| "NB: the last formula only works if $\\nu_0 > k+1$ " | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "4cb8440f-fc2a-4fc4-8a4d-58a748ce276a", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Example 2: picking a prior\n", | |
| "\n", | |
| "Let's pick a prior, then we can estimate the model\n", | |
| "\n", | |
| "Picking the prior will be done the way we did it last module, by simulating parameters from it, and then simulating data from those parameters. \n", | |
| "\n", | |
| "Simulating a $(\\mu, \\Sigma) = \\theta$ will be done in a two step process:\n", | |
| "\n", | |
| " - draw $\\Sigma^i$ from $\\pi(\\Sigma)$\n", | |
| " - given $\\Sigma^i$, draw $\\mu^i$ from $\\pi(\\mu \\mid \\Sigma^i)$\n", | |
| "\n", | |
| "Repeat this over and over again to obtain $(\\mu^1, \\Sigma^1), (\\mu^2, \\Sigma^2), \\ldots$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 4, | |
| "id": "2fc3bdd2-6a73-49ef-a554-8f5dedec4d7b", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "from scipy.stats import invwishart\n", | |
| "import numpy as np\n", | |
| "nu0 = 2\n", | |
| "Lambda0 = np.array([[1,0],[0,1]])\n", | |
| "mu0 = np.array([0,0])\n", | |
| "kappa0 = .01\n", | |
| "pi_Sigma = invwishart(df = nu0, scale = Lambda0)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 5, | |
| "id": "39462936-3670-4c15-b603-a7c5933b95a2", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "array([[ 5.89185544, -3.03885378],\n", | |
| " [-3.03885378, 1.74484668]])" | |
| ] | |
| }, | |
| "execution_count": 5, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# drawing one Sigma\n", | |
| "pi_Sigma.rvs(1)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 6, | |
| "id": "d051a27f-97ca-4b7b-b6fd-0c24da90ff73", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "(1000, 2, 2)" | |
| ] | |
| }, | |
| "execution_count": 6, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# drawing many Sigmas\n", | |
| "num_sims = 1000\n", | |
| "sigma_samples = pi_Sigma.rvs(num_sims)\n", | |
| "sigma_samples.shape" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 7, | |
| "id": "337876a8-db73-4575-b2be-994440d52d77", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "array([ 53.00612893, -44.93514967])" | |
| ] | |
| }, | |
| "execution_count": 7, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# drawing one mu given the first Sigma\n", | |
| "from scipy.stats import multivariate_normal\n", | |
| "multivariate_normal(mean = mu0, cov = sigma_samples[0]/kappa0).rvs(1)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 8, | |
| "id": "8acccb05-febe-43bd-8ace-206ecc0d6812", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# putting it all together\n", | |
| "# recall we already did sigma_samples\n", | |
| "mu_samples = np.array(\n", | |
| " [multivariate_normal(\n", | |
| " mean = mu0, \n", | |
| " cov = Sigma/kappa0).rvs(1) for Sigma in sigma_samples])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "e3cb7845-89e0-428d-9b52-fce773c3f6a5", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Example 2: picking a prior\n", | |
| "\n", | |
| "We've just drawn from $\\theta^1, \\ldots, \\theta^{1000} \\sim \\pi(\\theta)$\n", | |
| "\n", | |
| "Or in other words $(\\mu^1, \\Sigma^1), \\ldots, (\\mu^{1000}, \\Sigma^{1000}) \\sim \\pi(\\mu, \\Sigma)$\n", | |
| "\n", | |
| "Now we'll draw from $y^1, \\ldots, y^{1000}$ from $L(y \\mid \\theta^i)$\n", | |
| "\n", | |
| "This is akin to drawing from the prior predictive distribution!" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 9, | |
| "id": "a6cc53f1-dbe2-4cda-8b38-838840ba1127", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.collections.PathCollection at 0x759997aae9f0>" | |
| ] | |
| }, | |
| "execution_count": 9, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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5ukBcLh+US7lXjdId464UrnXDaIbC+jNTAhVVlYaSWbbtm3GGGOampqM2+02q1evtmtqa2uNZVlm/fr1xhhjzp49a6Kjo01BQYFdc+LECRMVFWUKCwuNMcaUlpYaSWbnzp12TVFRkZFkPv744y4dm9frNZKM1+vt8XkCAIDQ6Or9O6RjeLxeryQpOfni7IaysjJ5PB5NmjTJromNjdXYsWO1Y8cOSdK+ffvU0NDgU5ORkaHs7Gy7pqioSJZladSoUXbN6NGjZVmWXQMAAPqukD081BijRYsW6Vvf+pays7MlSR6PR5KUlpbmU5uWlqYjR47YNTExMRo4cGCbmubf93g8Sk1NbfOZqampdk1rdXV1qqurs3+urq6+xDMDAACRLmQtPPPnz9eHH36o1157rc17Lpdvv7gxps221lrX+KvvaD+rVq2yBzhblqXMzMyunAYAAOiFQhJ4HnzwQb3xxht65513dNVVV9nb3W63JLVphamsrLRbfdxut+rr61VVVdVhzcmTJ9t87qlTp9q0HjVbsmSJvF6v/Tp27NilnyAAAIhoQQ08xhjNnz9fv/3tb/X2228rKyvL5/2srCy53W5t3brV3lZfX69t27ZpzJgxkqScnBxFR0f71FRUVKikpMSuyc3Nldfr1e7du+2aXbt2yev12jWtxcbGKikpyecFAACcKahjeB544AH96le/0uuvv67ExES7JceyLMXHx8vlcmnhwoVauXKlBg8erMGDB2vlypUaMGCAZsyYYdfOnj1bixcv1qBBg5ScnKxHHnlEw4cP12233SZJGjp0qPLy8jRnzhy98MILkqR7771XU6ZM0ZAhQ4J5igAAoBcIauBZt26dJGncuHE+21955RXNmjVLkvToo4/q/PnzmjdvnqqqqjRq1Cht2bJFiYmJdv2zzz6r/v376+6779b58+d16623asOGDerXr59d8+qrr2rBggX2bK5p06Zp7dq1wTw9AADQS7iMMSbcBxEJqqurZVmWvF4v3VsAAPQSXb1/8ywtAADgeAQeAADgeAQeAADgeAQeAADgeAQeAADgeAQeAADgeAQeAADgeAQeAADgeAQeAADgeAQeAADgeAQeAADgeAQeAADgeAQeAADgeAQeAADgeAQeAADgeAQeAADgeAQeAADgeAQeAADgeAQeAADgeAQeAADgeAQeAADgeAQeAADg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dIO/gW2tX3v37vX5nfLycuXl5el73/ue7rnnHp/3XC5Xm88wxvhsb11jvhww2d2aULmUa9SRf/qnf1Jubq5GjBihxYsX64knntDTTz/tU9PXr5ETv0f+dOe6Pfzwwxo7dqxuuOEG3XPPPVq/fr1efvllnT592t5foK6bk/g7X6eea0u33367vvvd72r48OG67bbb9Pvf/16S9J//+Z92zaVcG6dfv0Bck678dxgo/QO+RwebP3++pk+f3mHNNddcY/9zeXm5xo8fr9zcXL344os+dW63W7t27fLZVlVVpYaGBjs1u93uNim3srJSkjqt6d+/vwYNGtT1kwuQ7l6j7ho9erSqq6t18uRJpaWl9flr5NTvkT89uW6jR4+WJH366acaNGhQwK6bU6SkpKhfv35+z9dp59oVCQkJGj58uD755BPdddddki62RqSnp9s1La+N2+1WfX29qqqqfFo0KisrNWbMmJAeeyg0z2Dr6TVxu906efJkm/2fOnUqON+7gI8KgjHGmOPHj5vBgweb6dOn+x2l3zxosry83N5WUFDQZtDk5Zdfburq6uya1atXtxlsOnToUJ99z507t1cNNu1o0HJrzz//vImLi7MHkvb1a8T3qGs2b95sJNkzjgJ13Zxk5MiR5v777/fZNnTo0D4xaLm12tpac+WVV5rly5fbA3SffPJJ+/26ujq/A3R//etf2zXl5eWOH7Tc02vSPGh5165dds3OnTuDNmiZwBMEJ06cMNdff72ZMGGCOX78uM9Ux2bN02JvvfVWs3//fvPWW2+Zq666ymda7NmzZ01aWpr5wQ9+YA4cOGB++9vfmqSkJL/TiR9++GFTWlpqXn755V4znfjIkSPmgw8+MMuXLzeXXXaZ+eCDD8wHH3xgTx9+4403zIsvvmgOHDhgPv30U/PSSy+ZpKQks2DBAnsfff0a8T1qa8eOHWbNmjXmgw8+MJ999pn59a9/bTIyMsy0adPsmkBdNydpnpb+8ssvm9LSUrNw4UKTkJBgDh8+HO5DC7rFixebd99913z22Wdm586dZsqUKSYxMdE+99WrVxvLssxvf/tbc+DAAfODH/zA7xTsq666yrz11ltm//79ZsKECb16WnpNTY39/xtJ9n9TzX80BOqa5OXlmRtuuMEUFRWZoqIiM3z4cKal9yavvPKKkeT31dKRI0fMHXfcYeLj401ycrKZP3++zxRYY4z58MMPzS233GJiY2ON2+02y5Yta/PX5bvvvmu+8Y1vmJiYGHPNNdeYdevWBf0cA2HmzJl+r9E777xjjLm4ntGIESPMZZddZgYMGGCys7PNc889ZxoaGnz205evkTF8j1rbt2+fGTVqlLEsy8TFxZkhQ4aYpUuXmnPnzvnUBeq6Ocm//du/mauvvtrExMSYm266yWzbti3chxQSzWvIREdHm4yMDPOd73zHHDx40H6/qanJLF261LjdbhMbG2v+/u//3hw4cMBnH+fPnzfz5883ycnJJj4+3kyZMsUcPXo01KcSMO+8847f//fMnDnTGBO4a3L69Gnzwx/+0CQmJprExETzwx/+0FRVVQXlnFzGOHjZUAAAADFLCwAA9AEEHgAA4HgEHgAA4HgEHgAA4HgEHgAA4HgEHgAA4HgEHgAA4HgEHgAA4HgEHgAA4HgEHgAA4HgEHgAA4HgEHgAA4Hj/P498OUlnTZTgAAAAAElFTkSuQmCC", | |
| "text/plain": [ | |
| "<Figure size 640x480 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "theta_samples = zip(mu_samples, sigma_samples)\n", | |
| "fake_data = np.array(\n", | |
| " [multivariate_normal(\n", | |
| " mean = mu, \n", | |
| " cov = Sigma).rvs(1) for (mu,Sigma) in theta_samples])\n", | |
| "plt.scatter(fake_data[:,0], fake_data[:,1])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "edb4979e-446d-4bc6-af6a-92bda0684b35", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Example 2: picking a prior\n", | |
| "\n", | |
| "This is a bit crazy. We'll have to adjust $\\mu_0, \\kappa_0, \\Lambda_0, \\nu_0$\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 10, | |
| "id": "018c650b-8627-44b3-8c7e-5a86ff6d4727", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "nu0 = 10\n", | |
| "Lambda0 = np.array([[1/2,0],[0,1/3]])\n", | |
| "mu0 = np.array([0,0])\n", | |
| "kappa0 = 1\n", | |
| "\n", | |
| "pi_Sigma = invwishart(df = nu0, scale = Lambda0)\n", | |
| "sigma_samples = pi_Sigma.rvs(num_sims)\n", | |
| "mu_samples = np.array(\n", | |
| " [multivariate_normal(\n", | |
| " mean = mu0, \n", | |
| " cov = S/kappa0).rvs(1) for S in sigma_samples])\n", | |
| "theta_samples = zip(mu_samples, sigma_samples)\n", | |
| "fake_y = np.array(\n", | |
| " [multivariate_normal(\n", | |
| " mean = mu, \n", | |
| " cov = Sigma).rvs(1) for (mu,Sigma) in theta_samples])\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 11, | |
| "id": "1fe2206c-65fd-4a0c-9c00-2e9e66ceb175", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.collections.PathCollection at 0x759997a44950>" | |
| ] | |
| }, | |
| "execution_count": 11, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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ffukffv2Sc3NzT3bnH/++dL69eslSZKk5uZm6d/+7d+kXbt2STU1NdL27dulkpIS6dxzz5Wampqi9TIM0/v6JUmSnnjiCcnpdErr16+XDhw4IN16662S2+2Oy9cvSZJUWloqjRo1SqqoqJAqKiqkiy66SLrxxhv9tkmk78Crr74qpaamSqtXr5aqq6ulBx98UMrKypKOHDkiSZIkLViwQJo1a1bP9l9++aWUmZkpzZs3T6qurpZWr14tpaamSv/zP/8TrZcQFr2vf/ny5dIbb7whffHFF1JVVZW0YMECCYD0+uuvR+slhKW5ubnn/3MA0h//+Edp37590ldffSVJUuJ//pKk/z1ItO+AGgYvceTOO++UAAT92b59e882AKQXX3xRkiRJam1tlaZMmSKdc845UmpqqjRo0CDpzjvvlI4ePRqdFxAmva9fkrrLpRctWiS5XC7J4XBIV155pXTgwIHIn7xJ6uvrpdtvv13Kzs6WsrOzpdtvvz2oJDLRvgPPPPOMNHjwYCktLU0aO3as9M477/T825133ildddVVftu//fbb0pgxY6S0tDRpyJAh0sqVKyN8xubS8/qffPJJadiwYVJ6errUp08f6fLLL5c2b94chbM2h1z2G/jnzjvvlCQpOT5/ve9Bon0H1Ngk6dtsJiIiIqI4wFJpIiIiiisMXoiIiCiuMHghIiKiuMLghYiIiOIKgxciIiKKKwxeiIiIKK4weCEiIqK4wuCFiIiI4gqDFyIiIoorDF6IiIgorjB4ISIiorjC4IWIiIjiyv8PFux/aHRv1W8AAAAASUVORK5CYII=", | |
| "text/plain": [ | |
| "<Figure size 640x480 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "plt.scatter(fake_y[:,0], fake_y[:,1])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "d47dab67-2243-431a-a5f4-8b2f6ec43de8", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Example 2: obtaining the posterior\n", | |
| "\n", | |
| "\n", | |
| "If we have \n", | |
| "\n", | |
| "$$\\pi(\\mu, \\Sigma) = \\text{NIW}(\\mu_0, \\kappa_0, \\Lambda_0, \\nu_0)$$ \n", | |
| "\n", | |
| "and we also know \n", | |
| "\n", | |
| "$$\n", | |
| "L(y_i \\mid \\mu, \\Sigma) = \\text{Normal}(\\mu, \\Sigma)\n", | |
| "$$\n", | |
| "\n", | |
| "then it turns out \n", | |
| "\n", | |
| "$$\n", | |
| "\\pi(\\mu, \\Sigma \\mid y_1, \\ldots, y_n) = \\text{NIW}(\\mu_n, \\kappa_n, \\Lambda_n, \\nu_n)\n", | |
| "$$\n", | |
| "\n", | |
| "where all of those hyperparameters have simple *recursive* formulas." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "41b05e29-deaa-4246-9d52-91650713d27a", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Example 2: obtaining the posterior\n", | |
| "\n", | |
| " - $\\nu_n = \\nu_0 + n$\n", | |
| " - $\\kappa_n = \\kappa_0 +n$\n", | |
| " - $\\mu_n = \\frac{\\kappa_0}{\\kappa_0 + n} \\mu_0 + \\frac{n}{\\kappa_0 + n} \\bar{y}$\n", | |
| " - $\\Lambda_n = \\Lambda_0 + S + \\frac{\\kappa_0n}{\\kappa_0 + n}(\\bar{y} - \\mu_0)(\\bar{y} - \\mu_0)^\\intercal$\n", | |
| "\n", | |
| "where $S = \\sum_{i=1}^n (y_i - \\bar{y})(y_i - \\bar{y})^\\intercal$\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 12, | |
| "id": "e27437d3-d2d1-4296-ae1b-921f98717f6a", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# data is in variable called rets\n", | |
| "n = len(rets)\n", | |
| "nu_n = nu0 + n\n", | |
| "kappa_n = kappa0 + n\n", | |
| "ybar = rets.mean().values\n", | |
| "ybar_minus_mu0 = (ybar - mu0).reshape(2,1)\n", | |
| "mu_n = mu0*kappa0/(kappa0 + n) + ybar*n/(kappa0 + n)\n", | |
| "ys_minus_ybar = (rets-ybar.transpose())\n", | |
| "S = (ys_minus_ybar.transpose() @ ys_minus_ybar).values\n", | |
| "Lambda_n = (Lambda0 + S + \n", | |
| " ybar_minus_mu0 @ ybar_minus_mu0.transpose() \n", | |
| " * kappa0*n/(kappa0+n))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "9e1c31e9-694c-4dd8-96a1-b062024aeef1", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Example 2: checking the posterior\n", | |
| "\n", | |
| "Let's compare the frequentist point estimates with our Bayesian ones. \n", | |
| "\n", | |
| "First up, the estimates for the unknown $\\mu$.\n", | |
| "\n", | |
| "Frequentists use the sample mean $\\bar{y}$\n", | |
| "\n", | |
| "Bayesians have a whole distribution for this unknown quantity: $\\pi(\\mu \\mid y)$. \n", | |
| "\n", | |
| "The mean/center of $\\pi(\\mu \\mid y)$ is $\\mu_n$.\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 13, | |
| "id": "457c0447-1b17-4da8-9311-f091c20656e0", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "frequentist mean: [-0.0406871 -0.06991319]\n", | |
| "Bayesian mean: [-0.04060915 -0.06977926]\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "print(\"frequentist mean: \", ybar)\n", | |
| "print(\"Bayesian mean: \", mu_n)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "df3e7887-56c0-4f7d-9f69-8c015dcc37a2", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Example 2: checking the posterior\n", | |
| "\n", | |
| "Next up, the estimate for $\\Sigma$, the covariance matrix parameter for $y$. \n", | |
| "\n", | |
| "Frequentists estimate $\\Sigma$ with $S/n$, the sample covariance matrix. \n", | |
| "\n", | |
| "Bayesians have a whole posterior distribution for $\\Sigma$. get more than point estimates. From $\\pi(\\mu, \\Sigma \\mid y)$ they get $\\pi(\\Sigma \\mid y)$. \n", | |
| "\n", | |
| "To boil that down into a Bayesian point estimate, you can use the theoretical mean/center of $\\pi(\\Sigma \\mid y)$." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 14, | |
| "id": "39cd4ea7-8d3b-4ede-96e9-e4f4b4c084e4", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "frequentist cov matrix: [[2.50262317 0.47971748]\n", | |
| " [0.47971748 1.86574735]]\n", | |
| "bayesian cov matrix: [[2.51323377 0.48157157]\n", | |
| " [0.48157157 1.87358879]]\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "print(\"frequentist cov matrix:\", S/n)\n", | |
| "print(\"bayesian cov matrix:\", Lambda_n/(kappa_n - 2 - 1))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "e1866f3b-b4ff-4ea4-94bc-b34b57609334", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "source": [ | |
| "## Example 2: checking the posterior\n", | |
| "\n", | |
| "Simulate from the **posterior predictive** to see if it fits the data well\n", | |
| "\n", | |
| "$$\n", | |
| "p(\\tilde{y} \\mid y) = \\int L(\\tilde{y} \\mid \\theta)\\pi(\\theta \\mid y) \\text{d}\\theta\n", | |
| "$$\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 15, | |
| "id": "ff33bfb7-f5e7-40cb-9f3c-8a1a61520fc5", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "post_Sigma = invwishart(df = nu_n, scale = Lambda_n)\n", | |
| "sigma_samples = post_Sigma.rvs(num_sims)\n", | |
| "mu_samples = np.array(\n", | |
| " [multivariate_normal(\n", | |
| " mean = mu_n, \n", | |
| " cov = Sigma/kappa_n).rvs(1) for Sigma in sigma_samples])\n", | |
| "theta_samples = zip(mu_samples, sigma_samples)\n", | |
| "y_tilde = np.array(\n", | |
| " [multivariate_normal(\n", | |
| " mean = mu, \n", | |
| " cov = Sigma).rvs(1) for (mu,Sigma) in theta_samples])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 16, | |
| "id": "b88a3d25-c31a-4c33-ab3e-33cc557adef7", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "array([[2.48528473, 0.60507909],\n", | |
| " [0.60507909, 1.87475158]])" | |
| ] | |
| }, | |
| "execution_count": 16, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "sigma_samples[3]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 17, | |
| "id": "3cdf2570-37f3-4b8f-9ee6-566d523b6dd9", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.collections.PathCollection at 0x759997a73140>" | |
| ] | |
| }, | |
| "execution_count": 17, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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", | |
| "text/plain": [ | |
| "<Figure size 640x480 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "# plot post. predictive sims\n", | |
| "plt.scatter(y_tilde[:,0], y_tilde[:,1])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 18, | |
| "id": "f26a1a43-a881-4248-b13a-7f1afd7b4496", | |
| "metadata": { | |
| "slideshow": { | |
| "slide_type": "slide" | |
| } | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.collections.PathCollection at 0x7599970aee40>" | |
| ] | |
| }, | |
| "execution_count": 18, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiIAAAGdCAYAAAAvwBgXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA7PklEQVR4nO3de3RU9b3//9ckkgmEZCBJIaFEiIDVNCoS5CKggoAoUnvsz1/x9vN0KT0gVMXTVjmtC6iXlGNXtacoXtryrYd6+bYeq1SNQqHiBYoCIjFWBYNwIJFCYAaCJJDs3x/ppJlkLnvPzJ49l+djraxFJnv2/oRJsl/zubw/LsMwDAEAADggy+kGAACAzEUQAQAAjiGIAAAAxxBEAACAYwgiAADAMQQRAADgGIIIAABwDEEEAAA45jSnGxBOe3u79u/fr/z8fLlcLqebAwAATDAMQ0ePHtWgQYOUlRW+zyOpg8j+/ftVVlbmdDMAAEAU9u7dq8GDB4c9JqmDSH5+vqSOb6SgoMDh1gAAADN8Pp/Kyso67+PhJHUQ8Q/HFBQUEEQAAEgxZqZVMFkVAAA4hiACAAAcQxABAACOIYgAAADHEEQAAIBjCCIAAMAxBBEAAOAYgggAAHBMUhc0A5C82toNba5v0oGjJzQgP1djyguVncWeUACsIYgAsKymtkFLV9epwXui87FST64Wz6rQjMpSB1sGINUwNAPAkpraBs1btTUghEhSo/eE5q3aqpraBodaBiAVEUQAmNbWbmjp6joZQb7mf2zp6jq1tQc7AgB6IogAMG1zfVOPnpCuDEkN3hPaXN+UuEYBSGkEEQCmHTgaOoREcxwAEEQAmDYgPzeuxwEAQQSAaWPKC1XqyVWoRboudayeGVNemMhmAUhhBBEApmVnubR4VoUk9Qgj/s8Xz6qgnggA0wgiACyZUVmqFTeMUokncPilxJOrFTeMoo4IAEsoaAbAshmVpZpWUUJlVQAxI4gAiEp2lkvjhxU53QwAKY6hGQAA4BiCCAAAcAxBBAAAOIYgAgAAHEMQAQAAjiGIAAAAxxBEAACAYwgiAADAMQQRAADgGNuDyL59+3TDDTeoqKhIffr00ciRI7Vlyxa7LwsAAFKArSXeDx8+rAkTJmjy5Ml69dVXNWDAAO3atUv9+vWz87IAACBF2BpEli1bprKyMq1cubLzsaFDh9p5SQAAkEJsHZp56aWXNHr0aF1zzTUaMGCAzj//fD355JN2XhIAAKQQW4PIZ599phUrVmjEiBF67bXXNHfuXN1222166qmngh7f0tIin88X8AEAANKXyzAMw66T5+TkaPTo0XrnnXc6H7vtttv07rvvauPGjT2OX7JkiZYuXdrjca/Xq4KCAruaCQAA4sjn88nj8Zi6f9vaI1JaWqqKioqAx84++2zt2bMn6PGLFi2S1+vt/Ni7d6+dzQMAAA6zdbLqhAkT9PHHHwc89sknn2jIkCFBj3e73XK73XY2CQAAJBFbe0QWLlyoTZs26YEHHtDOnTv19NNP64knntD8+fPtvCwAAEgRtgaRCy64QC+88IKeeeYZVVZW6t5779XDDz+s66+/3s7LAgCAFGHrZNVYWZnsAgAAkkPSTFYFAAAIhyACAAAcQxABAACOIYgAAADHEEQAAIBjCCIAAMAxBBEAAOAYgggAAHAMQQQAADiGIAIAABxDEAEAAI4hiAAAAMcQRAAAgGMIIgAAwDEEEQAA4BiCCAAAcAxBBAAAOIYgAgAAHEMQAQAAjiGIAAAAxxBEAACAYwgiAADAMQQRAADgGIIIAABwDEEEAAA4hiACAAAcQxABAACOIYgAAADHEEQAAIBjCCIAAMAxBBEAAOAYgggAAHAMQQQAADiGIAIAAByTsCBSXV0tl8ulO+64I1GXBJBE2toNbdx1SC++v08bdx1SW7vhdJMAJIHTEnGRd999V0888YTOPffcRFwOQJKpqW3Q0tV1avCe6Hys1JOrxbMqNKOy1MGWAXCa7T0ix44d0/XXX68nn3xS/fv3t/tyAJJMTW2D5q3aGhBCJKnRe0LzVm1VTW2DQy0DkAxsDyLz58/XzJkzNXXq1IjHtrS0yOfzBXwASF1t7YaWrq5TsEEY/2NLV9cxTANkMFuDyLPPPqutW7equrra1PHV1dXyeDydH2VlZXY2D4DNNtc39egJ6cqQ1OA9oc31TYlrFICkYlsQ2bt3r26//XatWrVKubm5pp6zaNEieb3ezo+9e/fa1TwACXDgaOgQEs1xANKPbZNVt2zZogMHDqiqqqrzsba2Nm3YsEHLly9XS0uLsrOzA57jdrvldrvtahKABBuQb+5NiNnjAKQf24LIpZdeqh07dgQ89p3vfEdnnXWW7rrrrh4hBED6GVNeqFJPrhq9J4LOE3FJKvHkakx5YaKbBiBJ2BZE8vPzVVlZGfBYXl6eioqKejwOIHm1tRvaXN+kA0dPaEB+R2jIznKZem52lkuLZ1Vo3qqtckkBYcR/hsWzKkyfD0D6SUgdEQCpKR71P2ZUlmrFDaN6nKeEOiIAJLkMw0jadXM+n08ej0der1cFBQVONwfICP4ekDV1jfrN27t7fN3fd7HihlGWQkQsPSsAUouV+zc9IgA6BesB6c5QRxhZurpO0ypKLA3TjB9WFJ+GAkgbBBEAkv5ZAdVMF2nX+h+Ei3+i1wewjiACIGwF1HCo//FP7KcDRCdhu+8CSF6RKqCGQv2PDuynA0SPIALAcs+GSx3v9qn/wX46QKwIIgAs9WxQ/yMQ++kAsSGIAOisgGomVpR4ci0v3U1n7KcDxIYgAqCzAqqksGGkMK+X7pl5NiGkC/bTAWJDEAEg6Z8VUEs8oW+Yh5tPav7T29Jm8mVbu6GNuw7pxff3aeOuQ1HN44jUm8R8GiA8lu8C6DSjslRTzhqocdVr1dR8ssfXoy1mZkWianHEa7mt0/vpULsEqY4gAqSBeN6Mtnx+OGgI8bOzmFmianGEKt7mX25rdQ6MU/vpULsE6YAgAqS4eN+MnJp8Ge9wEEqk5bbR9vjMqCzVtIqShPVOJOr/C7Abc0SAFGZHIS0nJl8mshaHnctt/fvpXDXyqxo/rMjW4RhqlyBdEESAFGXXzciJyZeJrMWRDsttqV2CdEIQAVKUXTejcEt54zX5svtqlUZf4sJBOiy3TYcwBfgxRwRIUXbejOycfBlsTkthXi9Tz41HOPD3+DR6TwTtTXKp4/tM5uW26RCmAD+CCJCi7L4Z2TH5MtQEy3CrdKT4hgOnl9vGQzqEKcCPoRkgRSViLkc8J1+Gm9PSlV3DQV2FKt6WKuXrEzF8BiQKPSJAikq1d/aR5rT49c/LUVNza+fndtXiCNfjE+8iYXYUHXOqdgkQbwQRIIWl0s3I7FyVe2aerRJP74TU4vD3+HQV77osdhYdS3TtEsAOBBEgxaXKzcjsXJUST++4V2w1K95FwuwqOkZZd6QTggiQBoK9s08EKzfEZJ9gGe+Kq3ZVcKWsO9INQQRAVKzeEO2a0xKv3gErdVnMhL54n0+irDvSE0EEgGXR3hDjPaclnr0D8a7LYva4t3ceNBWi7OphAZxGEAFgiZnS8nc/v0P5ub007oyeS37jNacl3r0D8a7LYva45et3dv47XIiyo4cFSAbUEQFgiZlluEe+PKnrf/VXTVy2LujGe7HWJ7Fjn51412WJdL5gwm1WSFl3pCuCCABLrNzoYtkFOBw79tmJd5GwcOcLJVyIoqw70hVBBIAlVm50dm1Jb1fvQLwrroY6XzihQpQTuyIDicAcESBN2VVrItIy3O7smLtgZ+9AvOuydD/fp18c1fL1uyI+r3uISrVKuoBZBBEgRYULGnbWmgh3Qwzn1X8Mz8QjEEVTk8RKMIt3XZau59u465CpIBIsRKVSJV3ALJdhGPHrL40zn88nj8cjr9ergoICp5sDJI1wQUNS0NUk/ltuvGpNBGuDGfEKRP5VM1Lw3oGu36eZYJaoaqVt7YYmLlsXMUS9ddeUsEt5qayKZGbl/k0QAVJMqGWr/tuQp08vHTl+MuhzzdzkrGhrN7Rp1yHNf3qrjnwZ/JrB2iDFJxCZCRiR/r9W3DBKkhJardRKiAJSEUEESFP+d9NWeyG6e2bOuLgOPYS6sYYSz3f9XY8r7uuWDOlgc4sG5Oeqakh/Xfzg+pD/Xy5J/fr00uEgwS1cKIhHjwSl2pHOrNy/mSMCpBAzNTzMiHetiVBzF0KJNIE12E26pCBX1445XUOL+wTc/P3zL2pqG/T9328PeE5hXi81NYfuqTGkoCHE/7Vg1UrjFSBSZbNCwG62Lt+trq7WBRdcoPz8fA0YMEDf/OY39fHHH9t5SSCtxStA2FFrYkZlqd66a4oWTh1h+jnBvh9/70r3QNPoO6GH1n6i2599X9c+uSmgWFqo54QLIWZ0X0obsm1R1kuJtbAbkA5sDSJvvPGG5s+fr02bNmnNmjU6deqUpk+frubmZjsvC6StWANEImpNPPvuXtPHdv9+Wk+16z9eqDU1vOO/+b/ywX7d/T87TK/eicbbOw+q9VR73Ku5ArB5aKampibg85UrV2rAgAHasmWLLrroIjsvDaQlM8tW/XMe4lFrwupcCCtDR6WeXLW3G3rx/X0akJ+rw82t+vGLO0z3YviHTn7w/Adqbmkz9ZxoLV+/U09v/jziMA97vQDWJXSOiNfrlSQVFgZ/N9bS0qKWlpbOz30+X0LaBaQKM0Wtqq8+R1LPVSBWa01EMxfCytDRlyfbdP2v/2r6+GAMKeoQ0nWVkff4yYg9KmYDEnu9ANYkLIgYhqE777xTEydOVGVlZdBjqqurtXTp0kQ1CUhJZotaxTIRMtqdba0MHYVaYmyXwrwcNTW3dn5e0q3uipXibOGw1wtgTcKW786fP18vv/yy3nrrLQ0ePDjoMcF6RMrKyli+CwQRbtgkluWlkZYIh1t6G6lYlyRluSQnplEsnz1SRfm5pivRWhXvGi1AKku65bvf+9739NJLL2nDhg0hQ4gkud1uud3uRDQJSHmhypDHurzU7M62mz47pCyXq8eNPdzQkSFnQogk3f/q30KGBP9S2ofWfGyq/Hoo7PUCWGdrEDEMQ9/73vf0wgsv6C9/+YvKy8vtvByQ8aIdUunK7ByH+b8LrKbaNewEGzry9Oml1lPtOt4an4ml/mDTL0wl2a7CTST19yAp5N62kX33onJNqyjRxl2HqAsCWGBrEJk/f76efvppvfjii8rPz1djY6MkyePxqHfv3nZeGsg4be1G2OWlwYpzBTvHwaMtQb/WXfeS7t3DTtc5KrsPHtfDaz+J6xJbT59e+uk/JubO/UdV10hC1S2JdVhGkp5773/14vsNavRRKRWwwtY6IitWrJDX69Ull1yi0tLSzo/nnnvOzssCGcnskIq/OFd3NbUNmrhsne59+aOort+9loZ/6OjKcwfp2Xf3xL3Oh7dLL0hft7n3VF0nkra1G/rF2k80N0iBsmgcOX4yIIRI0Rc6AzKJ7UMzABLD7JBKuGqmsf7GBqulEa+y9MEs+p8dIUu0d+WfSOov5FZT26AlL9X1CA7xZrYnCshktvaIAEgcs8tGux8Xbkinu359epm6RtewY7WuxpXnmhvGCLdPTDD+iaT+0GV3CPGL1BMFZDqCCJAm/FVXQ73nDlXe3WyPxT0zz9Yj144y1Zbivm5t3HVIL76/T29+ctDUc/xt3PL5YT163Sj1620u9ERSmNerc96KldDlF692WAlkbe1G5//fxl2HKBuPtMbuu0CKClYrJFLV1WDLS83eIIvz3Ro3rChsiXlJcrmkW3+3Rd4vT1n9ljp7D/rn5eiR60bFXHlVku658uudk0U37TpkeZjoketHKcvl0pq6Rv3m7d1RFz4z22MVr919gVRBjwiQgvwTS699clPAbrSStOKGUSrxBN70Sjy5MVdDHZCfq+wsl75xXmnYG7FhKKoQ0tWBoyc6Q0+ssypKCjq+v5raBt36tLnVNdI/e5AuGNrRg3ReWT8tnHqmBhZ0+78tcKtfn16We6KCiffuvkAqoEcEcEBbu6FNnx3Sxl2HJBkaf0axxpncBt5MrZC37ppiurKqf0gnXE+B/0ZaU9ugJzbUW/hOo/PpF8e0ub5JV55boiff3B31efr16dXZbquTcQ1JFaX5Gle9NmCfmZICtxZOHaGhxXmd/7dr6hot90R1F4/l10AqSliJ92hYKRELpIqa2gbd/T87ehTh6vePuhjhut9jKb8eTvUrdXo8TMD4t4vK9cMZZ4e9djJaOPVMLZgy3HK7ww2/+P9Xu/cwxTqksnHXIV375KaIxz0zZxy7+yLpJV2JdwAdamobQhbfOnL8pOau2qrHwlQ/tVIrxOzNqq3d0Evbw3f5v7S9QReNGJBSIaRfn15aMGV4VMuHww49KXjvRPciblYrq8ay/BpIZQQRIEHa2g0teaku4nFLXvowZPe7HTcrMzfqBu8Jvb3r76bPmQx+evU5ys5y2XLjDhX4Qu3/Y0a0y6+BVMdkVSBBNtc3mapd0ehrCVlzwo6bldkb9VMbPzd9TieVenL12A2jOvd9+fSLY7Zd6+2df4/b0tpol18DqY4eESBBrLwzD3Ws/2YVavls9wqiZpgNLcda4rNZnV1uHHe6rjhnUOfk0UTMZ1m+fpee3rxX3xw5SNMqSmLa5C7SzsUSu/siPdEjAiSIlV6KUMf6b1ZSz31io71ZHW42t8ldsrvinEGqGtJfd/1he9z2jzGjqblVv3l7d+cS6liW2Pp3Lray/BpIdayaARKkrd3QhJ+uizg8U1Lg1tt3Xxo2TMSr6FWkVTipol+fXpo4rFB/2vFF1OcoKXDr6IlTam6NrefHpZ4raqwKVqyOnhCkEiv3b4IIkEDhVs34PdalHHm4m1E8blZml4ymmwWTh2n8sGLJkA42t2hAfq6qhvTXmAfW9lhWbVW0S6iBdMLyXSBJzags1aPXjdIPn/9Ax1oCq492rSMSrMejMK+X7ruqUlecO0hSbCs0/DJ1KeiIgfmaMLxY0j8D3X/9+dOYQ4gU3RLqZEAvDJxCEAESqKa2Qfe+XBcQQvJysnXLpHLddumZAbvDdu+qbGo+qVuf3qZ/+98jWnRFRVzak6lLQf3fd7DAFy9r6xpTJoiwvw2cxGRVIEFC7SNyvLVN//XnnVpT12hqd9jHN9TrlQ/is+eIfxVOPP1/44fovMHJO5RamBdY9t2u+TEvvL8vJXbNZX8bOI0gAiRApH1EpI5KnZs+M7c77D0v1lq6yYXaVt6/CieeHfBFeW5t/19fHM8YX0MK80wFvlg1NZ8MWQ8mWZj9uUyFQIXUxdAMkABmS7N3bIIX2aHmVtNzECJ1u/uXjP77/31fza3tpq4fSkmBW89s3hPTOey2be8RjX1grQ7HYT5IJI3eL7Vx1yEdOHpCxX3dAZNjk2EOhh1bBgBWEUSABDA/KdT8O08z5zSzU68/jOzY59Uj63eZvn4w1445XQ+t/TSmcyRCIkKIJN378kdqam4N+rVkmIPB/jZIBgzNAAlgdlLo+DOKVZjXKy7ntNrtHut780vP+oqGFufFeJb0EiqESMkxB8Pp/W1CDRkisxBEgAQwu4/IuGFFuu+qyojnK/V01L0I90fcSre71BGCYvHnv/1d9X9vjukcycKljuXUdkqGORhO7m9TU9ugicvW6donN+n2Z9+PS2VapCaCCJAAVkqzX3HuIP3bReUhz+WS9I3zSnXxg+vD/hG32u0+bliR+uRkm/2WgvrFn5N/WCYS/+vxnQtDvwbhmO3RknqGwUSzY8sAM1ipg64IIglEN2RmC7WPiKdPL90x9UxNqyjpfGzRFRV69LpRKszLCTi21JOr715Uric21Ef8I261231NXaOOx1jePB1+ov37uiyYMlz9epsLFX3d2Xro/z1Pz8wZp3uu/Lrlazo5ByPR+9uwUgfdMVk1QSgYBKnjj/60ihItX/epVr69W0e+PKkjx0/qobWf6Nl39wT8PFxxbqkuqywJqHZZNaS/Ln5wfcg/4i51/BH37wRb6skNOzxTUuDWmPJCtbUbWvJSnS3fc6pYMHm4JgwvDljN8p0JQ01Nvp0z6Qz9y6jBkmR65VNXTheW8/9cJqKyKit10B09IglANyS6WlPXqIfXfqojXwau3Aj28+Av437VyK9q/LAibfn8sOk/4tlZLn3jvPAh98Spdq2pa9Tm+qaIm/GluxED+2r8sKKAm++CKSMizhXp36eXFkwZ0fl5pHkXXdk5B8Oq7j9rdi0tZqUOuiOI2IxuSHQV68+DlT/ir3zQoMc31Ic9znv8pOat2qq1dY2mzpvO/L0SXYdQN9c36YFvnhN2Mmf11ecE3LTDzbvo/lzJnjkYyczplTpIPgzN2IxuSHRl9udh065Dyspy9egmN/vH+fUPG/VqbeRw4Y87q/6a3EXI7OYfogo1hPrdi8r10vYG00Or/nkX4faxKcnQoVl/j1Gj90TQQO7fvTgZeomQGAQRm9ENia7Mvs7zn94aMHTj33n3ssrSsH/E/V7eYa2Ho+VUbBVVU921Y07XmrrGkMXfnthQr0euO1/989ym51B0n3eRjJVVneDvMZq3aqtcCpzgnKm9RJmOIGIzuiHRldnXufv8kc6ddy86osWzKjR31VY7mpexjhxvDTtk5lJHldS37ppi6Qbpn3eBQKF6jDK1lyjTEURsRjdk5mprN3qsQoj08xDJ4xvq9eh1/bVw6oiUKKWeKla+83nYrzOEGn+JXKmD5EYQsRndkJkp3HLtUD8PZt3zYq1+fGVF3NoK8xhCjS96jCCxaiYhEl0wCM6KtFxbUtCfB7PFsw41t+qFrf8bn8bCkt0H06OEPZBMXIZhJO26UZ/PJ4/HI6/Xq4KCAqebE7NgXfX0hKSXtnZDE5etC7lSwj8U99ZdUyQp4Oeh3TB0/a/+msDWwqqSArfevvtSfm+BCKzcvxPSI/Loo4+qvLxcubm5qqqq0ptvvpmIyyadRBUMgnOsLNfu/vMw7owiS/uUIPEafS2O7QsDpCvbg8hzzz2nO+64Qz/60Y+0bds2TZo0SZdffrn27MnsugVIT7Es187OcpnaedeMK88pFTnXHswTQbpIlv3PbJ+s+vOf/1w333yzbrnlFknSww8/rNdee00rVqxQdXW13ZcHEirW5dqXVZZq1rkNWv1BbJVOhxbniWK99mCpPdJBMu1/ZmuPSGtrq7Zs2aLp06cHPD59+nS98847dl46rGRJgUg/kfYZCbe3SE1tgyYuWxdzCOnAz3S8JdO+MEAskm3/M1t7RA4ePKi2tjYNHDgw4PGBAweqsbHnH9uWlha1tLR0fu7z+eLepmRKgUg/0S7X9v9hCBUf/p9RX9Uftu6z1A7ED0vtkS4i7XfVdQfvRP2sJ2SyqssV+M0YhtHjMUmqrq6Wx+Pp/CgrK4trO5ItBSI9WV2uHe4Pg9Txh+HtXYdUUuA2taOrJP2fd3arv8nlwIiMpfZIF1Ym1CeKrT0ixcXFys7O7tH7ceDAgR69JJK0aNEi3XnnnZ2f+3y+uIWRZEyBSF9Wqkaa/cOwcOoIPWyymqr3y1PRNh1dzJ88TBOHf4Wl9kgbybj/ma09Ijk5OaqqqtKaNWsCHl+zZo0uvPDCHse73W4VFBQEfMRLMqZApDezy7XX1pmbEzK0OE8rbhhluvAZYrdjr1dVQ/oTQpA2knH/M9uHZu6880796le/0m9+8xt99NFHWrhwofbs2aO5c+fafekAyZgCgZraBv367d2mjh2Qn6sZlaW66cIh9jYKnTbsPKiv3fOqql+pc7opQFzEMqHeLrYv3/32t7+tQ4cO6Sc/+YkaGhpUWVmpV155RUOGJPaPaTKmQGS21lPt+o8XaiMe55JUmJejRu+X+sXaT/SLP++0v3EpLMuluC5dNoyOzQYladEV7PGD1JaM+59lTIl3f+ntSLvgWt3mG4hGTW2D/uOFHWpqPul0U9LOo9edr08PHIv77sRZLulv916unNPYogupz+4VpFbu3xmz+24ypkBkpkhLdRG9PjlZuqyyVFdkufS1knzd+X+363hrW1zO3W5I/71xt26edEZczgc4ycqEertlVLRnF1w4LdJSXcTmeGu7Nn12SJI05ayBOnEyPiHEb/eh43E9XyQUX4SdkmX/s4zpEfFLphSIzBNp9RZit3HXIU0YXqz/3rjb1FyRvjnZOma61yRxQYDii8gUGdUj4pcsKRCZh1VZidARFj5vMtd7MXpof9NnHjm4XzQNsozii8gkGRlEAKewKst+7UZHr0hZ/z6mjp804itaOHWEqWMHmTxnLCIVX5Q6ii8yTIN0kXFDM4CT/Gv4Q63eQuwe/csuPfqXXfLkRv7zluWSbhw/VNlZLj2zea8afaF7rBJVW8FK8cXxw4psbw9gN3pEgATyr96C/bwnIpe5nzOpXDmnZSk7y6Ul36gIW+QpUavqKL6ITEMQARLMv3rLbKn27scV5eVozqRylXoY5onFnElDAwqU+V+X7v+vpQleVUfxRWQahmYAB8yoLFVer9N048rNEY+9cfwQ/e6vn3cWPzvU3KrV2/dr9gVlOtUuffb3o3ql9gu7m5x2ppxV0uOxeK2qa2s3oj7H4eaWiMckugQ3YCeCCOCQrGxzN6ZfrutZ0r3R16KHu5R679eno9fkyHEqtZoVamjDv6ouWrEsu21rN3Tvyx9FvMY9Mym+iPTB0AzgkIPHIr/zNct7/KS8x09q4dQzdXllz3f66MmOoY1Yl92arTPTPy8npnYCyYQgAjgknjdC/wqc//NOvV6tbYzbedORXbuLxmPZLRNVkYkIIoBDIm3HbZUh6TBDM2HZua+UlWW3oTBRFZmIIAI4pOtS3u63REb/46N3r+yAz7vuKxXvfVzi0ZsRKZza1ZsDOInJqoCD/EtGu09uLPHk6p6ZFbr35TqKn8Xgvm9WalC/3j1Wr9ixj0s8ejPYJRyZiCACmBDLcsxIwi0ZzcpS0JtSMkjGNnV35Hirvnn+VwNeK/+E0u5t908ojbZmSKSquS51BMxIvRnhwikb3iEduQzDSNq/JT6fTx6PR16vVwUFBU43BxnK6V1Qg10/ExTm5Wj2BYP16F8+i+k8XV+rtnZDE5etC/l/6Q8Lb901Jaqg6Q85UvDeDCshx87wC9jNyv2bIAKEEerdczQ3llh0vSntPnhcz2zeE3ZflET5+qB8fbj/qG3nXzB5mJav3xXTObq+Vp7eObr2yU0Rn/PMnHFR1xJxOrgCycDK/ZuhGSCESMsxXepYjjmtosT2d6rdi2wtmDK8M5h8+sXRmG/W0bIzhHSI/f+162v1wxlnmXpOLMtj41WdFcgUrJoBQojHcky7+IPJVSO/qgnDv5Lw6yfK+GFFcdlTx/9aNZksIhfr8tiur8/4YUWEECAMgggQQqoUl/JPkkw3pZ5cjTujKK67Fffrk6PCMFVJWR4LJB5BBAghVYpLZWe59I3z0m/ugX+Z6ozKUj12w6jO/XRicf8rdWpqbg36NZbHAs4giAAhpEpxqZraBj2xod7RNsTbv11UHjCxc0Zlqbb8eJoWTj1T/XpHH0j8OxgH07XYGYDEIYgAIZipfOr0u+dwE2pT2bPv7lVbuxFQ/XRzfZMWTBmuLfdM0zNzxmnB5OFxu15hXi+98YPJhBDAAayaAcJI9uJSZndr7S4vJ1vNrW02tCg+vF+e0q2/26J3dx8OGErpugzW7Nycvu5sHWsJ/702NZ/Uls8PR71kF0D0CCJABE4vxwxX2CraibKzLyjTb97eLSl5q6O+9uEXPR7rWv3U7Nycm8YP1SN/iby82elJx0CmIogAJnSv45EokYpj1f+9OarzTq0o0QXlhSlXsdUfmu7+nx365bfPV0lBrr7whS+pfuGwYlNBxOlJx0CmIogASeqVDxp069Nbezzu7xX47kXlejzKSaqHm1t0xbmDAnp6Pv3imJav3xlrsxPiyPGTunHlZvXr06uzYFmoDeLG/aMWSax7wACwB5NVgST0ygf7teCZniFE+ucN98k3o18pc+/LH6mt3ehWGK046vM5xXu8YxWMp9vS3q4rYFJh0jGQyegRAZJMTW2Dbn16W9hjDEmx7BLlrwjbdbgp0u6xycjfG5J7WpZ+d8tYHTzWEnQOT7JPOgYyGUEESCL+5biJ0H1ypr/nYO6q4D0xycqQ1OhrUZbLpatGfjXkcU5POgYQHEEESCLRLseNRrDJmdMqStSvTy8dOR668FeyMrPqxalJxwBCY44IkEQSsYQ0XEXYzfVNjoQQV4h/W8GqFyA1EUSAJBLvm6nVyZlO1dIo8eTqsRtG6bEbRqnE4gZ+yVJqH0B0bAsiu3fv1s0336zy8nL17t1bw4YN0+LFi9XaGnzDKQCR97cxozTMTT3SfirRBKG+7uyo2unXtbz6jMpSvXXXFN0z82xL50ilVS9dy9Zv3HVIbe2pMjUYsIdtc0T+9re/qb29XY8//riGDx+u2tpazZkzR83NzfrZz35m12WBlOafMDpv1dYetTEiWTB5mCYM/0rABEyrkzPHlBeqX+/TdOTLU6avO3F4sWqCVEE1q6n5pP7rz59qwvDizvYV57tNPdcl6ZHrUmejukgF6oBMZFsQmTFjhmbMmNH5+RlnnKGPP/5YK1asIIgAYYRaahrJiIH5PSZidp2c2b1UfNWQ/try+eGAkPJabYO8J8yHEEmKR0fE8vU7tXz9zs6bstmeGUOSJ4bdeBOpprZB81Zt7REuu5atJ4wgEyV01YzX61VhYehx3JaWFrW0tHR+7vP5EtEsIOl0XWr69s6Dpiqehrt5B3snnuWSuo4KRLta5p1dBy0/JxT/TfmR60apX+9eOvJl5PbMf3qrfvqtc5L6Jh5ul2R/LZSlq+s0raIkZYaYgHhJ2GTVXbt26Ze//KXmzp0b8pjq6mp5PJ7Oj7KyskQ1D0g6/t6MhdPODDtvJNJkTf878e69K92nJkS7WubIl20qzMuJ6rnd+Zt078t1uunCoSavf1LzVm1VTW1DXNpgh0jLsg39s8gckGksB5ElS5bI5XKF/XjvvfcCnrN//37NmDFD11xzjW655ZaQ5160aJG8Xm/nx969e61/R0CaiaVEebh34vE0trx/3M7lvymPKS9Uvz7mh12Wrq5L2omfZlcjsQMwMpHloZkFCxZo9uzZYY8ZOnRo57/379+vyZMna/z48XriiSfCPs/tdsvtNjdJDcgk0ZYoT1SBtGFfyZcU/YTVYA4ea9FPrz7HVKXXrj0KyViwzOycF2qhIBNZDiLFxcUqLja3Oda+ffs0efJkVVVVaeXKlcrKomwJEK1oSpQn4h12SYFbp9kwr2FAfq7GDyvSYzeM0t3P7zA1XyRZexQi7ePDDsDIZLYlg/379+uSSy5RWVmZfvazn+nvf/+7Ghsb1djYaNclgbTXdbfc8cOKIk5sTMQ77HMGe/SLP39q+vgrzxloac7LjMpSPXL9KFPnTtYeBXYABkKzLYi8/vrr2rlzp9atW6fBgwertLS08wNAYsSjQFoka+oOmJ6D0r9PL/3i2irLN+VxZxTFNGE3GfiH16wWmQPSncswYtlM3F4+n08ej0der1cFBQVONwdISf5VM5K1Aml+VgucheKSdMfUMzW0uI8G5OfqcHOr7n3ZfHGvUN+HP5ykys28ez0XdgBGOrJy/yaIABkgWB2RcO6ZebaK890q7uvWgqe36nCMG+G5T8tS75zsgCXCpZ5c3TPzbPXPc5u+KVOZFEgNBBEAPbS1G9r02SHN/93WkBM//ZMm37prirKzXNq465CufXKTLe2JtieDHgUg+Vm5f7OMBcgQ2VkuTRherJ9+6xy5ZG5+hp2rUPzvgKzW/7A6YRdAciOIABnGyqTJ4jx76/pQURRAQveaAZAcTNckSVBnQ7LW/wBgP4IIkKG67swbysFjLWG/Hi/JWv8DgP0IIgBCsjsgUFEUAHNEAIRkZ0E0KooCkAgiQNJqaze0cdchvfj+Pm3cdciRnWW7liYPJy8nO+zXp1UMUCkVRQEEwdAMkIQSWbgrUl2OU6fa5e6VpRMn20Oeo7m1TZKU5ZK65qWivBzde1Wlrji3lPofAIKioBmQZPylzLv/YtpRyjxS4Jnz1LtaU3fA8nlvnjBUUytKCBtAhqKyKpCi2toNTVy2LmQp9u6VT2MRKfBcevYArf3IegiJZxszAT1FSEdW7t8MzQBJZHN9U9j9YLoWAIu09DactnZDS1fXBd0Ez/9YNCHE//x4tDETsHcOwGRVIKmYLewVawGwSIEnHihSFp6/R6r769DoPaF5q7aqprbBoZYBiUUQAZKI2bodsdb3SERIoEhZaGZ6pKzuwQOkKoIIkEQi1e1wqaPrPtYCYHaHhHi0MZ1ZGYID0h1BBEgiXet2mNkdN1p2FiqTKFIWSaKG4IBUQBABkoyV3XGjFSnwuNRRhMyqfn166TGKlEWUqCE4IBWwagZIQqZ3x43xGituGNVj1UZJl1Ub1a/U6ck362VmqkJf92na/B9TlXNa8Pc3ZpepZsJyVn+PVKP3RNB5IuzBg0xCHREgw0W68beeate9f/pQ/71pT8RzPTNnXMCSXf+519Y16oX396mp+WTn14ItU82k5az+VTOSAsKIHYXrgESzcv9maAbIcNlZLo0fVqSrRn5V44cV9eh9yDktS6OHmntn3nVOQ01tgyYuW6drn9ykX7+9OyCESD2XqWbactZEDMEBqYChGQARWZ3TEKpqa1eGOt79L11dpylnDQy7nNV/3LSKkrQapknEEByQ7AgiACKyMqchXI2M7vzLVP974+6EVJRNRv4eKSBTMTQDIKKuq2yCMSR947xSZWe5oqra+nnTcVPHsZwVSD8EEQCmzKgs1XcvKg/59Sc21KumtiGqsOD78mTkg8RyViAdEUQAmNLWbuil7eEnjC5dXafivm7L5/7j+/vDfj1eFWUBJB+CCABTzJYll6G4Vm2NZ0VZAMmHIALAFLNDLgebW0JWbY0Gy1mB9MaqGQCmWFnCO35YUdCqrUV5ORpTXqhXaxsjnmfB5OGaMLyY5axAmiOIADDFalnyUDUy/vTBflNBZMTAvixrBTIAQQSAKf4lvPNWbZVLwcuSd5/HEaxGBhu+AeiKOSIATItHWXJ/z0qowRZWyACZhR4RAJbEWpY8mp4VAOmL3XcBOCKTdtoFMo2V+3dCekRaWlo0duxYbd++Xdu2bdPIkSMTcVkASax7z0pxX7dkdCz/3bjrEKtlgAyRkCDywx/+UIMGDdL27dsTcTkAKcI/mbWmtkHf//12ekeADGT7ZNVXX31Vr7/+un72s5/ZfSkAKaimtkHzVm3tUbW10XtC81ZtVU1t+LLyAFKbrT0iX3zxhebMmaM//vGP6tOnT8TjW1pa1NLS0vm5z+ezs3kAHNbWbmjp6rqgdUkMdUxeXbq6TtMqShimAdKUbT0ihmHoX//1XzV37lyNHj3a1HOqq6vl8Xg6P8rKyuxqHoAkYHb/ms31TYlrFICEshxElixZIpfLFfbjvffe0y9/+Uv5fD4tWrTI9LkXLVokr9fb+bF3716rzQOQQszuX2P2OACpx/LQzIIFCzR79uywxwwdOlT33XefNm3aJLc7cEvw0aNH6/rrr9dvf/vbHs9zu909jgeQvqiyCsC2OiJ79uwJmOOxf/9+XXbZZfrDH/6gsWPHavDgwRHPQR0RIL21tRuauGxdxP1r3rprCnNEgBSSFHVETj/99IDP+/btK0kaNmyYqRACIP1RZRUAe80AcFQ89q8BkLoo8Q4gKbS1G1HvXwMguSTF0AwAWOGvsgogszA0AwAAHEMQAQAAjmFoBkgg5kEAQCCCCJAgNbUNWrq6jh1mAaALhmaABGCHWQAIjiAC2CzSDrNSxw6zbe1Ju5IeAGxDEAFsxg6zABAaQQSwGTvMAkBoBBHAZuwwCwChEUQAm40pL1SpJ1ehFum61LF6Zkx5YSKbBQBJgSAC2My/w6ykHmGEHWYBZDqCCJAA7DALAMFR0AxIkBmVpZpWUUJlVQDogiACJBA7zAJAIIZmAACAYwgiAADAMQQRAADgGIIIAABwDEEEAAA4hiACAAAcQxABAACOIYgAAADHEEQAAIBjCCIAAMAxBBEAAOAYgggAAHAMQQQAADiGIAIAABxDEAEAAI4hiAAAAMcQRAAAgGMIIgAAwDG2B5GXX35ZY8eOVe/evVVcXKyrr77a7ksCAIAUcZqdJ3/++ec1Z84cPfDAA5oyZYoMw9COHTvsvCQAAEghtgWRU6dO6fbbb9eDDz6om2++ufPxr33ta3ZdEgAApBjbhma2bt2qffv2KSsrS+eff75KS0t1+eWX68MPP7TrkgAAIMXYFkQ+++wzSdKSJUv04x//WH/605/Uv39/XXzxxWpqagr6nJaWFvl8voAPAACQviwHkSVLlsjlcoX9eO+999Te3i5J+tGPfqRvfetbqqqq0sqVK+VyufT73/8+6Lmrq6vl8Xg6P8rKymL77gAAQFKzPEdkwYIFmj17dthjhg4dqqNHj0qSKioqOh93u90644wztGfPnqDPW7Roke68887Oz30+H2EEAIA0ZjmIFBcXq7i4OOJxVVVVcrvd+vjjjzVx4kRJ0smTJ7V7924NGTIk6HPcbrfcbrfVJgEAgBRl26qZgoICzZ07V4sXL1ZZWZmGDBmiBx98UJJ0zTXX2HVZAACQQmytI/Lggw/qtNNO04033qgvv/xSY8eO1bp169S/f387LwsAAFKEyzAMw+lGhOLz+eTxeOT1elVQUOB0cwAAgAlW7t/sNQMAABxDEAEAAI4hiAAAAMcQRAAAgGMIIgAAwDEEEQAA4BiCCAAAcAxBBAAAOIYgAgAAHEMQAQAAjiGIAAAAxxBEAACAYwgiAADAMQQRAADgGIIIAABwDEEEAAA4hiACAAAcQxABAACOIYgAAADHEEQAAIBjCCIAAMAxBBEAAOAYgggAAHAMQQQAADiGIAIAABxDEAEAAI4hiAAAAMcQRAAAgGMIIgAAwDEEEQAA4BiCCAAAcAxBBAAAOIYgAgAAHEMQAQAAjrE1iHzyySe66qqrVFxcrIKCAk2YMEHr16+385IAACCF2BpEZs6cqVOnTmndunXasmWLRo4cqSuvvFKNjY12XhYAAKQIl2EYhh0nPnjwoL7yla9ow4YNmjRpkiTp6NGjKigo0Nq1a3XppZdGPIfP55PH45HX61VBQYEdzQRgk7Z2Q5vrm3Tg6AkNyM/VmPJCZWe5nG4WgASwcv8+za5GFBUV6eyzz9ZTTz2lUaNGye126/HHH9fAgQNVVVUV9DktLS1qaWnp/Nzn89nVPAA2qqlt0NLVdWrwnuh8rNSTq8WzKjSjstTBlgFINrYNzbhcLq1Zs0bbtm1Tfn6+cnNz9dBDD6mmpkb9+vUL+pzq6mp5PJ7Oj7KyMruaB8AmNbUNmrdqa0AIkaRG7wnNW7VVNbUNDrUMQDKyHESWLFkil8sV9uO9996TYRi69dZbNWDAAL355pvavHmzrrrqKl155ZVqaAj+h2jRokXyer2dH3v37o35GwSQOG3thpaurlOw8V7/Y0tX16mt3ZYRYQApyPIckYMHD+rgwYNhjxk6dKjefvttTZ8+XYcPHw4YHxoxYoRuvvlm3X333RGvxRwRILVs3HVI1z65KeJxz8wZp/HDihLQIgBOsHWOSHFxsYqLiyMed/z4cUlSVlZgp0tWVpba29utXhZACjhw9ETkgywcByD92TZHZPz48erfv79uuukmbd++XZ988ol+8IMfqL6+XjNnzrTrsgAcNCA/N67HAUh/tgWR4uJi1dTU6NixY5oyZYpGjx6tt956Sy+++KLOO+88uy4LwEFjygtV6slVqEW6LnWsnhlTXpjIZgFIYrYt35Wk0aNH67XXXrPzEgCSSHaWS4tnVWjeqq1ySQGTVv3hZPGsCuqJAOjEXjMA4mpGZalW3DBKJZ7A4ZcST65W3DCKOiIAAtjaIwIgM82oLNW0ihIqqwKIiCACwBbZWS6W6AKIiKEZAADgGIIIAABwDEEEAAA4hiACAAAcQxABAACOIYgAAADHEEQAAIBjCCIAAMAxBBEAAOCYpK6sahgdW2b5fD6HWwIAAMzy37f99/FwkjqIHD16VJJUVlbmcEsAAIBVR48elcfjCXuMyzATVxzS3t6u/fv3Kz8/Xy5X8m+W5fP5VFZWpr1796qgoMDp5mQ8Xo/kw2uSXHg9kks6vR6GYejo0aMaNGiQsrLCzwJJ6h6RrKwsDR482OlmWFZQUJDyP0TphNcj+fCaJBdej+SSLq9HpJ4QPyarAgAAxxBEAACAYwgiceR2u7V48WK53W6nmwLxeiQjXpPkwuuRXDL19UjqyaoAACC90SMCAAAcQxABAACOIYgAAADHEEQAAIBjCCJxcv/99+vCCy9Unz591K9fv6DH7NmzR7NmzVJeXp6Ki4t12223qbW1NbENzWBDhw6Vy+UK+Lj77rudblbGePTRR1VeXq7c3FxVVVXpzTffdLpJGWnJkiU9fg9KSkqcblZG2bBhg2bNmqVBgwbJ5XLpj3/8Y8DXDcPQkiVLNGjQIPXu3VuXXHKJPvzwQ2camwAEkThpbW3VNddco3nz5gX9eltbm2bOnKnm5ma99dZbevbZZ/X888/r3//93xPc0sz2k5/8RA0NDZ0fP/7xj51uUkZ47rnndMcdd+hHP/qRtm3bpkmTJunyyy/Xnj17nG5aRvr6178e8HuwY8cOp5uUUZqbm3Xeeedp+fLlQb/+n//5n/r5z3+u5cuX691331VJSYmmTZvWuf9a2jEQVytXrjQ8Hk+Px1955RUjKyvL2LdvX+djzzzzjOF2uw2v15vAFmauIUOGGA899JDTzchIY8aMMebOnRvw2FlnnWXcfffdDrUocy1evNg477zznG4G/kGS8cILL3R+3t7ebpSUlBg//elPOx87ceKE4fF4jMcee8yBFtqPHpEE2bhxoyorKzVo0KDOxy677DK1tLRoy5YtDrYssyxbtkxFRUUaOXKk7r//fobGEqC1tVVbtmzR9OnTAx6fPn263nnnHYdaldk+/fRTDRo0SOXl5Zo9e7Y+++wzp5uEf6ivr1djY2PA74vb7dbFF1+ctr8vSb3pXTppbGzUwIEDAx7r37+/cnJy1NjY6FCrMsvtt9+uUaNGqX///tq8ebMWLVqk+vp6/epXv3K6aWnt4MGDamtr6/HzP3DgQH72HTB27Fg99dRTOvPMM/XFF1/ovvvu04UXXqgPP/xQRUVFTjcv4/l/J4L9vnz++edONMl29IiEEWxSV/eP9957z/T5XC5Xj8cMwwj6OMyx8hotXLhQF198sc4991zdcssteuyxx/TrX/9ahw4dcvi7yAzdf8752XfG5Zdfrm9961s655xzNHXqVL388suSpN/+9rcOtwxdZdLvCz0iYSxYsECzZ88Oe8zQoUNNnaukpER//etfAx47fPiwTp482SP5wrxYXqNx48ZJknbu3Mk7QRsVFxcrOzu7R+/HgQMH+NlPAnl5eTrnnHP06aefOt0USJ0rmBobG1VaWtr5eDr/vhBEwiguLlZxcXFczjV+/Hjdf//9amho6Pzhev311+V2u1VVVRWXa2SiWF6jbdu2SVLALzviLycnR1VVVVqzZo3+5V/+pfPxNWvW6KqrrnKwZZCklpYWffTRR5o0aZLTTYGk8vJylZSUaM2aNTr//PMldcyzeuONN7Rs2TKHW2cPgkic7NmzR01NTdqzZ4/a2tr0/vvvS5KGDx+uvn37avr06aqoqNCNN96oBx98UE1NTfr+97+vOXPmqKCgwNnGZ4CNGzdq06ZNmjx5sjwej959910tXLhQ3/jGN3T66ac73by0d+edd+rGG2/U6NGjNX78eD3xxBPas2eP5s6d63TTMs73v/99zZo1S6effroOHDig++67Tz6fTzfddJPTTcsYx44d086dOzs/r6+v1/vvv6/CwkKdfvrpuuOOO/TAAw9oxIgRGjFihB544AH16dNH1113nYOttpHDq3bSxk033WRI6vGxfv36zmM+//xzY+bMmUbv3r2NwsJCY8GCBcaJEyeca3QG2bJlizF27FjD4/EYubm5xte+9jVj8eLFRnNzs9NNyxiPPPKIMWTIECMnJ8cYNWqU8cYbbzjdpIz07W9/2ygtLTV69eplDBo0yLj66quNDz/80OlmZZT169cHvV/cdNNNhmF0LOFdvHixUVJSYrjdbuOiiy4yduzY4WyjbeQyDMNwKgQBAIDMxqoZAADgGIIIAABwDEEEAAA4hiACAAAcQxABAACOIYgAAADHEEQAAIBjCCIAAMAxBBEAAOAYgggAAHAMQQQAADiGIAIAABzz/wOtZ2zS0Qt1MQAAAABJRU5ErkJggg==", | |
| "text/plain": [ | |
| "<Figure size 640x480 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "# plot real data\n", | |
| "plt.scatter(rets.iloc[:,0],rets.iloc[:,1])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "id": "76e78153-ca49-44a5-a5aa-5c3f89fa3d8e", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [] | |
| } | |
| ], | |
| "metadata": { | |
| "celltoolbar": "Slideshow", | |
| "kernelspec": { | |
| "display_name": "Python 3 (ipykernel)", | |
| "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.12.2" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 5 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment