{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Linear Regression Plot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A function to plot linear regression fits. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> from mlxtend.plotting import plot_linear_regression" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Overview" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `plot_linear_regression` is a convenience function that uses scikit-learn's `linear_model.LinearRegression` to fit a linear model and SciPy's `stats.pearsonr` to calculate the correlation coefficient. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### References\n", "\n", "- -" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 1 - Ordinary Least Squares Simple Linear Regression" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgUAAAFkCAYAAACw3EhvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3Xd0VNXax/HvnlBCNzQB6ZJQpKM0BRGQhCDofRE0kFAV\nUKnyKhb0UtSr6BUpyoX3ukQMxIJYKbkgUpQiJIhSJAnSVHooAtKS/f6RZC5DCplkkkn5fdaatTL7\n7HPOcwLJPNnVWGsRERERcXg7ABEREckblBSIiIgIoKRAREREkikpEBEREUBJgYiIiCRTUiAiIiKA\nkgIRERFJpqRAREREACUFIiIikkxJgYiIiABuJgXGGIcxZqox5ldjzAVjTJwxZmIa9aYYY/5IrrPS\nGFPPcyGLiIhITnC3peAZYDjwONAAeBp42hgzMqWCMWYCMBIYBrQGzgORxphiHolYREREcoRxZ0Mk\nY8xXwBFr7aPXlC0GLlhrByS//wN43Vo7Pfl9WeAoMNBa+7EngxcRERHPcbelYAPQxRjjD2CMaQbc\nCSxLfl8HqAJ8k3KCtfYssBlo54mARUREJGcUcbP+q0BZ4BdjTAJJScXz1toPk49XASxJLQPXOpp8\nLBVjTAUgENgPXHQzHhERkcLMF6gNRFprT2b3Yu4mBQ8B/YCHgV1Ac2CGMeYPa+0HWYwhEFiYxXNF\nREQE+gOLsnsRd5OCacA/rLWfJL/faYypDTwLfAAcAQxwM66tBTcD29K55n6A8PBwGjZs6GY4+cu4\nceOYPn26t8PIFYXlWfWcBYues2ApDM+5e/duQkNDIfmzNLvcTQpKAgnXlSWSPDbBWrvPGHME6AL8\nBM6Bhm2At9O55kWAhg0b0rJlSzfDyV/KlStX4J8xRWF5Vj1nwaLnLFgKy3Mm80j3u7tJwVfARGPM\nb8BOoCUwDvj3NXXeSq4TR1LmMhX4Dfgi29GKiIhIjnE3KRhJ0of820Bl4A9gTnIZANbaacaYksBc\n4CZgPdDdWnvZIxGLiIhIjnArKbDWngeeTH5lVG8SMCnLUYmIiEiu094HuSgkJMTbIeSawvKses6C\nRc9ZsBSW5/Qkt1Y0zJEAjGkJREVFRRWmASEiIiLZFh0dTatWrQBaWWujs3s9d8cUeM3Bgwc5ceKE\nt8MQyVMqVqxIzZo1vR2GiBQQ+SIpOHjwIA0bNuTChQveDkUkTylZsiS7d+9WYiAiHpEvkoITJ05w\n4cKFQrHAkUhmpSxacuLECSUFIuIR+SIpSFEYFjgSERHxFs0+EBEREUBJgYiIiCRTUiAiIiKAkgIR\nEZEsOXfuHBs3bvR2GB6lpMDL5s+fj8Ph4ODBg94ORURE3LBx40b69OnDpUuXvB2Kxygp8DJjDMaY\nLJ27e/duJk+eXOASijlz5vD+++9n6xqTJ0/G4XCk+7pRdr9161ZGjhxJ48aNKV26NLVq1eKhhx4i\nNjY2Vd2M7hMYGJit5xCRvOvee+/lxx9/pHjx4t4OxWPy1ZTEgmjAgAGEhIRQrFgxt8/dtWsXkydP\n5p577ilQ89TfeecdKlWqxMCBA7N8jd69e+Pv75+q/Nlnn+X8+fPccccdGZ7/2muvsWHDBvr06UPT\npk05cuQIs2bNomXLlmzevJlGjRo564aHh6c6f8uWLcycOVNJgUgBV7FiRW+H4FFKCrzMGJOlhADA\nWpvlVoaMXLhwgZIlS3r8urmpcePGNG7c2KXst99+47fffmPYsGEUKZLxf/3x48cTERHhUq9v3740\nadKEV199lQULFjjL+/Xrl+r81atXY4zh4YcfzuaTiIjkHnUfeFlaYwpq165Nr169+P7772nTpg0l\nSpTg1ltv5YMPPnDWef/99+nbty8AnTp1wuFw4OPjw7p165x1li9fTseOHSldujRly5blvvvuY9eu\nXS73HzRoEGXKlOHXX38lODiYsmXLEhoa6jy+efNmgoODKV++PKVLl6ZZs2bMnDnT5Rp79uzhwQcf\npEKFCpQoUYI77riDr776yqXO+++/j8PhYP369QwfPpyKFStSrlw5Bg4cyOnTp5316tSpw86dO1mz\nZo2zCb5z587O47/++iu//vprVr7VLFq0CID+/fvfsG7btm1TJQ716tXjtttuY/fu3Rmee/nyZZYs\nWUKnTp2oVq1almIVkbzB25sG5jYlBV6W1pgCYwyxsbH06dOHbt268eabb1K+fHkGDx7s/EDq2LEj\no0ePBmDixImEh4fzwQcfOJeB/uCDD7jvvvsoU6YM06ZN48UXX2T37t106NDBJQExxnD16lUCAwOp\nUqUK//znP+nduzcAK1eu5O677+aXX35h7NixvPnmm3Tu3JmlS5c6z9+5cydt27Zlz549PPvss7z5\n5puULl2aBx54gC+++CLV844cOZI9e/YwefJkBg4cyMKFC/nb3/7mPD5jxgyqV69Ow4YNWbhwIeHh\n4Tz//PPO4507d6Zr165Z+l4vWrSIGjVqcNddd2XpfICjR4/esLlw6dKlnD59OlPJh4jkXevXr6dl\ny5YcOnTI26HkHmutV19AS8BGRUXZ9ERFRdkb1cmv5s+fbx0Ohz1w4ICzrHbt2tbhcNjvv//eWXb8\n+HHr6+trn3rqKWfZ4sWLrcPhsGvXrnW55rlz56yfn58dMWKES/mxY8fsTTfdZIcPH+4sGzRokHU4\nHPb55593qZuQkGDr1Klj69ata8+ePZtu/F26dLHNmze3V65ccSm/8847bf369V2e0xhjW7duba9e\nveosf/31163D4bBfffWVs6xx48b2nnvuSfN+tWvXtnXr1k03nvTs3LnTGmPss88+6/a5KT744ANr\njLHz58/PsF7v3r1tiRIl7JkzZ7J8r8woyD8XIt50+fJl+9xzz1mHw2Hvuusue/DgQW+HlK6U3wNA\nS+uBz2S1FORRjRo1on379s73FStWpH79+plqOl+5ciVnzpzh4Ycf5uTJk86XMYY2bdrw7bffpjpn\nxIgRLu+3bdvG/v37GTt2LGXKlEnzPqdOneLbb7+lT58+nDlzxuVe3bp1IzY2lsOHD7ucM2zYMHx8\nfJzvH3vsMXx8fFi2bNkNnwtg37597N27N1N1rxUeHo4xJs3+/8z45ZdfGDlyJHfeeScDBgxIt96f\nf/7JsmXL6NGjB2XLls3SvUTEe2JjY7nzzjuZNm0aU6dOZc2aNdSoUcPbYeUaDTTMo9KaTeDn58ep\nU6dueG5sbCzWWu65555Ux4wxqT6sihQpQvXq1V3K9u7dizGG2267Ld37xMXFYa3lhRdeYOLEiWne\n69ixY1StWtX5vl69ei51SpUqRdWqVdm/f/8Nnys7IiIi0hx8mBlHjx6lR48e+Pn58cknn2Q4uHPx\n4sVcunRJXQci+Yy1ln//+9+MHTuWW265hQ0bNtxwllJBpKQgj7r2r+lr2UwMeklMTMQYQ3h4ODff\nfHOq49cPoMvqHNvExEQA/vd//zfdqXfXJwHe8N1333HgwAFee+01t889e/YsQUFBnD17lu+++44q\nVapkWH/hwoWUK1eOHj16ZDVcEcllly9f5qGHHuLzzz/n0UcfdY6NKoyUFORj6f3Feuutt2KtpVKl\nSi4j992Rco0dO3ake426desCULRo0Uzdx1pLbGwsd999t7Ps/PnzHD582OVD1NPTLBcuXIjD4SAk\nJMSt8y5dusR9991HXFwc33zzDfXr18+w/pEjR1izZg1DhgyhaNGi2QlZRHJRsWLFqF27NkuWLHEZ\n+FwYaUxBPlaqVCmstS5T+gACAwMpW7Ysr7zyClevXk113okTJ2547ZYtW1KnTh3eeustzpw5k2ad\nSpUq0alTJ+bOncuRI0cydZ958+a5xPTOO++QkJBAcHCwy3Nd/0wp3J2SePXqVRYvXkyHDh1SdZGk\nOHnyJHv27OGvv/5yliUmJtK3b182b97M4sWLad269Q3vFRERgbVWXQf5VExMDMuXL09z1Uop+KZP\nn17oEwJQS0G+1rx5c3x8fHjttdc4ffo0xYsXp0uXLlSsWJE5c+YwYMAAWrZsycMPP0ylSpU4ePAg\nS5cu5a677kq11sD1jDHMmTOHXr160bx5cwYPHkzVqlX55Zdf2LVrF8uXLwfg7bffpkOHDjRp0oRH\nH32UunXrcvToUTZu3Mjvv//Otm3bXK57+fJlunTpQt++ffnll1+YM2cOHTp04L777nPWadWqFf/6\n1794+eWXqVevHpUrV3aOj+jcuTMOhyPTicGKFSs4efJkhh/Us2bNYsqUKaxZs4aOHTsC8OSTT/LV\nV1/Rq1cvTpw4wcKFC13OSet6CxcupFq1ai4tIZL3xcfH069fGJGR/x3sGhgYTEREOH5+fl6MTMQL\nPDGFITsvNCUx1ZTEOnXq2F69eqWq26lTJ9u5c2eXsnfffdfWq1fPFi1aNNX0xLVr19ru3btbPz8/\nW7JkSevv72+HDBlio6OjnXUGDRpky5Ytm258GzZssIGBgbZcuXK2TJkytnnz5vadd95xqbNv3z47\naNAgW61aNVu8eHFbo0YN26tXL7tkyZJUz7l+/Xo7YsQIW6FCBVu2bFk7YMAAe+rUKZfrHT161Pbs\n2dOWK1fOOhwOl+mJ7k5JDAkJsb6+vqnuca1Jkyal+t516tTJOhyOdF/X27Nnj3U4HC5TRnNaQf65\nyE2BgcHWx6e8hXALBy2EWx+f8jYwMNjboYnckKenJBrr5dWajDEtgaioqChatmyZZp3o6GhatWpF\nRnUkb3v//fcZMmQIW7Zs0b+hh+jnIvtiYmKSx4qEA9e2/oQDYcTExKS5h4bkP4cPH8bHx4fKlSt7\nOxSPSvk9ALSy1kZn93oaUyAihdZ/17zoeN2RpC6guLi4XI1HcsYXX3xBkyZNePrpp70dSp6npEBy\njbdbpUSud+uttyZ/te66I2uBvDGlVrLu/PnzDB8+nAceeIA777yT119/3dsh5XkaaCi5Jid2dBTJ\njoCAAAIDg1m1ajQJCZakFoK1+PiMoWvXYHUd5GNbt26lf//+/Pbbb8ydO5dHH31Uv4MyQS0FkisG\nDhxIQkKC+r4lz4mICKdr17ZAGFATCKNr17ZERIR7OTLJioSEBP7xj3/Qrl07ypQpQ3R0NMOGDVNC\nkElqKRCRQs3Pz48VK5YSGxtLXFwc9erVUwtBPjZ16lSmTJnCM888w6RJkyhWrJi3Q8pXlBSIiAD+\n/v5KBgqAUaNG0blzZ+eaI+IedR/kA4MGDaJOnTreDkNEJM+rUKGCEoJsUFKQDxhj8m1/2Jw5c+jb\nty+1atXC4XAwZMgQt84/cuQIw4YNo27dupQsWZJ69eoxfvx44uPj06z/0Ucf0b59e0qXLo2fnx93\n3nkna9as8cCTiIgUfG51Hxhj9gG10jj0trV2VHKdKcAjwE3A98Bj1lpN9i2kpk2bxrlz52jdunWa\n+yNk5Pz587Rt25a//vqLxx9/nBo1arB9+3Zmz57NmjVriIqKcqk/adIkpk6dSp8+fRg8eDBXrlxh\nx44d/P777558JBGRAsvdMQW3A9fu6dsE+A/wMYAxZgIwEhgA7AdeAiKNMQ2ttZezHa3kO+vWraNG\njRoAlClTxq1zv/zySw4dOsTSpUsJCgpylvv5+TF16lS2b99Os2bNANi0aRNTp05l+vTpjB492nMP\nICJ5SmxsLIsWLeLFF1/Mty2oeZlb3QfW2pPW2mMpL6AnsNdauz65yhhgqrX2a2vtDpKSg2rAAx6N\nugA5d+4cY8eOpU6dOvj6+nLzzTfTrVs3fvzxxwzPu3DhAuPHj6dmzZr4+vrSoEED/vnPf6aq53A4\nGD16NIsWLaJBgwaUKFGC22+/nfXr16eq+8cffzBkyBCqVKmCr68vjRs35r333ktV79ChQ+zZsydT\nz5eSEGTF2bNnAVItS1qlShUASpQo4Sx76623qFq1qjMhOH/+fJbvKyJ5j7WWd999lxYtWvDBBx+k\n24Uo2ZPlMQXGmKIkLRb+bvL7OkAV4JuUOtbas8BmoF32wiy4hg8fzty5c+nTpw9z5szhqaeeomTJ\nkuzevTvD83r27MmMGTMIDg5m+vTpNGjQgKeeeorx48enqrtmzRrGjRtHWFgYU6dOJT4+nu7du7Nr\n1y5nnWPHjtGmTRtWr17N6NGjmTlzJv7+/gwdOjTVjophYWE0bNjQM9+ADHTs2BFjDGPGjGHz5s38\n/vvvLFu2jFdeeYW//e1vBAQEOOuuXr2aO+64gxkzZlCpUiXKlClDtWrVePvtt3M8ThHJWSdPnqR3\n79488sgjPPzww/z4449UqFDB22EVTFndSQnoC1wGqiS/bwckADdfV+8jICKD6xTqXRJvuukmO2rU\nqAzrDBo0yNapU8f5/vPPP7fGGPuPf/zDpV6fPn2sj4+P/fXXX51lxhjrcDjstm3bnGUHDx60JUqU\nsL1793aWDR061N5yyy2pdhMMCQmxfn5+9uLFi86yTp06WR8fH/ce1FpbunRpO3jwYLfOeffdd62f\nn581xjhfgwcPtgkJCc46p06dssYYW7FiRVu2bFn75ptv2k8++cQGBwdbY4ydN2+e27HmBwX550Ik\nxcqVK221atVs+fLl7aeffurtcPIcT++SmJ3ZB0OA5dZa90aPiYubbrqJzZs3c/jw4Uyfs3z5cooU\nKcKoUaNcysePH09iYiLLly93KW/fvj3Nmzd3vq9Rowb3338/kZGRzv0IlixZQs+ePUlISODkyZPO\nV7du3Thz5gzR0f/dfOvbb7/l6tWrWXlct91yyy20adOGmTNn8vnnnzN+/HjCw8OZMGGCs865c+cA\niI+P591332XcuHE8+OCDfP311zRq1IiXXnopV2IVEc+5dOkS48eP595776VRo0b89NNP/M///I+3\nwyrwsrR4kTGmJtAV17ECRwAD3Awcvab8ZmDbja45btw4ypUr51IWEhJCSEiI2/EdPnw4ww9ZX19f\nGjVqlOE1du3axcWLF9M8VrVqVapWrep2XGmZNm0agwYNokaNGrRq1Yrg4GAGDBiQ4boEBw4coFq1\napQqVcqlPKVJ/8CBAy7laW3qEhAQwIULFzh+/DjGGE6fPs28efOYO3duqrrGGI4dO5aVx8uW77//\nnvvuu48ffviBFi1aANCrVy/KlCnDlClTGDp0qHOcBEDRokXp3bu3S9wPPfQQkyZN4rfffqN69eq5\n/gwikjXx8fF8+OGH/POf/2Ts2LE4HJpBHxERQUREhEvZmTNnPHqPrK5oOISkD/5lKQXW2n3GmCNA\nF+AnAGNMWaANcMOO3enTp3tsXfy5c+cyefLkdI83atSInTt3ZniNPn36uPS5X+vvf/87kyZNyk6I\n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\nf/xxbr75ZmrUqOESw5AhQ6hSpQq+vr40btzY5UMtPT///DODBw/m1ltvpUSJElStWpWhQ4e6NH9P\nnjyZp59+GkgaP5DSRH7w4EFn2fVjCtx53k8++YSXX36ZGjVqUKJECbp27crevXtd6v7111/s2bOH\nkydP3vCZPv30U+644w6XpYPr169Ply5d+PjjjzM8d+PGjSQkJKQabf3www9jreXDDz9Mdc6pU6d4\n4YUXmDp1KuXKlbthfCI57b8/Px2vO3I3kNQ60LZtW2bMmMHrr7/OypUrqV69eq7GKDlDLQVedvjw\nYe644w7Onj3L8OHDqV+/Pr///juLFy/mwoULlC1blmPHjtGuXTsuXrzImDFjKF++PO+//z69evXi\n008/5f7773e55tSpUylevDhPPfVUqpaCxx9/nMqVK/P3v/+d8+fPA3Ds2DHatGmDj48Po0ePpmLF\niixfvpyhQ4fy559/Mnr06HTjX7lyJfv27XMmFDt37mTu3Lns2rWLjRs3AtC7d29iYmL48MMPmTFj\nBhUqVACgUqVKAKlaMdx93ldffRUfHx+eeuopzpw5w2uvvUZoaKjz/gA//PAD99xzD5MmTeLFF19M\n93mstfz000/O7Zev1bp1a1auXMn58+cpVapUmuenbHl9/T7wKS0yafW7Tpw4kapVqzJs2DCmTJmS\nbmwiueXWW29N/mod/20pAFgDwJgxY6hbty6bN2922cJcCgBP7KqUnReFeJdEa60dMGCALVKkiI2O\njk63ztixY63D4bAbNmxwlp07d87WrVvXZffENWvWWGOMrVevnr106ZLLNebPn2+NMfbuu++2iYmJ\nLseGDh1qb7nlFnvq1CmX8pCQEOvn52cvXrxorbV2//791hjjspNhyrFrffjhh9bhcNjvvvvOWfbG\nG29Yh8NhDxw4kKp+7dq17eDBg7P8vLfddpu9evWqs3zmzJnW4XDYnTt3utR1OBx2ypQpqe5/rRMn\nTlhjjH3ppZdSHXvnnXesw+GwMTEx6Z4fHR1tjTH25ZdfdilfsWKFNcbYsmXLupRv377dFilSxK5a\ntcpaa+2kSZOsw+GwJ0+ezDBOawv2z4V4X2BgsPXxKW/hAwsHLXxgHY7SFrBPPPGEPX/+vLdDFOv5\nXRLVfeBF1lq++OILevXqlWG2vXz5clq3bk27du2cZaVKlWLYsGHs37+fXbt2udQfNGhQmnuUG2N4\n9NFHU/1lvmTJEnr27ElCQgInT550vrp168aZM2eIjk5/463ixYs7v7506RInT56kTZs2WGszPC8j\n7j7vkCEaULgoAAAgAElEQVRD8PHxcb7v0KED1lp+/fVXZ9ndd99NQkICL7zwQob3/uuvv1I9Vwpf\nX1+XOmlp0aIFbdq04bXXXmP+/PkcOHCA5cuXM2LECIoWLZrq3NGjR9OjRw+6dOmSYVwiuS0iIpyu\nXdsCYUBNIIyuXTsQGRnJ7Nmzc208kuQudR940fHjxzl79iy33XZbhvUOHDhA27ZtU5U3bNjQebxR\no0bO8tq1a6d7reuPHT9+nNOnTzNv3jzmzp2bqr4xhmPHjqV7vVOnTjFp0iQ++ugjl3rGGM6cOZPu\neRlx93mvHRsB4Ofn54zNXSnN/indANe6ePGiS530LFmyhIceeoihQ4diraVIkSI8+eSTrFmzhpiY\nGGe9jz76iE2bNrFz50634xTJaX5+fqxYsZTY2Fji4uKoV68e/v7+3g5LcpiSggIoow+t64+lTCEK\nDQ1l4MCBaZ7TtGnTdK/Xp08fNm3axNNPP02zZs0oXbo0iYmJBAYG5tr0pGtbCa5lM5jxkJ7y5ctT\nvHhxDh8+nOpYSlm1atUyvEbVqlVZt24de/fu5ciRI/j7+1O5cmVuueUWAgICnPWefvpp+vTpQ5Ei\nRThw4ADw30Tm4MGDXLp0iapVq7r9DCKe5O/vr2SgEFFS4EWVKlWibNmy7NixI8N6tWrVYs+ePanK\nd+/e7TyenRjKlClDQkICnTt3duvc06dPs3r1aqZOncrzzz/vLI+Li0tV153FiXLyeW/EGEOTJk3Y\nunVrqmObN2+mbt266Q4yvN6tt97qHLC1a9cuDh8+7DLL4tChQyxatIiFCxemOrdly5Y0b948y10w\nIiJZoTEFXmSM4YEHHuCrr77K8Jd/cHAwP/zwA5s3b3aWnT9/nnnz5lGnTh2XpnR3ORwOevfuzaef\nfppmM/aJEyfSPTflL/TrWwSmT5+eKglI+SBNa/Gi6+XE87ozJfHBBx9ky5YtLv8me/bsYfXq1fTt\n29el7q+//uoydiEt1lqefvppSpUqxfDhw53ln3/+OZ999hmff/658/XQQw9hjCE8PJzp06e7+ZQi\n2fPbb78xcODALHf9Sf6nlgIve+WVV1i5ciUdO3Zk2LBhNGzYkD/++IPFixfz/fffU7ZsWZ555hki\nIiIICgpi9OjRlC9f3jmIbcmSJZm+V3rN6a+++ipr1qyhTZs2PProozRq1Mi5bOnq1avTTQzKlClD\nx44dmTZtGpcvX+aWW27hP//5D/v37091r1atWmGt5bnnnuPhhx+maNGi9OrVK82uDk8977UyOyUR\nkqZt/t///R/BwcH87//+L0WKFGH69OlUrVqVJ5980qVu586dcTgcLonB2LFjuXjxIs2bN+fKlSss\nXLiQrVu3smDBApe53L169Up1723btgFJiyWVL18+S88qkhWffPIJw4cPp2TJkhw4cCDDbkMpuJQU\neFm1atXYvHkzL7zwAosWLeLs2bPccsstBAcHO0f3Vq5cmY0bNzJhwgRmz57NxYsXadq0KV9//TVB\nQUEu18uomT69Y5UrV+aHH35gypQpfPbZZ8yZM4cKFSpw2223MW3atAyvERERwahRo3jnnXew1hIY\nGMjy5cupVq2aS93bb7+dl156iX/9619ERkaSmJjIvn37qFmzJsYYl7qeeN60yq+/T3pKly7N2rVr\nGTduHC+//DKJiYncc889vPnmm841FjK6ZosWLZgxYwaLFi3C4XDQunVrVq9eTceO1y8EI+J9KWuR\nzJ8/nz59+vCvf/1LCWkhZrIyGMujARjTEoiKiopyWUHuWtHR0bRq1YqM6ogUNvq5kOzauHEjoaGh\nHDt2jNmzZzNgwIA8tzmZZCzl9wDQylqb7UFIGlMgIlLIJCQkMHnyZDp06EDlypX58ccfGThwoBIC\nUVIgIlLYGGP4/vvvmThxIuvXr79mWWMp7DSmQESkkHE4HCxfvjzdNT6k8FJLgYhIIaSEQNKipEBE\nREQAJQUiIgXS5cuXM9y8SyQtSgpERAqY3bt307ZtW5566ilvhyL5jJICEZECwlrLnDlzaNWqFRcu\nXHDZa0MkM/LV7IOUDXFERD8P4urYsWMMHTqUr7/+mscee4w33njDuSpqdsTExLB3715tnVxI5Iuk\noGLFipQsWZLQ0FBvhyKSp5QsWZKKFSt6OwzxsuXLlzNo0CCstXz55Zf07Nkz29eMj4+nX78wIiOX\nOcsCA4OJiAjHz88v29eXvClfJAU1a9Zk9+7dGe7YJ1IYVaxYkZo1a3o7DPGimTNnMmbMGIKCgnjv\nvfeoUqWKR67br18Yq1ZtAsKBjsA6Vq0aTUhIKCtWLPXIPSTvcTspMMZUA14DugMlgVhg8LVrLhtj\npgCPADcB3wOPWWvjshNozZo19ctPROQ6wcHB+Pj48Pjjj3tsmeKYmJjkFoJwoH9yaX8SEiyRkWHE\nxsaqK6GAcispMMakfMh/AwQCJwB/4NQ1dSYAI4EBwH7gJSDSGNPQWnvZM2GLiAhAvXr1qFevXqbr\nZ2aMwN69e5O/un5nz7sBiIuLU1JQQLk7++AZ4KC19hFrbZS19oC1dpW1dt81dcYAU621X1trd5CU\nHFQDHvBQzCIi4qb4+HiCgnpQv359goODCQgIICioB6dOnUpV9797Iay77shaALeSEMlf3E0KegJb\njTEfG2OOGmOijTGPpBw0xtQBqpDUkgCAtfYssBlo54mARUTEfa5jBA4C4axatYmQkNQDuAMCAggM\nDMbHZ3Ry/UNAOD4+YwgMDFYrQQHmblJQF3gM2AN0A+YAM40xYcnHqwAWOHrdeUeTj4mIiBv+/PNP\nPv3002xdI2WMQELCTJLGCNQgaYzADCIjlxEbG5vqnIiIcLp2bQuEATWBMLp2bUtERHi2YpG8zd2B\nhg7gB2vtC8nvtxtjGgMjgA+yE8i4ceMoV66cS1lISAghISHZuayISI7Ijfn7mzZtIjQ0lOPHj9Ox\nY0cqVaqUpetkZYyAn58fK1YsJTY2lri4OK1TkAdEREQQERHhUnbmzBnP3sRam+kXSQMH511XNgI4\nlPx1HSARaHpdnTXA9HSu2RKwUVFRVkQkrzt58qQNDAy2JLWKWsAGBgbb+Ph4j93jypUrdvLkydbH\nx8e2adPGxsbGZut6e/bsSY413IK95vWBBWxMTIyHIpfcFhUVlfL/sKV14/M8vZe73QffA/WvK6sP\nHEhOMPYBR4AuKQeNMWWBNsAGN+8lIpLnuNM3nxX79u3j7rvvZvLkyTz33HOsX78+2wP7NEZAMsvd\npGA60NYY86wx5lZjTD+S1iOYfU2dt4CJxpiexpgmwALgN+ALj0QsIuIlWembzyxrLQsWLKBZs2b8\n8ccfrFu3jilTplC0aFGPxK4xApIZbo0psNZuNcb8DXgVeAHYB4yx1n54TZ1pxpiSwFySFi9aD3S3\nWqNARPK5nJy/f+jQIYYNG0bfvn2ZNWtWqjFW2aUxApIZbq9oaK1dBiy7QZ1JwKSshSQikje5zt/v\nf82R7M/fr1mzJjt27MjxNQD8/f2VDEi6tHWyiEgm5XTfvBYFEm9TUiAi4gb1zUtBli92SRQRySvU\nNy8FmVoKRESywN/fn+7du2c6ITh+/Di9e/dm8+bNORyZSNYpKRARyWErVqygSZMmrFu3zvMr0Il4\nkJICEZEc8tdffzFmzBi6d+9O8+bN+fnnn+nWrZu3wxJJl8YUiIjkgJ9++ol+/foRFxfHjBkzGDly\nJA6H/g6TvE3/Q0VEPGzWrFnccccd+Pj4sHXrVkaPHq2EQPIF/S8VEfGwc+fO8cQTT7B582YaN27s\n7XBEMk3dByIiHvbss896OwSRLFFLgYiIiABKCkRERCSZkgIRETclJCRw+PDhHLt+TEwMy5cvz9ZW\nzCJZoaRARMQN+/fvp1OnTnTv3p3ExESPXjs+Pp6goB7Ur1+f4OBgAgICCArqwalTpzx6H5H0KCkQ\nEcmkhQsX0qxZMw4dOsSsWbM8Ps2wX78wVq3aRNIOjAeBcFat2kRISKhH7yOSHiUFIiI3cPr0afr1\n60doaCg9e/Zk+/btdOjQwaP3iImJITJyGQkJM4H+QA2gPwkJM4iMXKauBMkVSgpERDKwbt06mjVr\nxtKlS1m4cCHh4eGUK1fO4/fZu3dv8lcdrztyNwBxcXEev6fI9ZQUiIikIzIykk6dOlGrVi3nssU5\n5dZbb03+at11R9YCUK9evRy7t0gKJQUiIum45557mDt3Lt9++y21atXK0XsFBAQQGBiMj89oksYU\nHALC8fEZQ2BgcKa3aBbJDiUFIiLpKFasGI8++ig+Pj65cr+IiHC6dm0LhAE1gTC6dm1LRER4rtxf\nRMsci4jkEX5+fqxYsZTY2Fji4uKoV6+eWggkVykpEJEMxcTEsHfvXn1A5SJ/f399r8Ur1H0gImkq\nDAvpXLx4kTfffJMrV654OxSRPEFJgYikqaAvpPPzzz/TunVrnnvuObZs2eLtcETyBCUFIpJKQV5I\nJzExkRkzZnDHHXdgrWXLli20b9/e22GJ5AlKCkQklYK6kM7hw4fp3r07Y8eOZcSIEWzZsoUmTZrk\n+H21wZHkF0oKRCSVgriQzueff06TJk346aefiIyM5K233sLX1zdH71kYxmVIwaKkQERSKWgL6Vy5\ncoXnn3+eu+66i59//plu3brlyn0L+rgMKXg0JVFE0hQREU5ISCiRkWHOsq5dg/PlQjpFixZl7dq1\nVKhQAWNMrtwzZVxGUkLQP7m0PwkJlsjIMGJjY/NdciUFn5ICEUlTQVtIp2LFirl6v8yMy8jP308p\nmJQUiEiGtJBO1riOy+h/zZH8Oy5DCj6NKRCRAsNa6+0QnArauAwpHJQUiEi+d+bMGUJDQ3n99de9\nHYoLbXAk+Y1bSYEx5u/GmMTrXruuqzPFGPOHMeaCMWalMUZtZCKSY7777juaNWvGV199RfXq1b0d\njouUcRkxMTEsW7aMmJgYVqxYip+fn7dDE0lTVsYU7AC6AClDeK+mHDDGTABGAgOA/cBLQKQxpqG1\n9nL2QhUR+a8rV64wZcoUXnnlFdq3b8+aNWuoXbu2t8NKk8ZlSH6RlaTgqrX2eDrHxgBTrbVfAxhj\nBgBHgQeAj7MWooiIq9jYWEJDQ4mKimLKlCk888wz+Pj4eDsskXwvK2MK/I0xvxtj9hpjwo0xNQCM\nMXWAKsA3KRWttWeBzUA7j0QrIoXeJ598QosWLYiPj2fDhg08//zzSghEPMTdpGATMAgIBEYAdYB1\nxphSJCUElqSWgWsdTT4mIpJt1atXJyQkhG3bttG6dWtvhyNSoLjVfWCtjbzm7Q5jzA/AAaAv8Et2\nAhk3bhzlypVzKQsJCSEkJCQ7lxWRAqZdu3a0a6fGRyl8IiIiiIiIcCk7c+aMR+9hsjuvNzkxWAn8\nG9gLNLfW/nTN8TXANmvtuHTObwlERUVF0bJly2zFIiIiUphER0fTqlUrgFbW2ujsXi9b6xQYY0oD\n9YA/rLX7gCMkzUxIOV4WaANsyM59REREJOe5u07B68aYjsaYWsaY9sBnwBXgw+QqbwETjTE9jTFN\ngAXAb8AXngxaRAouay07duzwdhgihZK7LQXVgUUkjR/4EDgOtLXWngSw1k4DZgFzSZp1UALorjUK\nRCQzjhw5QnBwMG3atOHYsWPeDkek0HF3oOENR/1ZaycBk7IYj4gUUl9++SVDhw7Fx8eHxYsXU7ly\nZW+HJFLoaO8DEfGq8+fPM2LECO6//37atWvHzz//TPfu3b0dlkihpK2TRcRroqKi6N+/PwcPHuRf\n//oXw4YNwxhz4xNFJEcoKRARrzh06BDt27encePGREdH06BBA2+HJFLoKSkQEa+oUaMGS5Ys4d57\n76VYsWLeDkdEUFIgIl7Uo0cPb4cgItfQQEMREREBlBSIiIhIMiUFIpIjrly5wtSpU9m3b5+3QxGR\nTNKYAhHxuLi4OEJDQ9m6dSu1atWiTp063g5JRDJBLQUi4jHWWt577z2aN2/OiRMn+O677xgwYIC3\nwxKRTFJSICIeER8fT58+fRgyZAh9+/Zl27ZttG3b1tthiYgb1H0gItn2zTffMHDgQC5cuMDixYvp\n3bu3t0MSkSxQUiAi2fbxxx/ToEED5s+fT/Xq1b0djohkkZICEcm2GTNmUKxYMRwO9UiK5GdKCkQk\n23x9fb0dgoh4gNJ6ERERAZQUiEgmXb582dshiEgOU1IgIhm6cOECjz/+OPfddx+JiYneDkdEcpCS\nAhFJV3R0NK1ateK9997jgQcewBjj7ZBEJAcpKRCRVBITE5k2bRpt27bF19eX6OhoHn/8cSUFIgWc\nkgIRcXHo0CG6dOnCM888w9ixY9m0aRMNGzb0dlgikgs0JVFEnDZs2ECPHj0oVaoU33zzDffcc49b\n58fExLB3717q1auHv79/DkUpIjlFLQUi4tSoUSP69+/PTz/95FZCEB8fT1BQD+rXr09wcDABAQEE\nBfXg1KlTORitiHiakgIRcbrpppuYPXs25cuXd+u8fv3CWLVqExAOHATCWbVqEyEhoTkRpojkEHUf\niEi2xMTEEBm5jKSEoH9yaX8SEiyRkWHExsaqK0Ekn1BLgYhky969e5O/6njdkbsBiIuLy9V4RCTr\nlBSIFCLWWlatWoW11mPXvPXWW5O/WnfdkbUA1KtXz2P3EpGcpaRApJCIj4/noYce4t5772Xt2rUe\nu25AQACBgcH4+IwmqQvhEBCOj88YAgOD1XUgko8oKRApBL799luaNm3KqlWr+Pjjj+nUqZNHrx8R\nEU7Xrm2BMKAmEEbXrm2JiAj36H1EJGdpoKFIAXbp0iVeeOEF3njjDTp16sSCBQuoXr26x+/j5+fH\nihVLiY2NJS4uTusUiORTSgpECoC0Fg3avXs3/fr1Y+fOnbz22muMHz8ehyNnGwf9/f2VDIjkY0oK\nRPKx+Ph4+vULS54SmCQwMJgPPphPcHAwvr6+bN68mRYtWngxShHJL5QUiORjrosGdQTWsWrVaMLC\nBvH555/j7+9PyZIlvRyliOQX2WpLNMY8Y4xJNMa8eV35FGPMH8aYC8aYlcYYzUkS8bCURYMSEmaS\ntGhQDZIWDZpBZOQySpYsqYRARNyS5aTAGHMHMAzYfl35BGBk8rHWwHkg0hhTLBtxish1tGiQiHha\nlpICY0xpktorHwFOX3d4DDDVWvu1tXYHMACoBjyQnUBFxJUWDRIRT8tqS8HbwFfW2tXXFhpj6gBV\ngG9Syqy1Z4HNQLusBikirhITE/nyyy9p1qyFFg0SEY9xe6ChMeZhoDlwexqHqwAWOHpd+dHkYyKS\nTb///jsDBw7km2++4ZlnnqFKlZ+IjAxzHu/aNViLBolIlriVFBhjqgNvAV2ttVdyJiQRSc/ixYsZ\nNmwYJUuWZNWqVXTp0gVAiwaJiEe421LQCqgERBtjTHKZD9DRGDMSaAAY4GZcWwtuBrZldOFx48ZR\nrlw5l7KQkBBCQkLcDFGk4Pnzzz8ZM2YM7733Hr1792bevHmUL1/eedyTGxyJSN4UERFBRESES9mZ\nM2c8eg/jzi8TY0wpoNZ1xfOB3cCr1trdxpg/gNettdOTzylLUoIwwFr7SRrXbAlERUVF0bJly6w9\nhUgBtnnzZvr378+RI0eYNWsWgwYNIiUnT2/xooiIcPz8/LwVsojkkujoaFq1agXQylobnd3ruTXQ\n0Fp73lq769oXSVMOT1prdydXewuYaIzpaYxpAiwAfgO+yG6wIoXRwYMHqVixIj/++CODBw/mv410\n1y9edBAIZ9WqTYSEhHorXBHJxzyxoqFLU4O1dpoxpiQwF7gJWA90t9Ze9sC9RAqdPn368D//8z/4\n+Pi4lKcsXpSUEPRPLu1PQoIlMjKM2NhYjS8QEbdkOymw1nZOo2wSMCm71xaRJNcnBJC5xYuUFIiI\nO3J2yzQRyTFavEhEPE1JgUgecPbsWbfPCQgIIDAwWIsXiYjHKCkQ8aLLly/zzDPPEBAQwPHjx90+\nPyIinK5d2wJhQE0gjK5d22rxIhHJEm2dLOIlv/zyC/379+fnn39m6tSpLusOZJafnx8rVizV4kUi\n4hFKCkRymbWWuXPn8uSTT1KzZk02bdqU7TU6/P39lQyISLap+0AkFx0/fpz777+fxx57jIEDBxId\nHa1Fu0Qkz1BLgUgu+f3332nVqhUJCQl8+eWX9OzZ09shiYi4UFIgkkuqVavGuHHjGDhwIFWqaNNQ\nEcl7lBRIvhITE8PevXvz5YA6YwwTJkzwdhgiIunSmALJF+Lj4wkK6kH9+vUJDg4mICCAoKAenDp1\nytuhiYgUGEoKJF/Qxj8iIjlPSYHkeSkb/yQkzCRp458aJG38M4PIyGXExsZ6OcL/+vLLL9V6ISL5\nlpICyfMys/GPt507d45HHnmE+++/n/nz53s7HBGRLNFAQ8nzXDf+6X/Nkbyx8c8PP/xA//79OXz4\nMO+++y6DBw/2ajwiIlmllgLJ8wICAujc+V6MGcm1G/8YM4rOne/12iyEhIQEXn75Zdq3b0/58uXZ\ntm0bQ4YMwRjjlXhERLJLLQWSb1j7F0kb/6S8L+61WPbv309YWBgbNmzgueee48UXX6Ro0aJei0dE\nxBOUFEieFxMTw+rVK0lqJWgNxAH1gM2sXh1GbGxsrrcWPP300xw6dIi1a9dy11135eq9RURyipIC\nyfNcBxrWAFISAF8gaaBhbicFs2fP5tChQxw7dswrSYmISE7QmALJ81wHGl7LOwMN4+PjGTBgMLff\nfrsWUhKRAkVJgeR5AQEBBAYG4+MzmmsHGvr4jCEwMDjX/0rXQkoiUlApKZB8ISIinK5d25I00LAm\nEEbXrm2JiAjP1Tjy00JKIiLu0pgCyRf8/PxYsWIpsbGxxMXF5eiGSNZa/u///o8dO3Ywc+ZMl2OZ\nWUhJ4wtEJL9SS4HkK/7+/nTv3j3HPniPHz/O3/72N4YPH86lS5dISEhwOZ7XxjeIiHiSWgpEkkVG\nRjJo0CCuXLnC559/zv3335+qTsr4hlWrRpOQYElqIViLj88YunbN/fENIiKepJYCKfQuXrzI2LFj\nCQoKomnTpvz8889pJgQp8sr4BhERT1NLgRRqv/zyC3369CE2Npa33nqLUaNG4XBknCvn5vgGEZHc\npKRA8pWYmBj27t2bqQ/izNT19fXlpptuYsuWLTRp0sStWPz9/ZUMiEiBou4DyRfi4+MJCupB/fr1\nb7hgkDt1a9euzfr1691OCERECiIlBZIvuLNgkBYXEhHJGnUfSJ6XsmBQ0od8/+TS/iQkWCIjXTdE\ncqeuiIi4UkuB5HmZWTAo47q/pVk3u2JiYli+fLlWMRSRAkNJgeR57iwY5Fo3AXgFqAvMS1U3q9wZ\nsyAikp8oKZA8z50NkVLqOhxPALcBE4HuOBxve2zzJI1ZEJGCyq2kwBgzwhiz3RhzJvm1wRgTdF2d\nKcaYP4wxF4wxK40xWvdVss2dBYN6934Ah+M8sAewwJfce287jywupA2RRKQgc3eg4SFgAhALGGAQ\n8IUxprm1drcxZgIwEhgA7AdeAiKNMQ2ttZc9FrUUOplZMOj06dM88cQTLFq0iH79+vHkk09y7Ngx\njy4upA2RRKQgcyspsNYuva5oojHmMaAtsBsYA0y11n4NYIwZABwFHgA+zn64Utilt2DQ1atXad++\nPb///jvh4eH0798/jbOzz3XMwrX30IZIIpL/ZXlKojHGAfQFSgIbjDF1gCrANyl1rLVnjTGbgXYo\nKZAcVKRIEf7xj3/QrFkzateunWP30YZIIlKQuT3Q0BjT2BjzJ3AJeAf4m7V2D0kJgSWpZeBaR5OP\nieSo+++/P0cTghTaEElECqqstBT8AjQDygEPAguMMdd3sIoUWNoQSUQKKreTAmvtVeDX5LfbjDGt\nSRpLMI2kwYc349pacDOw7UbXHTduHOXKlXMpCwkJISQkxN0QRXKFNkQSkdwUERFBRESES9mZM2c8\neg9jrc3eBYz5BjhgrR1ijPkDeN1aOz35WFmSEoQB1tpP0jm/JRAVFRVFy5YtsxWLFGwrV66kVKlS\ntG/f3tuhiIjkCdHR0bRq1QqglbU2OrvXc3edgleMMR2MMbWSxxb8g6SRVimdqW+RNCOhpzGmCbCA\npDVmv8huoFJ4Xbx4kSeffJJu3brx7rvvejscEZECy93ug8rA+0BV4AzwE9DNWrsawFo7zRhTEpgL\n3ASsB7prjQLJqh07dtCvXz/27NnD9OnTGT16tLdDEhEpsNxdp+CRTNSZBEzKYjwiACQmJjJr1iwm\nTJiAv78/W7ZsoWnTpt4OS0SkQNPeB3lUYd6B7/DhwwQHBzN27FhGjBihhEBEJJdkefEiyRnx8fH0\n6xdGZOQyZ1lgYDAREeH4+fl5MbLc8/HHH7N9+3ZWrFhBYGCgt8MRESk01FKQx2gHPhg1ahQ7duxQ\nQiAiksvUUpCHpOzAl5QQpKyr35+EBEtkZBixsbGFYl68w+GgQoUK3g5DRKTQUUtBHpKZHfhERERy\nipKCPMR1B75rFbwd+LK7aJaIiHiekoI8JGUHPh+f0SR1IRwCwvHxGUNgYMHZge/DDz/kzjvv5MKF\nC94ORURErqGkII8pyDvwnTlzhrCwMEJCQqhZsyZXr171dkgiInINDTTMYwrqDnzfffcdoaGhxMfH\ns2DBAkJDQzHGeDssERG5hpKCPKqg7MB35coVpkyZwiuvvEK7du349ttvqVOnjrfDEhGRNCgpkBxz\n7NgxevbsSVRUFJMnT+aZZ56hSBH9lxMRyav0G1pyTPny5alXrx4zZ86kTZs23g5HRERuQEmB5Jgi\nRYqwcOFCb4chIiKZpKRAPC4mJoa9e/fmu0GS+TVuERFP0ZRE8Zj4+HiCgnpQv359goODCQgIICio\nB6dOnfJ2aBnKr3GLiHiakgLJlj179nD58mUg/27mlF/jFhHxNCUFkiXWWmbPnk3z5s156623nJs5\nJVYJg2IAABAQSURBVCTMJGkzpxokbeY0g8jIZcTGxno54rTl17hFRHKCkoJCKCYmhuXLl2f5A+/I\nkSP06NGDUaNG8cgjjzBq1Kh8u5lTfo1bRCQnKCkoRDzRd/7111/TtGlToqKiWLp0KbNmzaJEiRL5\ndjOn/Bq3iEhOUFJQiGSn7/zChQs8/vjj9OzZkzZt2vDzzz8THBzsPJ5fN3PKr3GLiOQIa61XX0BL\nwEZFRVnJOXv27LGAhXAL9prXBxawMTExGZ7fp08fW6JECTtnzhybmJiYZp34+HgbGBicfJ+kV2Bg\nsI2Pj8+JR/KY/Bq3iEhUVFTK762W1gOfyVqnoJDITN95Rn8VT548mSlTptCgQYN06+TXzZzya9wi\nIp6mpKCQcO0773/Nkcz1nTds2DDT93JnM6e8tGBQQdmESkQkqzSmoJDIa33nWjBIRCTvUVJQiERE\nhNO1a1sgDKgJhNG1a1siIsJzPRYtGCQikveo+6AQyajvfMOGDWzfvp3HHnssx+NIWTAoKSFI6cro\nT0KCJTIyjNjYWDXji4h4gVoKCiF/f3+6d++Ov78/V69eZdKkSXTo0IGIiAgSEhJy/P65tWBQdhdp\nEhEpbJQUFGJ79+6lQ4cOvPTSS7z44ousXr0aHx+fHL9vTi8YpPEKIiJZo6SgELLWMn/+fJo3b86x\nY8dYv349f//73ylSJHd6k3J60KPGK4iIZI2SgkImPj6evn37MnjwYB588EF+/PFH2rVrl+tx5NSg\nR21wJCKSdRpoWMj8+uuvrFu3jk8++YQHH3zQa3Hk1IJB2V2kSUSkMFNSUMjcfvvt7N+/nxIlSng7\nFMDzCwZld5Em+f/27j+2qvu84/j7iZU6aTsCdSqzbpXmjThaRQOxC4Q0GeAYTEANWRSxOSlZu0Wk\nIhYIORqgVQproizbcEjXwLRorL9YrVWhVVrq4pim0EYxP2aHumkB82tLmgxHmMgQQgSxn/1xjuHa\nXNtc33N9fM/9vKT7h885vvd59Bjuc7/3e75fESlk+vqgAI2XhiAXxtsiTSIi+URNgSTOeFqkSUQk\nn2TUFJjZOjPbZ2ZnzKzLzH5oZuVprvuamb1tZu+bWYuZacx2DF28eDHuEGLVP1+hs7OTpqYmOjs7\n2bHjJ0yaNCnu0ERExrVMRwruBL4BzAKqgWuBl8zs0ni0ma0B6oDlwEzgHNBsZh+JJGIZVlNTE1Om\nTKGjoyPuUGKXukiTiIiMLKOmwN0Xuft33f2gu/8a+BLB+GxlymWrgCfcfbu7vw48BHwKuDeimCWN\n8+fPU1dXx+LFi5k6dSqlpaVxhyQiInkm2zkFEwEHTgOYWRkwGfhZ/wXufgbYC4z9zfAF4sCBA1RW\nVrJlyxY2bdrE9u3b1RSIiEjGRt0UmJkBzwKvuPtvw8OTCZqErkGXd4XnJEJ9fX1s2LCBmTNnUlxc\nTFtbGytWrCAojYiISGayWadgM/AZ4PNRBLJ69WpuuOGGAcdqa2upra2N4ukTp7e3l7vvvpudO3dS\nX1/Pk08+SXFxcdxhiYhIjjQ2NtLY2DjgWE9PT6SvYe6e+S+ZPQd8AbjT3d9IOV4GHAOmu3tHyvFd\nwGvuvjrNc1UAbW1tbVRUVGSeQUJ1dnZy7NixYVf6a2ho4NZbb6WqqmqMoxMRkfGgvb2dyspKgEp3\nb8/2+TIeKQgbgiXAnNSGAMDdT5jZSeAuoCO8fgLB3Qqbsg22EJw+fZoHHlhGc3PTpWM1NYtobNx6\nxS119fX1Yx2eiIgkWKbrFGwmWDv2AeCcmZWGj+tSLnsW+KqZfcHMPgt8B/gd8GJUQSeZdvgTEZG4\nZDpS8BWCiYS7Bh3/MsGbP+7+T2b2UeDfCO5O+CVwt7tfyC7U5Ovf4S9oCPrX7X+Q3l6nuXkZR44c\n0T33IiKSMxk1Be5+VSML7r4eWD+KeBLrauYIXLnD3wmgj6h3+LuaWEREpPBo74McO336NAsXLubm\nm29m0aJFlJeXs3DhYt59990rrr28w99ugoGXacBaotrhL5NYRESk8KgpyLFM5giUl5dTVTUfs78B\n/gpYACyIbIc/zVcQEZHhZLNOgYwg0zkCu3bt4tCh31BU1MeHHwJsA7ZRXb0o6x3+NF9BRERGopGC\nHLpyjkC/y3MEAC5cuMCaNWuoqqqivLyc48ePR77D39XGIiIihUsjBTl0eY7AL7j86RwGzxHYuHEj\nGzdu5Omnn6a+vp6ioiKASD+5X20sIiJSuNQU5FB5eTk1NYvYuXMlvb1O8Kl8N0VFq6iuvjxHYOXK\nldTU1DB9+vTYYxERkcKlrw9yrLFxK9XVtwHLCHaZXkZ19W0D5ghcf/31OW0IMolFREQKl0YKcmzS\npEns2PETjhw5wtGjR2NdG2A8xSIiIuOPmoIxctNNN+X0DTiTBYlyHYuIiOQnfX0wBg4cOMDy5cvp\n7e2N/Lm1IJGIiERFTUEO9fX10dDQwKxZs9i7dy+nTp2K/DW0IJGIiERFTUGOvPXWWyxYsIDHHnuM\nuro69u3bR2lpaaSv0b8gUW/vvxDcZvhpggWJvk5zcxNHjhyJ9PVERCTZ1BTkwLZt27jllls4ePAg\nLS0tNDQ0UFxcHPnraEEiERGJkpqCCL333ns8/PDD3H///cydO5eOjg6qq6tz9noDFyRKpQWJREQk\nc2oKItTX18f+/fvZsmULL7zwAiUlJTl9vf4FiYqKVhLMKXgT2BrZBkoiIlJYdEtihCZMmEB7e/ul\nZYrHQmPjVmprv0hz87JLx6LYQElERAqPmoKIjWVDAFqQSEREoqOmIAvNzc3s3buX2bNnM3/+/Fhj\n0YJEIiKSLTUFGTpz5gzvvPMOt912B93dXZeOl5SUsn9/K2VlZTFGJyIiMnqaaJiB3bt3M3XqVKZP\nr6C7+wNSFwzq7v6AGTNmxxyhiIjI6KkpuAoXLlxg3bp1zJs3j4kTJ3Lu3FlgE6kLBsFzdHd30dLS\nEmusIiIio6WmYASHDx/m9ttvZ8OGDTz11FPcd9994Zn0Cwa1traOaXwiIiJRUVMwBHfn+eefp6Ki\ngrNnz7Jnzx7Wrl3L7Nn9XxGkXzDo8nkREZH8oqZgCCtWrOCRRx5h2bJltLe3U1lZCUBNTQ0lJaXA\no6QuGAR1lJSUxn4XgoiIyGjp7oMhLF26lIULF7JkyZIrzu3f38qMGbPp7r68YFD/3QciIiL5Sk3B\nEObNmzfkubKyMk6dOklLSwutra3jYp0CERGRbKkpyML8+fPVDIiISGJoToGIiIgAagpEREQkpKZA\nREREADUFIiIiElJTICIiIoCagjHV2NgYdwhjplByVZ7JojyTpVDyjFLGTYGZ3WlmPzKzt8ysz8zu\nSXPN18zsbTN738xazGxKNOHmt0L6Ay2UXJVnsijPZCmUPKM0mpGCjwEHgBWADz5pZmuAOmA5MBM4\nBzSb2UeyiFNERERyLOPFi9x9B7ADwMwszSWrgCfcfXt4zUNAF3Av8P3RhyoiIiK5FOmcAjMrAyYD\nP+s/5u5ngL2Atg8UEREZx6Je5ngywVcKXYOOd4Xn0rkO4ODBgxGHMv709PTQ3t4edxhjolByVZ7J\nojyTpRDyTHnvvC6K5zP3K6YFXP0vm/UB97r7j8KfZwOvAJ9y966U6/4L6HP32jTP8QDwn6MOQkRE\nRB509+9l+yRRjxScBAwoZeBoQSnw2hC/0ww8CPwP8EHE8YiIiCTZdcAfEbyXZi3SpsDdT5jZSeAu\noAPAzCYAs4BNQ/xON5B1dyMiIlKgXo3qiTJuCszsY8AUghEBgD82s2nAaXd/E3gW+KqZHSX49P8E\n8DvgxUgiFhERkZzIeE6Bmc0Bfs6VaxR8293/OrxmPcE6BROBXwKPuvvRrKMVERGRnMlqoqGIiIgk\nh/Y+EBEREUBNgYiIiIRibwrM7FEzO2Fm581sj5nNiDumKJnZ4+HGUamP38YdV7YKZWOskfI0s2+m\nqW9TXPGOlpmtM7N9ZnbGzLrM7IdmVp7muryu6dXkmYSamtlXzOxXZtYTPl41s4WDrsnrWsLIeSah\nlumY2dowl2cGHc+6prE2BWb2F0AD8DhwK/Args2Tbowzrhx4nWCthsnh4454w4lEoWyMNWyeoZ8y\nsL5XLNKVB+4EvkFw+3A1cC3wkpld339BQmo6Yp6hfK/pm8AaoAKoBF4GXjSzP4XE1BJGyDOU77Uc\nIPzgvJzg/TL1eDQ1dffYHsAe4OspPxvB7Yt/G2dcEef4ONAedxw5zrEPuGfQsbeB1Sk/TwDOA0vj\njjfiPL8J/CDu2HKQ641hvnckvKbp8kxqTbuBLye1lkPkmahaAh8HDgNVBHcBPpNyLpKaxjZSYGbX\nEnR2qZsnObCT5G2edFM4/HzMzLaa2afjDiiXCnBjrLnhUPQhM9tsZp+IO6AITCQYGTkNia7pgDxT\nJKamZnaNmf0l8FHg1aTWcnCeKacSU0uCRQB/7O4vpx6MsqZRL3OciRuBItJvnnTz2IeTM3uALxF0\nd78PrAd+YWZT3f1cjHHl0mg2xspXPwW2ASeAPwH+AWgys9lhk5t3zMwIFiF7xd37578krqZD5AkJ\nqamZTQVaCZbBPQv8ubsftmCPmsTUcqg8w9OJqCVA2PBMBz6X5nRk/z7jbAoKgrunrkf9upntA/4X\nWEowtCV5zN2/n/Ljb8zs18AxYC7B8F4+2gx8Bvh83IHkWNo8E1TTQ8A04AbgfuA7ZvZn8YaUE2nz\ndPdDSamlmf0hQQNb7e4Xc/lacU40PAX0EkwASVVKsLFSIrl7D9BJsFR0UqVujJUq0bWFYP8Pgr/t\nvKyvmT0HLALmuvv/pZxKVE2HyfMK+VpTd//Q3Y+7+2vu/ncEE9NWkbBaDpNnumvzspYEX7V/Emg3\ns4tmdhGYA6wyswsEIwKR1DS2piDsdtoINk8CLg3n3UWEmzuMN2b2cYI/yGH/I8pn4T+8/o2xgAEb\nYyW2tnCpoy8hD+sbvlEuAea5+xup55JU0+HyHOL6vK3pINcAxUmq5RCuAYrTncjjWu4EPkvw9cG0\n8PHfwFZgmrsfJ6Kaxv31wTPAt8ysDdgHrCaYJPKtOIOKkpn9M/Bjgq8M/gD4e+Ai0BhnXNmyAtkY\na7g8w8fjBN9Zngyv+0eCkaBItjEdK2a2meBWrXuAc2bW/4mjx937tzTP+5qOlGdY77yvqZk9RfB9\n+hvA7xFsTz8HWBBekve1hOHzTEotAcL5ZwPWtzGzc0C3ux8MD0VT03Fwi8WKMIHzBJNFPhd3TBHn\n1xgW5jzBH+73gLK444ogrzkEt3L1Dnr8R8o16wluk3mf4B/hlLjjjjJPgolNOwj+w/kAOA78K/DJ\nuOMeRZ7pcuwFHhp0XV7XdKQ8k1JT4N/D2M+HubwEVCWpliPlmZRaDpP7y6TckhhVTbUhkoiIiADj\nYJljERERGR/UFIiIiAigpkBERERCagpEREQEUFMgIiIiITUFIiIiAqgpEBERkZCaAhEREQHUFIiI\niEhITYGIiIgAagpEREQk9P8DF7/tSLE0YAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "from mlxtend.plotting import plot_linear_regression\n", "import numpy as np\n", "\n", "X = np.array([4, 8, 13, 26, 31, 10, 8, 30, 18, 12, 20, 5, 28, 18, 6, 31, 12,\n", " 12, 27, 11, 6, 14, 25, 7, 13,4, 15, 21, 15])\n", "\n", "y = np.array([14, 24, 22, 59, 66, 25, 18, 60, 39, 32, 53, 18, 55, 41, 28, 61, 35,\n", " 36, 52, 23, 19, 25, 73, 16, 32, 14, 31, 43, 34])\n", "\n", "intercept, slope, corr_coeff = plot_linear_regression(X, y)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## API" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "## plot_linear_regression\n", "\n", "*plot_linear_regression(X, y, model=LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False), corr_func='pearsonr', scattercolor='blue', fit_style='k--', legend=True, xlim='auto')*\n", "\n", "Plot a linear regression line fit.\n", "\n", "**Parameters**\n", "\n", "- `X` : numpy array, shape = [n_samples,]\n", "\n", " Samples.\n", "\n", "- `y` : numpy array, shape (n_samples,)\n", "\n", " Target values\n", " model: object (default: sklearn.linear_model.LinearRegression)\n", " Estimator object for regression. Must implement\n", " a .fit() and .predict() method.\n", " corr_func: str or function (default: 'pearsonr')\n", " Uses `pearsonr` from scipy.stats if corr_func='pearsonr'.\n", " to compute the regression slope. If not 'pearsonr', the `corr_func`,\n", " the `corr_func` parameter expects a function of the form\n", " func(, ) as inputs, which is expected to return\n", " a tuple `(, )`.\n", " scattercolor: string (default: blue)\n", " Color of scatter plot points.\n", " fit_style: string (default: k--)\n", " Style for the line fit.\n", " legend: bool (default: True)\n", " Plots legend with corr_coeff coef.,\n", " fit coef., and intercept values.\n", " xlim: array-like (x_min, x_max) or 'auto' (default: 'auto')\n", " X-axis limits for the linear line fit.\n", "\n", "**Returns**\n", "\n", "- `regression_fit` : tuple\n", "\n", " intercept, slope, corr_coeff (float, float, float)\n", "\n", "\n" ] } ], "source": [ "with open('../../api_modules/mlxtend.plotting/plot_linear_regression.md', 'r') as f:\n", " print(f.read())" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "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.1" } }, "nbformat": 4, "nbformat_minor": 1 }