From 835aab58334df392cbbb5ba30a6aaff00b4c9f8c Mon Sep 17 00:00:00 2001 From: Jim Date: Tue, 24 May 2016 17:08:34 -0400 Subject: [PATCH] Simulation and Slides --- Simulation.ipynb | 548 +++++++++++++++++++++++++++++++++++++++++++++++ Slides.ipynb | 112 ++++++++++ 2 files changed, 660 insertions(+) create mode 100644 Simulation.ipynb create mode 100644 Slides.ipynb diff --git a/Simulation.ipynb b/Simulation.ipynb new file mode 100644 index 0000000..d7b0492 --- /dev/null +++ b/Simulation.ipynb @@ -0,0 +1,548 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 270, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "from pandas import Series, DataFrame\n", + "import matplotlib.pyplot as plt\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 381, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "np.random.seed(1)\n", + "N = 10000\n", + "states = [\"s1\", \"s2\", \"s3\", \"s4\", \"s5\"]\n", + "state_electorial_college_votes = Series(np.array([5, 10, 15, 20, 25]), index=states)\n", + "local_vote_predictions = Series(np.array([0.53, 0.54, 0.56, 0.52, 0.46]), index=states)\n", + "local_margin_of_error = Series(np.array([0.07, 0.05, 0.04, 0.02, 0.04]), index=states)\n", + "national_margin_of_error = 0.03" + ] + }, + { + "cell_type": "code", + "execution_count": 316, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "local_error_sim = DataFrame(np.random.randn(N, len(states)), columns=states).multiply(local_margin_of_error)\n", + "national_error_sim = Series(np.random.randn(N) * national_margin_of_error)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "LocalError = \\sqrt{TotalError^{2} + NationalError^{2}}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "TotalError = \\sqrt{LocalError^{2} + NationalError^{2}}\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 317, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# total_error_signs = DataFrame(np.random.choice([-1, 1], size=local_error_sim.shape), columns=states)\n", + "# total_error_sim = (local_error_sim**2).add(national_error_sim**2, axis='rows') * total_error_signs\n", + "total_error_sim = local_error_sim.add(national_error_sim, axis='rows')" + ] + }, + { + "cell_type": "code", + "execution_count": 318, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "simulated_vote_predictions = total_error_sim.add(local_vote_predictions)" + ] + }, + { + "cell_type": "code", + "execution_count": 319, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
s1s2s3s4s5
s11.0000000.1990570.2194430.3201380.239901
s20.1990571.0000000.3078520.4311010.298213
s30.2194430.3078521.0000000.5074090.356670
s40.3201380.4311010.5074091.0000000.486735
s50.2399010.2982130.3566700.4867351.000000
\n", + "
" + ], + "text/plain": [ + " s1 s2 s3 s4 s5\n", + "s1 1.000000 0.199057 0.219443 0.320138 0.239901\n", + "s2 0.199057 1.000000 0.307852 0.431101 0.298213\n", + "s3 0.219443 0.307852 1.000000 0.507409 0.356670\n", + "s4 0.320138 0.431101 0.507409 1.000000 0.486735\n", + "s5 0.239901 0.298213 0.356670 0.486735 1.000000" + ] + }, + "execution_count": 319, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "simulated_vote_predictions.corr()" + ] + }, + { + "cell_type": "code", + "execution_count": 355, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "bins = np.arange(0, 1, 0.01)\n", + "histograms = {s: np.histogram(simulated_vote_predictions[s], bins=bins, density=True)[0] for s in states}" + ] + }, + { + "cell_type": "code", + "execution_count": 359, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = plt.subplots(len(states), 1, sharex=True, figsize=(16, 8))\n", + "\n", + "for state, ax in zip(states, axes):\n", + " ax.fill_between(bins[1:], 0, histograms[state], facecolor='red')\n", + " ax.fill_between(bins[50:], 0, histograms[state][49:], facecolor='blue')\n", + " ax.set_title(state)\n", + " ax.plot([0.5, 0.5], [0, 12], color='k', linewidth=4) " + ] + }, + { + "cell_type": "code", + "execution_count": 376, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DemWinPctRepWinPct
s10.65530.3447
s20.75130.2487
s30.88450.1155
s40.71530.2847
s50.21180.7882
\n", + "
" + ], + "text/plain": [ + " DemWinPct RepWinPct\n", + "s1 0.6553 0.3447\n", + "s2 0.7513 0.2487\n", + "s3 0.8845 0.1155\n", + "s4 0.7153 0.2847\n", + "s5 0.2118 0.7882" + ] + }, + "execution_count": 376, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "wins = DataFrame([sum(simulated_vote_predictions[s] > 0.5) / float(N) for s in states], index=states, columns=[\"DemWinPct\"])\n", + "wins['RepWinPct'] = 1 - wins['DemWinPct']\n", + "wins" + ] + }, + { + "cell_type": "code", + "execution_count": 407, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "dem_simulated_electorial_college = (simulated_vote_predictions > 0.5).multiply(state_electorial_college_votes)\n", + "rep_simulated_electorial_college = (simulated_vote_predictions < 0.5).multiply(state_electorial_college_votes)\n", + "dem_simulated_electorial_college['total'] = dem_simulated_electorial_college.sum(axis=1)\n", + "rep_simulated_electorial_college['total'] = rep_simulated_electorial_college.sum(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 408, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
s1s2s3s4s5total
050150020
10101520045
25015202565
3000000
40101520045
50101520045
6010150025
751015202575
85101520050
90101520045
\n", + "
" + ], + "text/plain": [ + " s1 s2 s3 s4 s5 total\n", + "0 5 0 15 0 0 20\n", + "1 0 10 15 20 0 45\n", + "2 5 0 15 20 25 65\n", + "3 0 0 0 0 0 0\n", + "4 0 10 15 20 0 45\n", + "5 0 10 15 20 0 45\n", + "6 0 10 15 0 0 25\n", + "7 5 10 15 20 25 75\n", + "8 5 10 15 20 0 50\n", + "9 0 10 15 20 0 45" + ] + }, + "execution_count": 408, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dem_simulated_electorial_college.iloc[:10,]" + ] + }, + { + "cell_type": "code", + "execution_count": 393, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 393, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "dem_electorial_college_votes.hist()" + ] + }, + { + "cell_type": "code", + "execution_count": 395, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 395, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "rep_electorial_college_votes.hist()" + ] + }, + { + "cell_type": "code", + "execution_count": 409, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.65849999999999997" + ] + }, + "execution_count": 409, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# DEM chance of winning\n", + "sum(dem_simulated_electorial_college['total'] > rep_simulated_electorial_college['total']) / float(N)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Slides.ipynb b/Slides.ipynb new file mode 100644 index 0000000..5802643 --- /dev/null +++ b/Slides.ipynb @@ -0,0 +1,112 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Introduction - Nate Silver's Election Prediction Meta-Analysis\n", + "\n", + "* Presenters: Ritesh Bansal and James Schmitz\n", + " * We don't know Nate Silver, but we are motivated by curiousity and respect of his work\n", + "* Skipper Seabold put together original presentation and Jupyter Notebooks" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Nate Silver's Analysis Goal\n", + "\n", + "\"...but somewhat contrary to the media portrayal of election forecasters as wizards who conjure up spells from their spreadsheets, our goal is not to divine some magic formula that miraculously predicts every election. Instead, it’s to make sense of publicly available information in a rigorous and disciplined way.\" - Nate Silver" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Meta-Analysis\n", + "\n", + "(insert definition)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Polling - Combining Poll Results\n", + "\n", + "* Remove historical biases and de-emphasize old polls or polls with methodology flaws\n", + "* Why are polls not accurate?\n", + "* Likely votes vs Actual Voters\n", + "* Is the sample of atual voters representative of the actual population?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Poll Time Decay\n", + "\n", + "* Polls decay over time\n", + "* Adjust older polls for trends" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Macroeconomic Prediction\n", + "\n", + "(is this the right term for this? how about fundamental analysis based on incumbant status, etc)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Combine Poll results with Macroeconomic Prediction\n", + "\n", + "* ?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Project out by allocating the undecided voters\n", + "\n", + "* ?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Model Prediction Uncertainty and Simulate\n", + "\n", + "* Guestimate Electorial college votes" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +}