Created
August 26, 2012 23:28
-
-
Save vincentarelbundock/3484343 to your computer and use it in GitHub Desktop.
Statsmodels example: Robust Linear Models
This file contains 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
{ | |
"metadata": { | |
"name": "example_rlm" | |
}, | |
"nbformat": 3, | |
"nbformat_minor": 0, | |
"worksheets": [ | |
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Robust Linear Models" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"import numpy as np\n", | |
"import statsmodels.api as sm\n", | |
"import matplotlib.pyplot as plt\n", | |
"from statsmodels.sandbox.regression.predstd import wls_prediction_std" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 1 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Estimation\n", | |
"\n", | |
"Load data:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"data = sm.datasets.stackloss.load()\n", | |
"data.exog = sm.add_constant(data.exog)" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"/usr/local/lib/python2.7/dist-packages/statsmodels-0.5.0-py2.7-linux-x86_64.egg/statsmodels/tools/tools.py:306: FutureWarning: The default of `prepend` will be changed to True in 0.5.0, use explicit prepend\n", | |
" FutureWarning)\n" | |
] | |
} | |
], | |
"prompt_number": 2 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Huber's T norm with the (default) median absolute deviation scaling" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"huber_t = sm.RLM(data.endog, data.exog, M=sm.robust.norms.HuberT())\n", | |
"hub_results = huber_t.fit()\n", | |
"print hub_results.params\n", | |
"print hub_results.bse\n", | |
"print hub_results.summary(yname='y',\n", | |
" xname=['var_%d' % i for i in range(len(hub_results.params))])" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"[ 0.82938433 0.92606597 -0.12784672 -41.02649835]\n", | |
"[ 0.11100521 0.30293016 0.12864961 9.79189854]\n", | |
" Robust linear Model Regression Results \n", | |
"==============================================================================\n", | |
"Dep. Variable: y No. Observations: 21\n", | |
"Model: RLM Df Residuals: 17\n", | |
"Method: IRLS Df Model: 3\n", | |
"Norm: HuberT \n", | |
"Scale Est.: mad \n", | |
"Cov Type: H1 \n", | |
"Date: Sun, 26 Aug 2012 \n", | |
"Time: 20:53:18 \n", | |
"No. Iterations: 19 \n", | |
"==============================================================================\n", | |
" coef std err z P>|z| [95.0% Conf. Int.]\n", | |
"------------------------------------------------------------------------------\n", | |
"var_0 0.8294 0.111 7.472 0.000 0.612 1.047\n", | |
"var_1 0.9261 0.303 3.057 0.002 0.332 1.520\n", | |
"var_2 -0.1278 0.129 -0.994 0.320 -0.380 0.124\n", | |
"var_3 -41.0265 9.792 -4.190 0.000 -60.218 -21.835\n", | |
"==============================================================================\n", | |
"\n", | |
"If the model instance has been used for another fit with different fit\n", | |
"parameters, then the fit options might not be the correct ones anymore .\n" | |
] | |
} | |
], | |
"prompt_number": 3 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Huber's T norm with 'H2' covariance matrix" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"hub_results2 = huber_t.fit(cov=\"H2\")\n", | |
"print hub_results2.params\n", | |
"print hub_results2.bse" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"[ 0.82938433 0.92606597 -0.12784672 -41.02649835]\n", | |
"[ 0.11945975 0.32235497 0.11796313 9.08950419]\n" | |
] | |
} | |
], | |
"prompt_number": 4 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Andrew's Wave norm with Huber's Proposal 2 scaling and 'H3' covariance matrix" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"andrew_mod = sm.RLM(data.endog, data.exog, M=sm.robust.norms.AndrewWave())\n", | |
"andrew_results = andrew_mod.fit(scale_est=sm.robust.scale.HuberScale(), cov=\"H3\")\n", | |
"print 'Parameters: ', andrew_results.params" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"Parameters: [ 0.79276138 1.04857556 -0.13360865 -40.8817957 ]\n" | |
] | |
} | |
], | |
"prompt_number": 5 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"See ``help(sm.RLM.fit)`` for more options and ``module sm.robust.scale`` for scale options\n", | |
"\n", | |
"## Comparing OLS and RLM\n", | |
"\n", | |
"Artificial data with outliers:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"nsample = 50\n", | |
"x1 = np.linspace(0, 20, nsample)\n", | |
"X = np.c_[x1, (x1-5)**2, np.ones(nsample)]\n", | |
"sig = 0.3 # smaller error variance makes OLS<->RLM contrast bigger\n", | |
"beta = [0.5, -0.0, 5.]\n", | |
"y_true2 = np.dot(X, beta)\n", | |
"y2 = y_true2 + sig*1. * np.random.normal(size=nsample)\n", | |
"y2[[39,41,43,45,48]] -= 5 # add some outliers (10% of nsample)" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 6 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Example 1: quadratic function with linear truth\n", | |
"\n", | |
"Note that the quadratic term in OLS regression will capture outlier effects. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"res = sm.OLS(y2, X).fit()\n", | |
"print res.params\n", | |
"print res.bse\n", | |
"print res.predict" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"[ 0.50766471 -0.01131198 5.11348768]\n", | |
"[ 0.07237524 0.00640409 0.4687925 ]\n", | |
"<bound method OLSResults.predict of <statsmodels.regression.linear_model.OLSResults object at 0x3faa3d0>>\n" | |
] | |
} | |
], | |
"prompt_number": 7 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Estimate RLM:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"resrlm = sm.RLM(y2, X).fit()\n", | |
"print resrlm.params\n", | |
"print resrlm.bse" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"[ 0.4924469 -0.00039857 5.03562372]\n", | |
"[ 0.02310792 0.00204469 0.14967575]\n" | |
] | |
} | |
], | |
"prompt_number": 8 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Draw a plot to compare OLS estimates to the robust estimates:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"plt.figure()\n", | |
"plt.plot(x1, y2, 'o', x1, y_true2, 'b-')\n", | |
"prstd, iv_l, iv_u = wls_prediction_std(res)\n", | |
"plt.plot(x1, res.fittedvalues, 'r-')\n", | |
"plt.plot(x1, iv_u, 'r--')\n", | |
"plt.plot(x1, iv_l, 'r--')\n", | |
"plt.plot(x1, resrlm.fittedvalues, 'g.-')\n", | |
"plt.title('blue: true, red: OLS, green: RLM')" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "pyout", | |
"prompt_number": 9, | |
"text": [ | |
"<matplotlib.text.Text at 0x411b610>" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"png": "iVBORw0KGgoAAAANSUhEUgAAAXEAAAEICAYAAACpqsStAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdUlEcXwOHfgjTFAihFUVHsvWGLBQsSC2o09t6wJGpi\nymeNaDSJJTFqNMYSS2wxzUSxF1BjV6xRidhrLCgYOrzfHxNRpAhLWRbuc857gC3v3l2Wy+zMnRmd\npmkaQgghjJKJoQMQQgihP0niQghhxCSJCyGEEZMkLoQQRkySuBBCGDFJ4kIIYcQkiWciFxcXdu/e\nneR1fn5+FC9ePIsjypl8fHzo06ePocMQwiAkiWcinU6HTqczdBiYmJhw5coVQ4eRadL6Gj958oTh\nw4fj5OREvnz5qFatGitWrEhwm5T+AX/22WeULl2a/PnzU7x4cbp3765v6EbL3d0dKysr8ufPT+HC\nhenQoQO3bt2Kvz6lf6wuLi5YWFjw6NGjBJfXrFkTExMTbty4kamx5zSSxHOJlOZ0xcTEZGEkKcvs\nWKKiomjZsiU3b97k8OHDhISEMGvWLMaOHcucOXPib5fcP+CVK1eyevVqdu/eTWhoKMePH6dly5aZ\nGnNSNE1L8Xea2XQ6HQsWLCA0NJSgoCAiIiIYM2ZMgutTum/p0qVZt25d/GVnz54lPDw8WzR6jI0k\n8Ux29OhRKleujK2tLQMHDiQyMjLJ273aWu7fvz+TJk2K/3nz5s3UqFEDGxsb3njjDc6ePZuqx2/S\npAkA1atXJ3/+/Pz000/4+fnh7OzMzJkzcXJyYuDAgaxcuZLGjRsnG1NkZCQffvghJUuWxNHRkeHD\nhxMREZGm1yI5Li4uzJw5k2rVqpE/f37i4uI4fPgwDRs2xMbGhho1auDv7x9/+6tXr9K0aVMKFChA\nq1atePjwYaof64cffuDmzZv89NNPlCxZElNTUzw9PZk3bx6ffPIJz549S/H+x48fx9PTk1KlSgHg\n4ODA4MGD9Xvir4iLi+ODDz6gSJEilC5dmm+++QYTExPi4uIA1fqdOHEib7zxBvny5ePq1atcvHgR\nDw8P7OzsqFChAj/99FP8+VL6nT1/D3z11Vc4ODhQtGjRRJ9GUqtgwYJ06NCB8+fPx1/2un8wvXv3\nZtWqVfE/r1y5kr59+xr0H5OxkiSeiTRNY+3atezYsYOgoCACAwOZNm1aqu77ckswICCAQYMGsWTJ\nEh4/fszQoUNp37490dHRALzzzju88847SZ5n3759AJw5c4bQ0FC6dOkCwP379wkODubGjRssXrz4\ntX88Y8eO5fLly5w+fZrLly9z+/Ztpk6dmqrnkhrr169n69atPHnyhLt379KuXTs++eQTgoODmT17\nNp07d47/+N2zZ0/c3Nx49OgRkyZNYuXKlQlacNWrV2f9+vVJPs7OnTtp06YNVlZWCS7v1KkTERER\nHDp0KMU469evz6pVq5g9ezbHjx8nNjY2nc/8hcWLF7Nt2zZOnz7NyZMn2bhxY6KW6erVq1m6dCnP\nnj3Dzs4ODw8PevfuzYMHD1i/fj0jRozgwoULwOt/Z/fv3yckJIQ7d+6wbNky3nnnHZ4+fQrA2rVr\nqV69eorxPn/PPHr0iF9//ZV69eql+rnWr1+fkJAQLl68SGxsLD/++CO9e/dO9f3FSzSRaVxcXLTv\nvvsu/uctW7Zorq6umqZp2t69ezVnZ+f463Q6nRYUFBT/c//+/bVJkyZpmqZpw4YNi//+ufLly2v+\n/v6piuPVc+/du1czNzfXIiMj4y9bvny51qhRoyTvFxcXp+XLly/BOQ4ePKiVKlUqVY//Oi4uLtry\n5cvjf/7iiy+0Pn36JLiNp6entnLlSu369etanjx5tLCwsPjrevbsqfXu3TtVj9WyZUtt3LhxSV7n\n6OiorV27Nj6m3bt3J3m7NWvWaC1bttTy5cun2dnZaTNmzEjVY79Os2bNtMWLF8f/vGvXLk2n02mx\nsbGapmmau7u7Nnny5Pjr169frzVu3DjBOby9vbUpU6a89ne2d+9ezcrKKv7cmqZp9vb22pEjR1IV\na9OmTbW8efNqBQsW1HQ6nVavXr0Ev5PJkycn+ztxcXHRdu3apU2bNk0bN26ctnXrVq1Vq1ZaTEyM\nptPptOvXr6cqBqHkMfQ/kZzu5QqUEiVKcOfOnTSf4/r166xatYr58+fHXxYdHc3du3f1jqtIkSKY\nm5un6rYPHjwgLCyM2rVrx1+maVr8x/yM8PLrdP36dX766Sc2bdoUf1lMTAzNmzfnzp072NjYJGhJ\nlyxZkps3b6bqcQoXLpzk7yAmJoaHDx9SuHDh156jZ8+e9OzZk9jYWH777Td69epFjRo1aNWqVapi\nSM7du3cTvA7Ozs6JbvPq63TkyBFsbGwSPI++ffvy8OHD1/7O7OzsMDF58WE8b968r+1Oek6n0zF/\n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\n" | |
} | |
], | |
"prompt_number": 9 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Example 2: linear function with linear truth\n", | |
"\n", | |
"Fit a new OLS model using only the linear term and the constant:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"X2 = X[:,[0,2]] \n", | |
"res2 = sm.OLS(y2, X2).fit()\n", | |
"print res2.params\n", | |
"print res2.bse" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"[ 0.39454489 5.56942984]\n", | |
"[ 0.03445508 0.39987768]\n" | |
] | |
} | |
], | |
"prompt_number": 10 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Estimate RLM:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"resrlm2 = sm.RLM(y2, X2).fit()\n", | |
"print resrlm2.params\n", | |
"print resrlm2.bse" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"[ 0.48916835 5.047392 ]\n", | |
"[ 0.01019951 0.11837314]\n" | |
] | |
} | |
], | |
"prompt_number": 11 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Draw a plot to compare OLS estimates to the robust estimates:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"prstd, iv_l, iv_u = wls_prediction_std(res2)\n", | |
"plt.figure()\n", | |
"plt.plot(x1, y2, 'o', x1, y_true2, 'b-')\n", | |
"plt.plot(x1, res2.fittedvalues, 'r-')\n", | |
"plt.plot(x1, iv_u, 'r--')\n", | |
"plt.plot(x1, iv_l, 'r--')\n", | |
"plt.plot(x1, resrlm2.fittedvalues, 'g.-')\n", | |
"plt.title('blue: true, red: OLS, green: RLM')" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "pyout", | |
"prompt_number": 12, | |
"text": [ | |
"<matplotlib.text.Text at 0x4158dd0>" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"png": "iVBORw0KGgoAAAANSUhEUgAAAXEAAAEICAYAAACpqsStAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd8zdcbwPFPEpFhRIREiBl7z1JFopVErSJRo0alKLW6\nW0UF1YEOlKpWjRqtBDUisRNaq2pTvxASiqaSWBGJjO/vjyOXyL4Z9yZ53q9XXuKO7/fce3Ofe+5z\nznmOiaZpGkIIIQolU0M3QAghhP4kiAshRCEmQVwIIQoxCeJCCFGISRAXQohCTIK4EEIUYhLE81GN\nGjXYvXt3utcFBQVRtWrVAm5R0eTj48OQIUMM3QwhDEKCeD4yMTHBxMTE0M3A1NSUS5cuGboZ+San\nz/Ht27cZM2YMjo6OlCpViqZNm7J8+fJUt8nsA/jTTz+lVq1alClThqpVqzJgwAB9m15oubq6YmVl\nRZkyZahQoQIvvfQS//zzj+76zD5Ya9SogYWFBVFRUakub9GiBaamply5ciVf217USBAvJjJb05WY\nmFiALclcfrfl4cOHdOnShatXr3Lo0CHu3r3LnDlz+PDDD/n66691t8voA3jFihWsWrWK3bt3c+/e\nPY4ePUqXLl3ytc3p0TQt09c0v5mYmLBw4ULu3btHaGgocXFxvP3226muz+y+tWrVYu3atbrLTp8+\nzYMHD4yi01PYSBDPZ0eOHKFRo0aUL18eb29v4uPj073d073lV199lalTp+r+v3XrVpo3b46trS3P\nPfccp0+fztb5O3XqBECzZs0oU6YMvr6+BAUF4eTkxOzZs3F0dMTb25sVK1bQsWPHDNsUHx/Pu+++\nS/Xq1alUqRJjxowhLi4uR89FRmrUqMHs2bNp2rQpZcqUITk5mUOHDtG+fXtsbW1p3rw5wcHButtf\nvnwZFxcXypYti7u7O5GRkdk+188//8zVq1fx9fWlevXqmJmZ4eHhwfz58/n444+JiYnJ9P5Hjx7F\nw8ODmjVrAuDg4MCIESP0e+BPSU5O5p133qFixYrUqlWLb7/9FlNTU5KTkwHV+50yZQrPPfccpUqV\n4vLly5w/fx43Nzfs7OyoX78+vr6+uuNl9pql/A189dVXODg4ULly5TTfRrLLxsaGl156ibNnz+ou\ny+oDZvDgwaxcuVL3/xUrVjB06FCDfjAVVhLE85GmaaxZs4YdO3YQGhpKSEgIn3zySbbu+2RP8Pjx\n47z22mv88MMPREdH8/rrr9OrVy8SEhIAGDt2LGPHjk33OPv27QPg1KlT3Lt3j379+gEQERHBrVu3\nuHLlCkuWLMnyzfPhhx9y8eJFTp48ycWLF7l27RozZszI1mPJjl9++YWAgABu377NjRs36NGjBx9/\n/DG3bt1i7ty5eHp66r5+Dxo0iDZt2hAVFcXUqVNZsWJFqh5cs2bN+OWXX9I9z86dO+nWrRtWVlap\nLu/bty9xcXEcPHgw03a2a9eOlStXMnfuXI4ePUpSUlIuH/ljS5YsITAwkJMnT3Ls2DF+++23ND3T\nVatW8eOPPxITE4OdnR1ubm4MHjyYmzdv8ssvv/DGG2/w999/A1m/ZhEREdy9e5fr16+zdOlSxo4d\ny507dwBYs2YNzZo1y7S9KX8zUVFRbNiwgbZt22b7sbZr1467d+9y/vx5kpKS+PXXXxk8eHC27y+e\noIl8U6NGDe3777/X/X/btm2as7OzpmmatnfvXs3JyUl3nYmJiRYaGqr7/6uvvqpNnTpV0zRNGz16\ntO73FPXq1dOCg4Oz1Y6nj713716tZMmSWnx8vO6yZcuWaR06dEj3fsnJyVqpUqVSHePAgQNazZo1\ns3X+rNSoUUNbtmyZ7v+ff/65NmTIkFS38fDw0FasWKGFh4drJUqU0GJjY3XXDRo0SBs8eHC2ztWl\nSxdt0qRJ6V5XqVIlbc2aNbo27d69O93brV69WuvSpYtWqlQpzc7OTvviiy+yde6sdO7cWVuyZInu\n/7t27dJMTEy0pKQkTdM0zdXVVZs2bZru+l9++UXr2LFjqmOMGjVKmz59epav2d69ezUrKyvdsTVN\n0+zt7bXDhw9nq60uLi6atbW1ZmNjo5mYmGht27ZN9ZpMmzYtw9ekRo0a2q5du7RPPvlEmzRpkhYQ\nEKC5u7triYmJmomJiRYeHp6tNgilhKE/RIq6J2egVKtWjevXr+f4GOHh4axcuZIFCxboLktISODG\njRt6t6tixYqULFkyW7e9efMmsbGxtGrVSneZpmm6r/l54cnnKTw8HF9fX7Zs2aK7LDExkeeff57r\n169ja2ubqiddvXp1rl69mq3zVKhQId3XIDExkcjISCpUqJDlMQYNGsSgQYNISkpi48aNvPLKKzRv\n3hx3d/dstSEjN27cSPU8ODk5pbnN08/T4cOHsbW1TfU4hg4dSmRkZJavmZ2dHaamj7+MW1tbZ5lO\n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\nAABJRU5ErkJggg==\n" | |
} | |
], | |
"prompt_number": 12 | |
} | |
], | |
"metadata": {} | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment