{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 线性回归模型与诊断\n", "[大图](回归分析.html), [下载](origin_files/回归分析.ipynb) \n", "数据源:http://archive.ics.uci.edu/ml/datasets/Auto+MPG \n", "\n", "## Attribute Information:\n", "1. mpg: continuous \n", "2. cylinders: multi-valued discrete \n", "3. displacement: continuous \n", "4. horsepower: continuous \n", "5. weight: continuous \n", "6. acceleration: continuous \n", "7. model year: multi-valued discrete \n", "8. origin: multi-valued discrete \n", "9. car name: string (unique for each instance)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\guofei\\Anaconda3\\lib\\site-packages\\statsmodels\\compat\\pandas.py:56: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead.\n", " from pandas.core import datetools\n" ] } ], "source": [ "%matplotlib inline\n", "\n", "import matplotlib.pyplot as plt\n", "import os\n", "import numpy as np\n", "import pandas as pd\n", "import statsmodels.api as sm\n", "from statsmodels.formula.api import ols" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "scrolled": true }, "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", "
mpgcylindersdisplacementhorsepowerweightaccelerationmodel_yearorigincar_name
018.08307.0130.03504.012.0701chevrolet chevelle malibu
115.08350.0165.03693.011.5701buick skylark 320
218.08318.0150.03436.011.0701plymouth satellite
316.08304.0150.03433.012.0701amc rebel sst
417.08302.0140.03449.010.5701ford torino
\n", "
" ], "text/plain": [ " mpg cylinders displacement horsepower weight acceleration \\\n", "0 18.0 8 307.0 130.0 3504.0 12.0 \n", "1 15.0 8 350.0 165.0 3693.0 11.5 \n", "2 18.0 8 318.0 150.0 3436.0 11.0 \n", "3 16.0 8 304.0 150.0 3433.0 12.0 \n", "4 17.0 8 302.0 140.0 3449.0 10.5 \n", "\n", " model_year origin car_name \n", "0 70 1 chevrolet chevelle malibu \n", "1 70 1 buick skylark 320 \n", "2 70 1 plymouth satellite \n", "3 70 1 amc rebel sst \n", "4 70 1 ford torino " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df=pd.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data',sep='\\s+',na_values='?',\n", " header=None,names=['mpg','cylinders','displacement','horsepower','weight','acceleration','model_year','origin','car_name'])\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 数据清洗" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "df=df.dropna(how='any')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "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", " \n", "
mpgcylindersdisplacementhorsepowerweightaccelerationmodel_yearorigin
count392.000000392.000000392.000000392.000000392.000000392.000000392.000000392.000000
mean23.4459185.471939194.411990104.4693882977.58418415.54132775.9795921.576531
std7.8050071.705783104.64400438.491160849.4025602.7588643.6837370.805518
min9.0000003.00000068.00000046.0000001613.0000008.00000070.0000001.000000
25%17.0000004.000000105.00000075.0000002225.25000013.77500073.0000001.000000
50%22.7500004.000000151.00000093.5000002803.50000015.50000076.0000001.000000
75%29.0000008.000000275.750000126.0000003614.75000017.02500079.0000002.000000
max46.6000008.000000455.000000230.0000005140.00000024.80000082.0000003.000000
\n", "
" ], "text/plain": [ " mpg cylinders displacement horsepower weight \\\n", "count 392.000000 392.000000 392.000000 392.000000 392.000000 \n", "mean 23.445918 5.471939 194.411990 104.469388 2977.584184 \n", "std 7.805007 1.705783 104.644004 38.491160 849.402560 \n", "min 9.000000 3.000000 68.000000 46.000000 1613.000000 \n", "25% 17.000000 4.000000 105.000000 75.000000 2225.250000 \n", "50% 22.750000 4.000000 151.000000 93.500000 2803.500000 \n", "75% 29.000000 8.000000 275.750000 126.000000 3614.750000 \n", "max 46.600000 8.000000 455.000000 230.000000 5140.000000 \n", "\n", " acceleration model_year origin \n", "count 392.000000 392.000000 392.000000 \n", "mean 15.541327 75.979592 1.576531 \n", "std 2.758864 3.683737 0.805518 \n", "min 8.000000 70.000000 1.000000 \n", "25% 13.775000 73.000000 1.000000 \n", "50% 15.500000 76.000000 1.000000 \n", "75% 17.025000 79.000000 2.000000 \n", "max 24.800000 82.000000 3.000000 " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 相关性分析\n", "散点图" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(df.loc[:,'displacement'],df.loc[:,'mpg'],'.')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "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", " \n", "
mpgcylindersdisplacementhorsepowerweightaccelerationmodel_yearorigin
mpg1.000000-0.777618-0.805127-0.778427-0.8322440.4233290.5805410.565209
cylinders-0.7776181.0000000.9508230.8429830.897527-0.504683-0.345647-0.568932
displacement-0.8051270.9508231.0000000.8972570.932994-0.543800-0.369855-0.614535
horsepower-0.7784270.8429830.8972571.0000000.864538-0.689196-0.416361-0.455171
weight-0.8322440.8975270.9329940.8645381.000000-0.416839-0.309120-0.585005
acceleration0.423329-0.504683-0.543800-0.689196-0.4168391.0000000.2903160.212746
model_year0.580541-0.345647-0.369855-0.416361-0.3091200.2903161.0000000.181528
origin0.565209-0.568932-0.614535-0.455171-0.5850050.2127460.1815281.000000
\n", "
" ], "text/plain": [ " mpg cylinders displacement horsepower weight \\\n", "mpg 1.000000 -0.777618 -0.805127 -0.778427 -0.832244 \n", "cylinders -0.777618 1.000000 0.950823 0.842983 0.897527 \n", "displacement -0.805127 0.950823 1.000000 0.897257 0.932994 \n", "horsepower -0.778427 0.842983 0.897257 1.000000 0.864538 \n", "weight -0.832244 0.897527 0.932994 0.864538 1.000000 \n", "acceleration 0.423329 -0.504683 -0.543800 -0.689196 -0.416839 \n", "model_year 0.580541 -0.345647 -0.369855 -0.416361 -0.309120 \n", "origin 0.565209 -0.568932 -0.614535 -0.455171 -0.585005 \n", "\n", " acceleration model_year origin \n", "mpg 0.423329 0.580541 0.565209 \n", "cylinders -0.504683 -0.345647 -0.568932 \n", "displacement -0.543800 -0.369855 -0.614535 \n", "horsepower -0.689196 -0.416361 -0.455171 \n", "weight -0.416839 -0.309120 -0.585005 \n", "acceleration 1.000000 0.290316 0.212746 \n", "model_year 0.290316 1.000000 0.181528 \n", "origin 0.212746 0.181528 1.000000 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.corr(method='pearson')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 线性回归算法\n", "### 简单线性回归" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Intercept 35.120636\n", "displacement -0.060051\n", "dtype: float64" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lm_s = ols('mpg ~ displacement', data=df).fit()\n", "lm_s.params" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Predict-在原始数据集上得到预测值和残差" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "scrolled": 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", "
OLS Regression Results
Dep. Variable: mpg R-squared: 0.648
Model: OLS Adj. R-squared: 0.647
Method: Least Squares F-statistic: 718.7
Date: Thu, 30 Nov 2017 Prob (F-statistic): 1.66e-90
Time: 11:29:32 Log-Likelihood: -1156.4
No. Observations: 392 AIC: 2317.
Df Residuals: 390 BIC: 2325.
Df Model: 1
Covariance Type: nonrobust
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
coef std err t P>|t| [0.025 0.975]
Intercept 35.1206 0.494 71.033 0.000 34.149 36.093
displacement -0.0601 0.002 -26.808 0.000 -0.064 -0.056
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Omnibus: 41.308 Durbin-Watson: 0.926
Prob(Omnibus): 0.000 Jarque-Bera (JB): 61.139
Skew: 0.709 Prob(JB): 5.30e-14
Kurtosis: 4.317 Cond. No. 466.
" ], "text/plain": [ "\n", "\"\"\"\n", " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: mpg R-squared: 0.648\n", "Model: OLS Adj. R-squared: 0.647\n", "Method: Least Squares F-statistic: 718.7\n", "Date: Thu, 30 Nov 2017 Prob (F-statistic): 1.66e-90\n", "Time: 11:29:32 Log-Likelihood: -1156.4\n", "No. Observations: 392 AIC: 2317.\n", "Df Residuals: 390 BIC: 2325.\n", "Df Model: 1 \n", "Covariance Type: nonrobust \n", "================================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "--------------------------------------------------------------------------------\n", "Intercept 35.1206 0.494 71.033 0.000 34.149 36.093\n", "displacement -0.0601 0.002 -26.808 0.000 -0.064 -0.056\n", "==============================================================================\n", "Omnibus: 41.308 Durbin-Watson: 0.926\n", "Prob(Omnibus): 0.000 Jarque-Bera (JB): 61.139\n", "Skew: 0.709 Prob(JB): 5.30e-14\n", "Kurtosis: 4.317 Cond. No. 466.\n", "==============================================================================\n", "\n", "Warnings:\n", "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n", "\"\"\"" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lm_s.summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 预测值和残差" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "scrolled": true }, "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", "
predictresid
016.6848481.315152
114.1026360.897364
216.0242821.975718
316.865002-0.865002
416.9851050.014895
\n", "
" ], "text/plain": [ " predict resid\n", "0 16.684848 1.315152\n", "1 14.102636 0.897364\n", "2 16.024282 1.975718\n", "3 16.865002 -0.865002\n", "4 16.985105 0.014895" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.DataFrame([lm_s.predict(df), lm_s.resid], index=['predict', 'resid']).T.head()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nEg9b2MlPAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(df.displacement,df.mpg,'.')\n", "plt.plot(df.displacement,lm_s.predict(df.displacement))\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 多元线性回归" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "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", "
OLS Regression Results
Dep. Variable: mpg R-squared: 0.708
Model: OLS Adj. R-squared: 0.705
Method: Least Squares F-statistic: 234.2
Date: Thu, 30 Nov 2017 Prob (F-statistic): 6.18e-102
Time: 11:29:32 Log-Likelihood: -1120.1
No. Observations: 392 AIC: 2250.
Df Residuals: 387 BIC: 2270.
Df Model: 4
Covariance Type: nonrobust
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
coef std err t P>|t| [0.025 0.975]
Intercept 45.7568 1.520 30.102 0.000 42.768 48.745
cylinders -0.3933 0.410 -0.960 0.338 -1.199 0.412
displacement 0.0001 0.009 0.015 0.988 -0.018 0.018
horsepower -0.0428 0.013 -3.327 0.001 -0.068 -0.018
weight -0.0053 0.001 -7.364 0.000 -0.007 -0.004
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Omnibus: 37.596 Durbin-Watson: 0.862
Prob(Omnibus): 0.000 Jarque-Bera (JB): 50.918
Skew: 0.696 Prob(JB): 8.77e-12
Kurtosis: 4.085 Cond. No. 2.23e+04
" ], "text/plain": [ "\n", "\"\"\"\n", " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: mpg R-squared: 0.708\n", "Model: OLS Adj. R-squared: 0.705\n", "Method: Least Squares F-statistic: 234.2\n", "Date: Thu, 30 Nov 2017 Prob (F-statistic): 6.18e-102\n", "Time: 11:29:32 Log-Likelihood: -1120.1\n", "No. Observations: 392 AIC: 2250.\n", "Df Residuals: 387 BIC: 2270.\n", "Df Model: 4 \n", "Covariance Type: nonrobust \n", "================================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "--------------------------------------------------------------------------------\n", "Intercept 45.7568 1.520 30.102 0.000 42.768 48.745\n", "cylinders -0.3933 0.410 -0.960 0.338 -1.199 0.412\n", "displacement 0.0001 0.009 0.015 0.988 -0.018 0.018\n", "horsepower -0.0428 0.013 -3.327 0.001 -0.068 -0.018\n", "weight -0.0053 0.001 -7.364 0.000 -0.007 -0.004\n", "==============================================================================\n", "Omnibus: 37.596 Durbin-Watson: 0.862\n", "Prob(Omnibus): 0.000 Jarque-Bera (JB): 50.918\n", "Skew: 0.696 Prob(JB): 8.77e-12\n", "Kurtosis: 4.085 Cond. No. 2.23e+04\n", "==============================================================================\n", "\n", "Warnings:\n", "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n", "[2] The condition number is large, 2.23e+04. This might indicate that there are\n", "strong multicollinearity or other numerical problems.\n", "\"\"\"" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lm_m = ols('mpg ~ cylinders + displacement + horsepower + weight', data=df).fit()\n", "lm_m.summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 多元线性回归的变量筛选" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "'''forward select'''\n", "def forward_select(data, response):\n", " remaining = set(data.columns)\n", " remaining.remove(response)\n", " selected = []\n", " current_score, best_new_score = float('inf'), float('inf')\n", " while remaining:\n", " aic_with_candidates=[]\n", " for candidate in remaining:\n", " formula = \"{} ~ {}\".format(response,' + '.join(selected + [candidate]))\n", " aic = ols(formula=formula, data=data).fit().aic\n", " aic_with_candidates.append((aic, candidate))\n", " aic_with_candidates.sort(reverse=True)\n", " best_new_score, best_candidate=aic_with_candidates.pop()\n", " if current_score > best_new_score:\n", " remaining.remove(best_candidate)\n", " selected.append(best_candidate)\n", " current_score = best_new_score\n", " print ('aic is {},continuing!'.format(current_score))\n", " else: \n", " print ('forward selection over!')\n", " break\n", " formula = \"{} ~ {} \".format(response,' + '.join(selected))\n", " print('final formula is {}'.format(formula))\n", " model = ols(formula=formula, data=data).fit()\n", " return(model)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "aic is 1984.0305566107504,continuing!\n", "aic is 1906.4255034746855,continuing!\n", "aic is 1799.5729062446048,continuing!\n", "aic is 1789.2703828575354,continuing!\n", "aic is 1776.9197293862794,continuing!\n", "aic is 1768.771491401507,continuing!\n", "aic is 1768.7714914015069,continuing!\n", "forward selection over!\n", "final formula is mpg ~ car_name + model_year + weight + acceleration + horsepower + cylinders + origin \n", "0.981572407234\n" ] } ], "source": [ "lm_m = forward_select(data=df, response='mpg')\n", "print(lm_m.rsquared)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 线性回归的诊断\n", "### 残差分析" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ana1 = ols('mpg ~ displacement', data=df).fit()\n", "plt.plot(df.displacement,lm_s.resid,'.')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "遇到异方差情况,教科书上会介绍使用加权最小二乘法,但是实际上最常用的是对被解释变量取对数" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "df2=df.copy()\n", "df2['mpg_ln']=np.log(df2['mpg'])\n", "df2['displacement_ln']=np.log(df2['displacement'])" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ana2 = ols('mpg_ln ~ displacement', data=df2).fit()\n", "plt.plot(df2.displacement,ana2.resid,'.')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAD8CAYAAACfF6SlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnX+UHNV15z+3ZyQwjmQGCZBAGgnZoAWRrGEmIOyNEQ5k\nsUNQAsbIEC8kxjKJnRyvs9mwcazjo5zkaO3jE7wn7Noy8cbOWiB+CKOwmB82kGRtj5BG4IAgAjHW\nSAMIxDCAjID50Xf/6B+qqanurh+vuqu77uccHU11V1e9fv3q++677777RFUxDMMw8kWh1QUwDMMw\nmo+Jv2EYRg4x8TcMw8ghJv6GYRg5xMTfMAwjh5j4G4Zh5BATf8MwjBxi4m8YhpFDTPwNwzBySHer\nC1CL+fPn69KlS1tdDMMwjLZicHDwFVU9vtF5mRX/pUuXsmPHjlYXwzAMo60QkeEw55nbxzAMI4eY\n+BuGYeQQE3/DMIwcYuJvGIaRQ0z8DcMwcoiJv2EYRg4x8TcMIxKDw2Pc9PAeBofHWl0UIwGZjfM3\nDCN7DA6PcfXNA4xPFpndXeB7162kb0lPq4tlxMAsf8MwQjMwNMr4ZJGiwsRkkYGh0VYXyYiJib9h\nGKFZuWwes7sLdAnM6i6wctm8VhfJiIm5fQzDCE3fkh6+d91KBoZGWblsnrl82hgTf8MwItG3pMdE\nvwMwt49hGEYOMfE3DMPIISb+hmEYOcTE3zAMI4eY+BuGYeQQE3/DMIwcYuJvGIaRQ0z8DcMwcoiJ\nv2EYRg4x8TcMw8ghJv6GYRg5xMTfMIxcYJvQTMeJ+IvIxSKyW0T2iMgNNc75uIg8JSK7RGSTi/sa\nhmGEobIJzdce2M3VNw9YB4AD8ReRLuAm4CPAGcAnROQM3zmnAv8N+KCqrgA+n/S+hmEYYbFNaGbi\nwvI/B9ijqkOqOg7cCqz2nfNp4CZVHQNQ1Zcd3NcwDCMUtgnNTFzk8z8Z2O85HgHO9Z1zGoCI/Bjo\nAr6sqvf5LyQia4G1AL29vQ6KZhiGYZvQBOFC/CXgNQ24z6nAKmAR8C8icqaqvjbtQ6obgY0A/f39\n/msYhmHExjahmY4Lt88IsNhzvAh4IeCcu1V1QlV/Duym1BkYhmEYLcCF+G8HThWRU0RkNrAG2Oo7\n5/vABQAiMp+SG2jIwb0NwzCMGCQWf1WdBD4H3A88DdymqrtEZL2IXFo+7X5gVESeAh4G/lRVbbrd\nMAyjRYhqNl3r/f39umPHjlYXwzAMo60QkUFV7W90nq3wNQzDyCEm/oZhGDnExN8wDCOHmPgbhmHk\nEBN/wzCMHGLibxiGkUNM/A3DMHKIib9hGEYOMfE3DMPIISb+hmEYOcTE3zAMI4eY+BuGYeQQE3/D\nMHLB4PAYNz28xzZvL+NiJy/DMIxMMzg8xtU3DzA+WWR2d4HvXbcy97t6meVvGEbHMzA0yvhkkaLC\nxGSRgSHbTsTE3zCMjmflsnnM7i7QJTCru8DKZfNaXaSWY26fJjE4PMbA0Cgrl83L/XDTMJpN35Ie\nvnfdSnsGPZj4NwHzNxpG6+lb0mPPnQdz+zQB8zcahpE1TPybgPkbDcPIGk7EX0QuFpHdIrJHRG6o\nc97HRERFpOHmwp1Exd/4hd9YXtflEyUO2WKWDcNIQmKfv4h0ATcBFwEjwHYR2aqqT/nOmwP8MbAt\n6T3bkUb+xijzAjaHYBhGUlxY/ucAe1R1SFXHgVuB1QHn/SXwFeBtB/fsOLbsHOGdiXDzAjaHYBhG\nUlyI/8nAfs/xSPm1KiJyFrBYVe9xcL+OY3B4jNt37EfLx11d9ecFbA7BMIykuAj1lIDXtPqmSAH4\nG+DahhcSWQusBejt7XVQtPZgYGiUyWKpygT4WN+ium4ci1k2DCMpLsR/BFjsOV4EvOA5ngOcCTwi\nIgALgK0icqmq7vBeSFU3AhsB+vv7lZywctk8ugvCxJQyq0u4/OxFDT9jMcuGYSTBhdtnO3CqiJwi\nIrOBNcDWypuq+rqqzlfVpaq6FBgAZgh/3lHPP8MwjLRJLP6qOgl8DrgfeBq4TVV3ich6Ebk06fXz\nwJadI0xMlWR/YkrZsnOkxSUyDKPTcZLeQVXvBe71vbauxrmrXNyzk/Bb+2Gtf8sXZBhGXCy3Twa4\n/OxF3LFjfySfv8X6G4aRBBP/DNC3pIdb1p4XyYoPivU38TcMIywm/hkhavROJdZ/YrJosf6GYUTG\nxL9NsVh/wzCSYOLfxlisv2EYcbGUzkYmsCylhtFczPI3Wk7WIpcshNbIAyb+KdOpQuLye2Upcilr\nHZFhpIWJf4p0qpC4/l5ZilzKUkdkGGli4p8iWRKSNC31O3eOJLq2y8ilpN8zSx2RYaSJiX+KZEVI\n0rTUuwrCHYMjTE4lu7aLyCUX39NCaI28YOKfIlkREtcjEO/3+tn+13jwqZdQWj+6cfU9LYQ2P3Tq\nnFwYTPxzQBojkMqD8vUfPXtkB7KCtNRNkpWRltEedOqcXFhM/FPE27i6C8IV/Yu57Oz6u3SlQVoj\nkIGhUSanikBpB7Ir+he39OHJykjLaA+yNCfnZdO2ffzgyRf5yJkLuerc9HY0NPFPEW/jGp9SNm3b\nx507R1piYaThyvBb2peFyEaaNuaySY9Oc5G0YqTYqA43bdvHn9/1BAD/8uwrAKl1ACb+KVJpXO9M\nFKu7dNWzMJrV47vCa2n3HDObgaHR6utGZ9GJLpJmjxTD1OHm7ftmHJv4Z4iwFlClcd25c4Q7BkeY\nmpppYVSudeitCb7xz0NA+j2+Syrfv9OEwZhOVl0kSUk6Utxw79Pct+sAF69YwA0fPb3uuWHq8IS5\nRwOv+47TwcQ/IlEtoErjuvzsRTM6jMHhMT6x8afVLRy9/ODJF52Kv7fDApxaO50qDMYRbDJ9Jhvu\nfbpqsFX+r9cBhKnD689/Lw//20tMFqG7UDpOCxP/iMQVuiAL486dI4wHCD/AR85c6KS8MHPiGZHE\ncfleTBg6H5tMn8l9uw7MOK4n/mHqsG9JD5s/84Gm1LOJf0RcCp3UeL1LYPmCObGv62dahzVVmn1w\nGZffCt+piVDzscn06Vy8YkHV4q8cNyJMHTarnk38IxJX6IIE67KzF3H74AgTk0VEoFgeBExpaVTQ\n6NphJ4j9K3IRCZx/SEKzGmwnTjwa7UnFyg/r8w+ilYaME/EXkYuBrwNdwM2qusH3/heA64BJ4CDw\n+6o67OLerSCq0NUSrL4lPdzy6SMrZR946qXqZ2qNCipECQnzd1jg1uffTGx+Id9kbdR30YoFzHnX\nrFhGVKsNmcTiLyJdwE3ARcAIsF1EtqrqU57THgP6VfWwiPwB8BXgyqT3bgcGh8e48YfPVMM9/YJV\n6QQGh8d45JmDoWPmo4aE+TusLDw4cbD5hc6lkbC3Wixdl6fVhowLy/8cYI+qDgGIyK3AaqAq/qr6\nsOf8AeB3Hdw383gbh1LaNq2WYPUt6eHLv7Wi6sZp1AhO9IWEndggJCyKxdQK6ypq+GxWy2fEI4yQ\ntlos/SQtT6sNGRfifzKw33M8Apxb5/xPAT9wcN/M420cBYEPvm8+n7/wtJpWzfp7djE+WWT73ldZ\nvmBO3Yb0mfPfy0O7X2ZySunuEj5TJyRscHiMT3xroNrIbvl0bQulFdZV3PDZZpE1i7MTCSOkrRZL\nP0nL0+oIKhfiH+SeDoxfFJHfBfqB82u8vxZYC9Dbm/0FTo3wN45awg/RrYi+JT1sXnteqIazZecI\n45OlHDzjk0W2lCeTg6zZsOVo9U5ezbTEs2ZxdiJhhLTVYplGeVoZQeVC/EeAxZ7jRcAL/pNE5ELg\ni8D5qvpO0IVUdSOwEaC/vz84AL6NiNI44lgRYRvOwUPTq/vZlw7x53c9EZiHP0w5Wr2TV7Mt8axZ\nnJ1I2GfFwk3d4UL8twOnisgpwPPAGuAq7wkichbwTeBiVX3ZwT3bhrCNNY4VEdb6nT/nqOmf2/ca\n2/eOVYdnXms2TDnS3B8gzHdvtiWeNYuzU2k3YW93d2Bi8VfVSRH5HHA/pVDPb6vqLhFZD+xQ1a3A\nV4FfAm4XEYB9qnpp0nu3irRcDlEa/6Zt+1h395MUVRs2vMvPXsQdO/YzMaUUBFS1KvzCzEnoRuVI\na3+AsN+9cv/xySIiQs8xsxPfvxHtJkztTLtMrre7O9BJnL+q3gvc63ttnefvC13cJwtkobcfHB5j\n3d1PMlleFTbeoOH1LenhlvL8QM8xs1l/z67qgq84ewy02hLuW9LDuktWsO7uJ5kqKuvv2dVwgtxo\nD9J8vlx3Ku3uDrQVvhHJQm8/MDRaFX6AgoTfQWv5gjlOhLvVlvDY4XGK6jZNhdF60nq+XHUq/g6k\nnd2BJv4RCertXVkUYa/jd3Nc8iv11wUENfzPXvC+2OWMU2bXtLvVlWVa6XZp9LvGLZuLTqXeSv24\ntH16hzwRlCrBlUUR9jpjh8cRjsTT3vOvL/LJ85aGDiPdsnOk6gIaOzweu+FFWT8Q5lpRHoJ2t7qy\nSqvdmvV+1yRlW7lsHl0FoTilFGLuNe16VNLqujbxj4G3t7/p4T1O4uKjNKxKQ664fopFbXh+NbFb\nV4Hby5O/lc5jdkzhrrV+ICpxH4Jmup7aZRIyKVlwa9b6XadtixqxbLsPHKrumzExpew+cCj0Zyu/\nfc8xs52ONltd1yb+CXEVFx/FjdG3pIf1q88sRfsUldmzGp9fsaaef+0tbn1037RVeHGEe3B4jCef\nf33aa3EXZmzZOVIz91FUaol0EvFutYXWTLLsTus5ZnY1821RZ7o/6/GDJ1+ccRxmsyT/b7/ukhWJ\nRsteWl3XuRV/V5acq7j4qG6Mq87tZfmCOaHPr1hTg8NjbNk5wtsTxWnvRxFu7wNRYXaXcHmMDdwH\nh8e4fcf+6v27uuI/BLVEut0TcCUlSlvPsjvN6+4slI/D8pEzF1az31aOw+D/7ccOjzubL2t1XedS\n/F1bcvXcD4PDYzz/2lt0dxUa5tDffeBQdXiZltuj0uC27Bxh8/Z9TBVhVkThjpKzKMy1Ku4rAT7W\nFy3s1H+tyghifOKISLd7Aq4kVNaDTBWVo2aFa+utjuSqxcpl8zhqVrzfoWLlh9n/wn/Per992D01\nahFU181yMeZS/Jtlyfm3T1xzTm/NmPoo+fkr196ycwSltIgrapx+35IeLgvYV7hy7XqNL0rOokZU\nF2xNFCkUhDNPek+s60DJDVAZQRQ54hZoVgKurM0LzFgPMtE+o5aguqys7wib+dbP8gVzGDs8HmmX\nvHq/fdRnNgzNdDHmUvybZcl5O5mponLSse+q+UNG8UlWomwqbpc7duznlrXnxRoFBFkdjRqfy+Gq\nd8FWUZMt2Bo7PE6hvCNaQY64BVyUt5E1nMV5gYGhUYp6xKEnQqZHLd6J1UqGW7/7LkrmW/+14/4+\ntX77uPMI9WimizGX4t8sX1uUTiaKT3JgaJQJj799Yqp+tE8UwjY+l66ByoKtWvcMa1HXq++0XRlJ\nHtq0Rgwrl82juyCMl6NcCoVG+8O1Dq84F0SYKs5cwJekjtMQ1bjzCPVoposxl+IPzfFrRulkovgk\nVy6bx6xybhuArq7GccsuBDQt6t0zSg6jVk2gDQ6P8cJrb9FdKIlWlHpLc8TQt6SHK/oXs2lbKbqr\nUUhwWNLorLziDEpXQVCdXpdJ2mYa7TruPEI9mtmGcyv+zSJKJxPWJ9m3pLTr15e+/wRTWop8qEcU\ngWmFgNa6Z9QcRhB90jwp0+Z1ugpcec7iSHMwaSwc8tbjZWcv4s6dI85EL63Oyi/OQSGVSdpm0vmC\nWlx1bq8T0ffSrAl3E/8IpGHxNPJz1mLs8Hh1cnOqgUUXVmC8389VOFtYghr8wNAoUxFyGKUxAdeI\nafM6U0VOrjOvE4RLizRImAEuO3sRUv4/acdSbz/qJHiF/dBbEzVFOq4wDg6P8eV/LCU03PbzaPMF\nnYqJf0jiWjz1Ogy/n7Oe39tPFNFwtRCt2VRC+yqRQOtXn1m3TK4m4KJ08s2KJAqDv5O/c+dIdRX2\n7O4Cl8VYh1Ehyn7USfjZ/td44KmXALcduKvV6J2EiX9IogzPvdb8l7c+ycSUMqtLZkTkeK+pWvJz\nCuF8xlFEI8y5WVzIVCn3nTtHEGjoDluxcO60CbgVC+dGvmec/YSzspWfvyMScPab1lrbAaUUJy6S\nGl5988CMxYcuImhg5iLGtt8m0AEm/iEJa+F5xUOAcqAF41PKnT5rw7tcXSll5xx9czyUT9Ib5x+G\nRgKT5YVMFavtzp0jdcV4zrtmVf8W33FYaz5OJ9gsH20j/B0R4MzfH7S2A9wkNYQj9e7HRQQNTN/Q\nKOqixk7FxD8kYS08r3j4A+v8x97l6kIpO2dRtWEMs6s4/zjfLw3qCfOdEfL+rFw2j6MDVoBGyT7a\n7E7Q9TySvyNyNckZ1D7CJjUMg7feCwXhjIVzufJX3U2m9i05sqFRVhbhtRoT/wiEsfCmZdAsCApM\nTpVcOX6fq3e5ukTw+fvj/Mcdxfm3woKtjJTemSjV1/rVZ1Yf+MHhMe4YPDK66WqQirdWBxbF39vM\nTjDteZYki6KC8LcPlx1lpd637Bzh5UPvcMKcoyKtxA3Dg7sOcN+uAxx6a8JZPX/+1sd45JmDrDrt\neG5cc1bD87O0CtzE3zFBQ+9aP7b3XO/2imEmcAsFmPKMkpuxj20aePPxTBaVdXc/WRWpgaFRJstf\nUoAr+hfHcsFE9fc2qxNMe54l7eu77ih3HzjErY/uq7pKbx8cSbRHhJcN9z7NN/55CKD6/w0fPT3R\nNT9/62N8//EXAKr/1+sAshZUkTvxb0bP6xePRhOGlfejZOlUn3v0yRdej1/gBCStz5XLfHsT6JFR\nTOW94pTS3SWxo1Wy6u9N28W0ctm8arqLtFI7uOooK2s6pjw9s8sO675dB2YcJxX/R545WPfYT9aC\nKnIl/q563qSZ/GoR9kEaGBrFPzWW9sL9IJF3UZ99Szx7E5RX8VZEKskGHP57ZNHfm7aLafeBQ1S8\ng5NFYtdfM/Cv6YDgUNK4z97FKxZULf7KcVJWnXZ81eKvHNcja0EVTsRfRC4Gvg50ATer6gbf+0cB\n3wX6gFHgSlXd6+LeUXDR87ZiIZGfIBfPigTZMBtRS+S99fnORPzY6Vp7E7hMnJWViBw/rsvl7aT9\n9bd5+76mt9WweNd0iMCvn34inzn/vdPqJsmzd8NHT+fAG29X/fNJrX444uIJ6/NvZVBFEInFX0S6\ngJuAi4ARYLuIbFXVpzynfQoYU9X3icga4L8DVya9d1Si9Ly13BmuFxLF2Uc3aBOLKBtbhC1bpUy1\nOs2Vy+bR3VWoLvy5fcf+2KtIg0QwjcRZWcOlG9If1fT7H1g6rf6eevENBofHWi46QYQRxiTP3uDw\nGPftOsD4ZJH7dh1wVg9hJnm9ZMkIcWH5nwPsUdUhABG5FVgNeMV/NfDl8t93AH8rIqKqTV1rEbbn\nrefOcCFI3ggXpbRoJorbpOQLPzLhOytEYreoZfN+96BOsyJaq047ngefegmlcZqJqKSROCsuaaX2\ncDkB6I9qOvTOJL9xxonVFbNhf5+03JqNaCSMSZ69rPnbs4AL8T8Z2O85HgHOrXWOqk6KyOvAPOAV\nMki9huJCkCrXr248ErFB7j5waFqkT7EYrQ+tJ2RB3/2zF7xvRgSTd5OaWd2NdymLS5wNOFyTVpSG\na0EKimpatfyEqviH2fc2C27NWiR59rLmb88CLsQ/aK7R3w7DnIOIrAXWAvT2um9wYR/iRg0lqSBV\nrj8+UaRIyfKP0iD9w98pJbRwNKqDWt/da5V5F/dMFZUrz1nMyce+y7kfMyuhcWlZja4F6fKzF3Hb\njv1MlqOjLi/v1BZl39s0NihxSdxnL2v+9izgQvxHgMWe40XACzXOGRGRbuA9wKv+C6nqRmAjQH9/\nv3OXUNiHuF5DcRXh4o3vHzs8zqG3Jrjxh8+Esmj8w9/uQvgwvkZ1EOYh8YtW1G0kwxJHdNNwz6Rl\nNaYhSAVKllYlzbd3IWGYsrd6niVsIsQ4z14ai7zaGRfivx04VUROAZ4H1gBX+c7ZClwD/BT4GPBQ\ns/39EO0hruV/dGUFeq+/ads+vnr/biDcULvy3ubt+zhh7tFc74uKqIcLIWuWFbVy2TzEk/+iUVkH\nh8f4xMaf1kykF5c0v6/LCcCBoVEmyztgVfz7n73gfZFSPFx1bi+P/ny0GsFSaWvNmAdotNl8kmcv\njUVe7U5i8S/78D8H3E8p1PPbqrpLRNYDO1R1K/B3wD+IyB5KFv+apPeNg4uHOKp4hrFEkwy1o8b3\nN6qDsNZVM6IWHtx1oDq3MVUsHde75507R6pbFgYl0ktCmt/X1Wil1sR8lBQPm7btm7Zq9ZxTSu07\n7XmAMJvNJzFcvv/48zOOTfwdoKr3Avf6Xlvn+ftt4AoX90pK0oc4SgcSVkijDrW9k3LwOg/tfpnN\nEazcenUQ19VSSbucdMMQL1FXZTZKpJdFXI5WgtrmF+96ItLmK0GGSNA5rsV/YGj6ZvOFgDxOSYy3\nxccdw4E33pl27IIs5eqJSq5W+LoiykrcMEIaNYrB/0BOOtzAPc7I5hMbf1q1uF3mY2m0KjNoy8Lb\nPGkckmxe0ixcj1a8bXNweIzbd+yvRlYojV1ntQyRtOcBqkEQk6WNjWpt3BPXb3/DR07n49/4CVMK\nXVI6TkqcOYgsdRYm/ikSRUijRDHMmPB1GOdfy7qq1WgHhkarKRjAbTRMxcq/b9cBLl6xYJrVX2vL\nQvH8awdeOfRO3eMk+H+bojZ2nV11bi+3bd/Hky+8wZknzZ1miKTp86+0u3ob90Tx2/vba9+SHm67\n/gNOhTfqKDkr0WsVTPxTxMWisiC8E74nzj162jJ4F5aFf2RTr3wrl81jVpdUrdcuhx0RlB7uoAc8\n6MEDZkx4uqyXNDh+zlF1j6Pi/Z5Bv0Mj19nnb32Mx0dKSQIfH3mdz9/6GDeuOatp6y3qbdwT1g1Y\nq726nreJOkrO2kIzE/+UCdPg4jSKq86dudFFKxYj9S3p4cuXnsmXylEaBXFrc9cS7VoPXtBrWbO4\nvPhzMiXJ0TQ4PMYaz/zBrWvPY/X7T5qWfKxRQrOgTJXNqr9Gz0HY5GzNEtmocxBZW2hm4p8B4jSK\noE0kWrUYaezwOJXI3akpd/etJzq1Hryg17JmcXnxL7pKkqPpm//03LQsqN/8p+fY+J/6WTD36EDX\nWRBBmSqbVX+N2lk9N2CU63hJGsIaZTSRtYVmHSn+WR3i1yJqo6i1iUQaYahhytdzzOyyxR9u8/mw\nhFmQ5i9L0GtZs7i8HHprou5xFF564+3A41qusyBuXHMWr745zqN7X+Wcpcdx45qzGBweq65IF5HU\nNg4K8xyE+S5hn6dWpLJoRoh0WDpO/LM8xK9HlEZRaxOJNMJQG5WvEkc+VVS6CsK6S1ZEru+orp2o\nZM3i8rLrxTfqHkfhyl/t5WcjT0w7jsrg8BiP7n2V8ckij+59tZr9ct0lK6p7Lqy/Z1fiLSFr3XvL\nzpGGO62FIczzFHZ9TbsZk2HpOPHP8hDfFfU2kXAdhlqhXrRPJUmdqkZ2W8Rx7cQhSxaXlxUL5zoL\no1y+YA6zuqTq848zOVurXYwdHg+9x3QcKumoK1lJ79ix39kK7VqEWV/TrsZkGDpO/LM8xHdF1E0k\ngmhUT16xB+pG+ySp7ziunU5hcHiMb//459XjrkJwiGNYBoaO7IZV9EQ7bbj36dA+/1q/Z9rP1cDQ\nKBOTR1LVTjhcu1Lhoq89wnOvvMl757+bB/9kVaj1NZ1sTHac+Gd5iO+adyam+PGeV9i0LfoOTfXq\nyW/tXH72orrRPknqOw+ddS1mxOEXw2dnDSKoLqPmtKm4ePy5gNJ+rlYum8es8iIvcLtHBZSE/9mD\nbwLw7ME3uehrj1Q7gHrPTie3z44Tf+h8a/Ev7nqCpw8cAuCtifHqpFWcDiAoDt5v7SjBIZRB14lK\nI1Fp1cYizcC/RiKpuATV5Z/c9vi0cxrF+dfLBZTmc9W3pIdbPr2y6vOvlSk2KMotDM+98mbd43rl\n6lRjsiPFv1OpWORvT/i3b0+Wb8Vv6a+7ZMWMlM2V3PC1ksEleThqiUqWNxZxQd+S0sbyLvMi+dMf\nvH/xsewdPVx9v1GcfyvdHI06l1pRbmF47/x3Vy3/yrGrcrUrJv4ZopGIVh7MIOpNFIa9buWBHzs8\nHmjt+F1DA0OjHHprgpv/389rpuFNQtY3FnGBS2Hxu3gOvPE29+06UE11sfr9J8X2+WeBWlFuYXjw\nT1bN8Pm7oJ0jgUz8M0KYqALvg6mUcvq85+hZ/OeLltcUxajXrTzwflHyTwBXMlF6w/KC0vAmodUb\ni7Qb/vQHjzxzsBqJ1SVw6omNJ5Oz7OaoF+UWBleCX6HdI4FM/DNCmOF2nAfTxXX9jfxDpx5f9VN7\nCUrDm4Srzu1l3+ib1UiVoHQWWRSpVuFPf7DqtOO5b9eByFZ8Vt0cLqLcXNLukUAm/hkh7HC78mAO\nDo9x08N7Ggpf1OtW8E60jh0en9bI/StJAboLtdPwxmVweIy//+lexieL/P1P93LRigXTJqjb2epK\ng4tWLOBbZRdcV0H45HlL+eR5S510kFnpaFst+F6y7CILg4l/RkhrdW6c0YJ/ovX6Dy2b1siv/NVe\nnj6wi4nJIt1dwhX9i1PZx9drWY37LKt2t7rSYGBotJpjCT2yjWPSemlmR9tO0V1ZdpGFwcQ/BmlZ\nQWmtzq3nvw/6nH+iddeLb8xo5MsXzJl2HHYkEoWeY2ZTXrNEUZmWUyaK1ZUVqzVtgurExXdvVkfr\njeZpl+iurLrIwmDiH5G0rKAoD2l116MYibbClD9ootXfyCvHm7btY/0/7mLXC69TVJzWydjhcSr7\ntxeYnvEyrNWVJ/eQv06g9srsevhXBDfDveHdO7hCJ0Z3ZQkT/4ikYQXFSbIWN9FWmPKH3VZy+l7C\nJVynkj5qVrLFZXlzD3nr5KaH90T+7rVWBKft3gjaK9iiu9LFxD8iaVhBcQQqbqKtsOX3LnuvNSoJ\nemBdWob7YJPmAAAOhUlEQVQufKrtPimXhDjfvdZuWWm7N/yjzd9+/0nOrf52mk9oBonEX0SOAzYD\nS4G9wMdVdcx3zvuB/wXMBaaAv1LVzUnu20rSmOSJ85DGFbWo5a83KvE/sBedcSLXe7aUdEFS0Wn3\nSbkkxPnuYXfLck2U0WYcAe/01eJxkGp0QJwPi3wFeFVVN4jIDUCPqv6Z75zTAFXVZ0XkJGAQOF1V\nX6t37f7+ft2xY0fssrUbcSbmmjGRedPDe/jaA7spammh0Bd+YzmfveB91ffNmkpO1iako2QBbSZ+\nN+Nf/84vh25zn/y7bdMMlV87dT7/8KlznZcxC4jIoKr2NzovqdtnNbCq/Pd3gEeAaeKvqs94/n5B\nRF4Gjgfqin/eiGPhNiPSoNEIo1FWxKRkTRhdk8UJ6Sg7fzWTJOk+bLX4TJKK/4mq+iKAqr4oIifU\nO1lEzgFmA88lvG/HkVWRC+M62LRtH5u37+PEuUfzGYduH5fCmNX6zduEdBKSCHhYt1KeaCj+IvJD\nIMjx98UoNxKRhcA/ANeoamB2MhFZC6wF6O3Nz4+TRevPS70RxvSh+Os8tPtlNkfcganRLmFJhTHL\n9dsuE9JZ6DyTCnjao9R2o6H4q+qFtd4TkZdEZGHZ6l8IvFzjvLnA/wX+QlUH6txrI7ARSj7/RmXr\nFNrZ+vMPxScj7sBUT5hdCWOW67cdJqRb0XnW6mxMwN2R1O2zFbgG2FD+/27/CSIyG7gL+K6q3p7w\nfh1Ju1h/QfiH4t0Rd2CqJ8yuhDHr9Zv1VaLN7jyzPFLrJJKK/wbgNhH5FLAPuAJARPqB61X1OuDj\nwIeAeSJybflz16rq4wHXyyVxRC4Lw3Ao7TnbVRCmikpBYP2l0ZK7NRJmF8LYDtZ1lmjFCl/vfY+f\nc1RmR2qdRKJQzzTJW6hnFLJkGX3xrif43rZ91eOrz+3lr37nlyNdIysdWSeQtC69K3wBrv/QMm74\n6Omp/0b++3aVd6CZZZZ/ZJoV6mm0AJcToUkfaL/pEMeUyLrbo11wYRS0aoWv/77HzzmKT5631AyC\nFCm0ugBGdCrD8C6Jn06hIhRfe2A3V988wODwWOMPBXD52YuY3SUIJWvtzJPeE+s69cp508N7Ypcv\nTwQZBVHxr+ht1gpf/31++/0nO0lHbdTGLP82xIUP2+Uk3qrlJ/Cjp1+iqIROMhdm1JGHOH+XuPDN\nVxZ3NXuFb6vum2dM/NuUpMNwF0JREed3JopVd0+YjiSsqOchzt8lria2W7XCN+375sEAiEIuxN9+\n9Jm4HD1UhF8I54YKK+pZiPNvt7Zj8yfB5MUAiELHi7/96LVxOXro6irwsb5FDbdzHBwe4/nX3qK7\nq8DUVON9hVsZ529tp3PI8kK/VtHx4m8/enokSQ/dXRDWnNPLZQ06i1bG+Vvb6RyyvtCvFXS8+NuP\nni5RxNkrplNF5aRj39U0MY3TiVjb6Rxsod9MOl787UfPDu0mptZ2OgubD5mOrfA1mkq7TaAaRrth\nK3yNTGLWl2FkA1vha9TEVtcaRudilr8RiIU5GkZnY5a/EYiLPDGGkXXyPLo1y98IpN0icwwjKnkf\n3Zr4J6CTI1fyFObYyb+jUZu8L+Iz8Y9JHqyGsJE5g8NjbNk5gkLD9A5ZIw+/YyfhsqPO++jWxD8m\nebcaKmzato8v3f0kU8XSepE7duznlrXntU1d2O/YPrjuqPM0ug3CJnxj4mJDlSRkYaJqcHiMdR7h\nB5iY0raaHA76HbNQt8ZM0ghC6FvSk9tNY8zyj0krrYasuCoGhkYp+laIz+qStho++39HIBN1a8wk\n724a15j4J6BVq1Wz4qqoPIzjk0VEhA//uxO4/vz3tp1Yen/Hmx7ek4m6NWaSdzeNaxKJv4gcB2wG\nlgJ7gY+rauBYWUTmAk8Dd6nq55LcN+9kxQLqxIcxK3VrBGPpQdyRKLGbiHwFeFVVN4jIDUCPqv5Z\njXO/DhxfPr+h+Ftit/pYeGJ6WN0a7UyzErutBlaV//4O8AgwQ/xFpA84EbgPaFgoozFmAbnDL/ZW\nt0YeSCr+J6rqiwCq+qKInOA/QUQKwNeATwK/Xu9iIrIWWAvQ29ubsGhGs2hnSzkrk+eG0Wwair+I\n/BBYEPDWF0Pe4w+Be1V1v4jUPVFVNwIboeT2CXl9o4W0u3hmZfLcMJpNQ/FX1QtrvSciL4nIwrLV\nvxB4OeC084BfE5E/BH4JmC0iv1DVG2KX2sgM7S6eNsFr5JWkbp+twDXAhvL/d/tPUNWrK3+LyLVA\nvwl/59Du4tmJEUuGEYak4r8BuE1EPgXsA64AEJF+4HpVvS7h9Y2M0wniaRO8Rh6xPXwNwzA6iLCh\nnpbbxzAMI4eY+BuGYeQQE3/DMIwcYuJvGIaRQ0z8DcMwcoiJv2EYmcM21Ekfy+dvGEamaPeUIe1C\nLix/syIMo31IY7tGYyYdb/mbFWEY7UW7pwxpFzpe/Ns98Zhh5I1OSBnSDnS8+JsVYRjth+VbSp+O\nF3+zIgzDMGbS8eIPZkUYhmH4yUW0j2EYhjEdE3/DMIwckgvxtzh/wzCM6XS8z9/i/A3DMGbS8Za/\nrRY0DMOYSceLfyXOv0uwOH/DMIwyHe/2sTh/wzCMmXS8+IPF+RuGYfhJ5PYRkeNE5EERebb8f6DC\nikiviDwgIk+LyFMisjTJfQ3DMIxkJPX53wD8SFVPBX5UPg7iu8BXVfV04Bzg5YT3NQyjA7Gw7OaR\n1O2zGlhV/vs7wCPAn3lPEJEzgG5VfRBAVX+R8J6GYXQgFpbdXJJa/ieq6osA5f9PCDjnNOA1Edki\nIo+JyFdFpCvoYiKyVkR2iMiOgwcPJiyaYRjthIVlN5eGlr+I/BBYEPDWFyPc49eAs4B9wGbgWuDv\n/Ceq6kZgI0B/f7+GvL5hGB2ApV9vLg3FX1UvrPWeiLwkIgtV9UURWUiwL38EeExVh8qf+T6wkgDx\nNwwjv1hYdnNJ6vPfClwDbCj/f3fAOduBHhE5XlUPAh8GdiS8r2EYHYiFZTePpD7/DcBFIvIscFH5\nGBHpF5GbAVR1CvgvwI9E5AlAgG8lvK9hGIaRgESWv6qOAr8e8PoO4DrP8YPAryS5l2EYhuGOjs/t\nYxiGYczExN8wDCOHmPgbhmHkEBN/wzCMHCKq2VxLJSIHgWHHl50PvOL4mi6x8iXDypcMK18yslK+\nJap6fKOTMiv+aSAiO1S1v9XlqIWVLxlWvmRY+ZKR9fL5MbePYRhGDjHxNwzDyCF5E/+NrS5AA6x8\nybDyJcPKl4ysl28aufL5G4ZhGCXyZvkbhmEYdJD4i0hXebOYewLe+0J57+B/FZEficgSz3tTIvJ4\n+d/WFpXvWhE56CnHdZ73rinvkfysiFzTovL9jadsz4jIa573Uq8/EdkrIk+U7zEjI6yU+B8isqf8\nG5/teS/1+gtRvqvL5fpXEfmJiPz7sJ9tUvlWicjrnt9xnee9i0Vkd7lua23Tmnb5/tRTtifLbe64\nMJ91VL5jReQOEfm38j7k5/neb2n7i42qdsQ/4AvAJuCegPcuAI4p//0HwGbPe7/IQPmuBf424PXj\ngKHy/z3lv3uaXT7feX8EfLuZ9QfsBebXef+jwA8oZYxdCWxrZv2FKN8HKvcFPlIpX5jPNql8q2q0\nyy7gOWAZMBv4GXBGs8vnO/e3gIeaXH/fAa4r/z0bODZL7S/uv46w/EVkEfCbwM1B76vqw6p6uHw4\nACxqVtmgcfnq8B+BB1X1VVUdAx4ELm5x+T4B3OK6DAlZDXxXSwwAx5Y3F2pK/TVCVX9Svj+0oP0l\n4Bxgj6oOqeo4cCulum4lTW1/IjIX+BDlzadUdVxVX/Odlun2V4uOEH/gRuC/AsUQ536KUi9d4Wgp\n7Rs8ICK/nUrpwpXv8vKQ8Q4RWVx+7WRgv+eckfJrrSgfZXfZKcBDnpebUX8KPCAigyKyNuD9WvXU\nrPprVD4v/vYX5bNplu88EfmZiPxARFaUX8tU/YnIMZTE886on03AMuAg8L/LbtGbReTdvnNa3f5i\nkXQnr5YjIpcAL6vqoIisanDu7wL9wPmel3tV9QURWQY8JCJPqOpzTS7fPwK3qOo7InI9pWHmhykN\nI/04Dc+KUn/AGuAOLW3QUyHV+ivzwfI9TgAeFJF/U9V/9rxfq55Sr7+Q5QNARC6gJP7/IepnUy7f\nTkopAX4hIh8Fvg+cSsbqj5LL58eq+mqMz8alGzgb+CNV3SYiXwduAL7kOafV7S8WnWD5fxC4VET2\nUhqWflhE/o//JBG5kNKm85eq6juV11X1hfL/Q8AjlDaab2r5VHXUU6ZvAX3lv0eAxZ5TFwEvNLt8\nHtbgG3I3of6893gZuIuSO8JLrXpqRv2FKR8i8iuU3GqrtbQJUujPpl0+VX1DVX9R/vteYJaIzCdD\n9VemXvtLq/5GgBFV3VY+voNSZ+A/p2XtLzatnnRw+Y/aE1dnUZq4OtX3eg9wVPnv+cCzpDChFaJ8\nCz1//w4woEcmjH5eLmdP+e/jml2+8nvLKU2uSTPrD3g3MMfz90+Ai33n/CbTJ9webVb9hSxfL7AH\n+EDUzzapfAsqvysl8dxXrstuSpOUp3BkwndFs8tXfu89wKvAu5tZf+Vr/wuwvPz3l4GvZqX9JfnX\n9m6fWojIemCHqm4Fvgr8EnC7iADsU9VLgdOBb4pIkdIoaIOqPtWC8v2xiFwKTFJq4NcCqOqrIvKX\nwPbyx9br9CFvs8oHpYm2W7Xcqss0o/5OBO4q/27dwCZVva/sHkNVvwHcSyniYg9wGPi98nvNqL8w\n5VsHzAP+Z/m8SS0lAAv8bAvK9zHgD0RkEngLWFP+nSdF5HPA/ZQif76tqrtaUD4oGUUPqOqbjT7r\nuHxQinD7nojMptQZ/l6G2l9sbIWvYRhGDukEn79hGIYRERN/wzCMHGLibxiGkUNM/A3DMHKIib9h\nGEYOMfE3DMPIISb+hmEYOcTE3zAMI4f8fzjkcGYHJ89PAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ana3 = ols('mpg_ln ~ displacement_ln', data=df2).fit()\n", "plt.plot(df2.displacement_ln,ana2.resid,'.')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "寻找最优的模型" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'mpg~displacement': 0.64822940031930443, 'ln(mpg)~displacement': 0.72878838882353492, 'ln(mpg)~ln(displacement)': 0.73975545555151256}\n" ] } ], "source": [ "r_sq = {'mpg~displacement':ana1.rsquared, 'ln(mpg)~displacement':ana2.rsquared, 'ln(mpg)~ln(displacement)':ana3.rsquared}\n", "print(r_sq)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 强影响点分析" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": true }, "outputs": [], "source": [ "df2['resid']=ana3.resid\n", "df2['resid_t'] = (df2['resid'] - df2['resid'].mean()) / df2['resid'].std()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Find outlier:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "scrolled": true }, "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", "
mpgcylindersdisplacementhorsepowerweightaccelerationmodel_yearorigincar_namempg_lndisplacement_lnresidresid_t
2510.08360.0215.04615.014.0701ford f2502.3025855.886104-0.379447-2.187419
2610.08307.0200.04376.015.0701chevy c202.3025855.726848-0.466883-2.691467
2711.08318.0210.04382.013.5701dodge d2002.3978955.762051-0.352245-2.030607
289.08304.0193.04732.018.5701hi 1200d2.1972255.717028-0.577635-3.329924
7119.0370.097.02330.013.5723mazda rx2 coupe2.9444394.248495-0.636687-3.670342
\n", "
" ], "text/plain": [ " mpg cylinders displacement horsepower weight acceleration \\\n", "25 10.0 8 360.0 215.0 4615.0 14.0 \n", "26 10.0 8 307.0 200.0 4376.0 15.0 \n", "27 11.0 8 318.0 210.0 4382.0 13.5 \n", "28 9.0 8 304.0 193.0 4732.0 18.5 \n", "71 19.0 3 70.0 97.0 2330.0 13.5 \n", "\n", " model_year origin car_name mpg_ln displacement_ln resid \\\n", "25 70 1 ford f250 2.302585 5.886104 -0.379447 \n", "26 70 1 chevy c20 2.302585 5.726848 -0.466883 \n", "27 70 1 dodge d200 2.397895 5.762051 -0.352245 \n", "28 70 1 hi 1200d 2.197225 5.717028 -0.577635 \n", "71 72 3 mazda rx2 coupe 2.944439 4.248495 -0.636687 \n", "\n", " resid_t \n", "25 -2.187419 \n", "26 -2.691467 \n", "27 -2.030607 \n", "28 -3.329924 \n", "71 -3.670342 " ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df2[abs(df2['resid_t']) > 2].head(5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Drop outlier" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n/gGBpAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df2 = df2[abs(df2['resid_t']) <= 2].copy()\n", "ana4 = ols('mpg_ln ~ displacement_ln', df2).fit()\n", "\n", "plt.plot(df2.displacement_ln,ana4.resid,'.')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.81628320417918687" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ana4.rsquared" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "statemodels包提供了更多强影响点判断指标" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "scrolled": true }, "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", "
dfb_Interceptdfb_displacement_lncooks_ddffitsdffits_internalhat_diagstandard_residstudent_resid
0-0.0359260.0397861.417727e-030.0532140.0532490.0057840.6981070.697647
1-0.0038950.0042361.377200e-050.0052420.0052480.0073550.0609720.060894
2-0.0443940.0488882.037847e-030.0638130.0638410.0061760.8098670.809509
30.000662-0.0007354.911478e-07-0.000990-0.0009910.005679-0.013114-0.013097
4-0.0157610.0175042.816267e-040.0237060.0237330.0056100.3159850.315620
\n", "
" ], "text/plain": [ " dfb_Intercept dfb_displacement_ln cooks_d dffits \\\n", "0 -0.035926 0.039786 1.417727e-03 0.053214 \n", "1 -0.003895 0.004236 1.377200e-05 0.005242 \n", "2 -0.044394 0.048888 2.037847e-03 0.063813 \n", "3 0.000662 -0.000735 4.911478e-07 -0.000990 \n", "4 -0.015761 0.017504 2.816267e-04 0.023706 \n", "\n", " dffits_internal hat_diag standard_resid student_resid \n", "0 0.053249 0.005784 0.698107 0.697647 \n", "1 0.005248 0.007355 0.060972 0.060894 \n", "2 0.063841 0.006176 0.809867 0.809509 \n", "3 -0.000991 0.005679 -0.013114 -0.013097 \n", "4 0.023733 0.005610 0.315985 0.315620 " ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from statsmodels.stats.outliers_influence import OLSInfluence\n", "\n", "OLSInfluence(ana3).summary_frame().head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 增加变量\n", "用以上的方法,增加变量,做多元回归" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "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", "
OLS Regression Results
Dep. Variable: mpg_ln R-squared: 0.907
Model: OLS Adj. R-squared: 0.905
Method: Least Squares F-statistic: 711.4
Date: Thu, 30 Nov 2017 Prob (F-statistic): 4.94e-186
Time: 11:29:36 Log-Likelihood: 329.83
No. Observations: 372 AIC: -647.7
Df Residuals: 366 BIC: -624.1
Df Model: 5
Covariance Type: nonrobust
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
coef std err t P>|t| [0.025 0.975]
Intercept 6.5568 0.333 19.709 0.000 5.903 7.211
displacement_ln -0.2227 0.036 -6.228 0.000 -0.293 -0.152
horsepower_ln -0.1632 0.054 -3.028 0.003 -0.269 -0.057
weight_ln -0.4227 0.076 -5.578 0.000 -0.572 -0.274
acceleration -0.0101 0.004 -2.769 0.006 -0.017 -0.003
model_year 0.0257 0.002 16.169 0.000 0.023 0.029
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Omnibus: 4.918 Durbin-Watson: 1.296
Prob(Omnibus): 0.086 Jarque-Bera (JB): 6.359
Skew: -0.064 Prob(JB): 0.0416
Kurtosis: 3.628 Cond. No. 5.10e+03
" ], "text/plain": [ "\n", "\"\"\"\n", " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: mpg_ln R-squared: 0.907\n", "Model: OLS Adj. R-squared: 0.905\n", "Method: Least Squares F-statistic: 711.4\n", "Date: Thu, 30 Nov 2017 Prob (F-statistic): 4.94e-186\n", "Time: 11:29:36 Log-Likelihood: 329.83\n", "No. Observations: 372 AIC: -647.7\n", "Df Residuals: 366 BIC: -624.1\n", "Df Model: 5 \n", "Covariance Type: nonrobust \n", "===================================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "-----------------------------------------------------------------------------------\n", "Intercept 6.5568 0.333 19.709 0.000 5.903 7.211\n", "displacement_ln -0.2227 0.036 -6.228 0.000 -0.293 -0.152\n", "horsepower_ln -0.1632 0.054 -3.028 0.003 -0.269 -0.057\n", "weight_ln -0.4227 0.076 -5.578 0.000 -0.572 -0.274\n", "acceleration -0.0101 0.004 -2.769 0.006 -0.017 -0.003\n", "model_year 0.0257 0.002 16.169 0.000 0.023 0.029\n", "==============================================================================\n", "Omnibus: 4.918 Durbin-Watson: 1.296\n", "Prob(Omnibus): 0.086 Jarque-Bera (JB): 6.359\n", "Skew: -0.064 Prob(JB): 0.0416\n", "Kurtosis: 3.628 Cond. No. 5.10e+03\n", "==============================================================================\n", "\n", "Warnings:\n", "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n", "[2] The condition number is large, 5.1e+03. This might indicate that there are\n", "strong multicollinearity or other numerical problems.\n", "\"\"\"" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df2['horsepower_ln']=np.log(df2['horsepower'])\n", "df2['weight_ln']=np.log(df2['weight'])\n", "\n", "ana5=ols('mpg_ln ~ displacement_ln + horsepower_ln + weight_ln + acceleration + model_year ',data=df2).fit()\n", "ana5.summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 多重共线性分析\n", "- Step regression is not always work." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Intercept 0.332680\n", "displacement_ln 0.035756\n", "horsepower_ln 0.053894\n", "weight_ln 0.075776\n", "acceleration 0.003661\n", "model_year 0.001590\n", "dtype: float64" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ana5.bse # The standard errors of the parameter estimates" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function \"statsmodels.stats.outliers_influence.variance_inflation_factor\" uses \"OLS\" to fit data, and it will generates a wrong rsquared. So define it ourselves!" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def vif(df, col_i):\n", " cols = list(df.columns)\n", " cols.remove(col_i)\n", " cols_noti = cols\n", " formula = col_i + '~' + '+'.join(cols_noti)\n", " r2 = ols(formula, df).fit().rsquared\n", " return 1. / (1. - r2)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "displacement_ln \t 13.0464844911\n", "horsepower_ln \t 12.2068336497\n", "weight_ln \t 16.5791513194\n", "acceleration \t 3.64805781168\n", "model_year \t 1.22045476119\n" ] } ], "source": [ "dfog = df2[['displacement_ln', 'horsepower_ln', 'weight_ln','acceleration','model_year']]\n", "\n", "for i in dfog.columns:\n", " print(i, '\\t', vif(df=dfog, col_i=i))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "displacement_ln与weight_ln具有共线性,可剔除 \n", "这里用比率去制造一个新feature " ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "d_w_ratio \t 2.70459631012\n", "horsepower_ln \t 3.81117285355\n", "acceleration \t 2.08460887817\n", "model_year \t 1.16893644239\n" ] } ], "source": [ "df2['d_w_ratio'] = df2['weight']/df2['displacement']\n", "exog1 = df2[['d_w_ratio','horsepower_ln','acceleration','model_year']]\n", "\n", "for i in exog1.columns:\n", " print(i, '\\t', vif(df=exog1, col_i=i))" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "scrolled": true }, "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", "
OLS Regression Results
Dep. Variable: mpg_ln R-squared: 0.874
Model: OLS Adj. R-squared: 0.873
Method: Least Squares F-statistic: 637.3
Date: Thu, 30 Nov 2017 Prob (F-statistic): 1.08e-163
Time: 11:29:36 Log-Likelihood: 274.15
No. Observations: 372 AIC: -538.3
Df Residuals: 367 BIC: -518.7
Df Model: 4
Covariance Type: nonrobust
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
coef std err t P>|t| [0.025 0.975]
Intercept 4.7100 0.263 17.901 0.000 4.193 5.227
d_w_ratio 0.0241 0.002 11.127 0.000 0.020 0.028
horsepower_ln -0.6941 0.035 -19.873 0.000 -0.763 -0.625
acceleration -0.0384 0.003 -11.961 0.000 -0.045 -0.032
model_year 0.0229 0.002 12.714 0.000 0.019 0.026
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Omnibus: 0.968 Durbin-Watson: 1.387
Prob(Omnibus): 0.616 Jarque-Bera (JB): 0.737
Skew: -0.033 Prob(JB): 0.692
Kurtosis: 3.208 Cond. No. 3.49e+03
" ], "text/plain": [ "\n", "\"\"\"\n", " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: mpg_ln R-squared: 0.874\n", "Model: OLS Adj. R-squared: 0.873\n", "Method: Least Squares F-statistic: 637.3\n", "Date: Thu, 30 Nov 2017 Prob (F-statistic): 1.08e-163\n", "Time: 11:29:36 Log-Likelihood: 274.15\n", "No. Observations: 372 AIC: -538.3\n", "Df Residuals: 367 BIC: -518.7\n", "Df Model: 4 \n", "Covariance Type: nonrobust \n", "=================================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "---------------------------------------------------------------------------------\n", "Intercept 4.7100 0.263 17.901 0.000 4.193 5.227\n", "d_w_ratio 0.0241 0.002 11.127 0.000 0.020 0.028\n", "horsepower_ln -0.6941 0.035 -19.873 0.000 -0.763 -0.625\n", "acceleration -0.0384 0.003 -11.961 0.000 -0.045 -0.032\n", "model_year 0.0229 0.002 12.714 0.000 0.019 0.026\n", "==============================================================================\n", "Omnibus: 0.968 Durbin-Watson: 1.387\n", "Prob(Omnibus): 0.616 Jarque-Bera (JB): 0.737\n", "Skew: -0.033 Prob(JB): 0.692\n", "Kurtosis: 3.208 Cond. No. 3.49e+03\n", "==============================================================================\n", "\n", "Warnings:\n", "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n", "[2] The condition number is large, 3.49e+03. This might indicate that there are\n", "strong multicollinearity or other numerical problems.\n", "\"\"\"" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ana6 = ols('mpg_ln ~ d_w_ratio + horsepower_ln + acceleration + model_year',data=df2).fit()\n", "ana6.summary()" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "aic is -276.66486586708345,continuing!\n", "aic is -386.1259779372002,continuing!\n", "aic is -399.855984486945,continuing!\n", "aic is -406.22237435267436,continuing!\n", "final formula is mpg_ln ~ cylinders + model_year + d_w_ratio + acceleration \n", "0.820508073877\n" ] } ], "source": [ "var_select = df2[['mpg_ln','d_w_ratio','cylinders','acceleration','model_year']]\n", "ana7 = forward_select(data=var_select, response='mpg_ln')\n", "print(ana7.rsquared)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "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", "
OLS Regression Results
Dep. Variable: mpg_ln R-squared: 0.905
Model: OLS Adj. R-squared: 0.904
Method: Least Squares F-statistic: 698.1
Date: Thu, 30 Nov 2017 Prob (F-statistic): 1.12e-184
Time: 11:29:36 Log-Likelihood: 326.65
No. Observations: 372 AIC: -641.3
Df Residuals: 366 BIC: -617.8
Df Model: 5
Covariance Type: nonrobust
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
coef std err t P>|t| [0.025 0.975]
Intercept 6.9600 0.297 23.443 0.000 6.376 7.544
C(origin)[T.2] -0.0021 0.019 -0.109 0.913 -0.040 0.036
C(origin)[T.3] 0.0137 0.018 0.763 0.446 -0.022 0.049
weight_ln -0.7709 0.032 -24.456 0.000 -0.833 -0.709
model_year 0.0269 0.002 16.845 0.000 0.024 0.030
d_w_ratio 0.0129 0.002 5.567 0.000 0.008 0.017
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Omnibus: 6.608 Durbin-Watson: 1.300
Prob(Omnibus): 0.037 Jarque-Bera (JB): 9.120
Skew: -0.111 Prob(JB): 0.0105
Kurtosis: 3.734 Cond. No. 4.45e+03
" ], "text/plain": [ "\n", "\"\"\"\n", " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: mpg_ln R-squared: 0.905\n", "Model: OLS Adj. R-squared: 0.904\n", "Method: Least Squares F-statistic: 698.1\n", "Date: Thu, 30 Nov 2017 Prob (F-statistic): 1.12e-184\n", "Time: 11:29:36 Log-Likelihood: 326.65\n", "No. Observations: 372 AIC: -641.3\n", "Df Residuals: 366 BIC: -617.8\n", "Df Model: 5 \n", "Covariance Type: nonrobust \n", "==================================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "----------------------------------------------------------------------------------\n", "Intercept 6.9600 0.297 23.443 0.000 6.376 7.544\n", "C(origin)[T.2] -0.0021 0.019 -0.109 0.913 -0.040 0.036\n", "C(origin)[T.3] 0.0137 0.018 0.763 0.446 -0.022 0.049\n", "weight_ln -0.7709 0.032 -24.456 0.000 -0.833 -0.709\n", "model_year 0.0269 0.002 16.845 0.000 0.024 0.030\n", "d_w_ratio 0.0129 0.002 5.567 0.000 0.008 0.017\n", "==============================================================================\n", "Omnibus: 6.608 Durbin-Watson: 1.300\n", "Prob(Omnibus): 0.037 Jarque-Bera (JB): 9.120\n", "Skew: -0.111 Prob(JB): 0.0105\n", "Kurtosis: 3.734 Cond. No. 4.45e+03\n", "==============================================================================\n", "\n", "Warnings:\n", "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n", "[2] The condition number is large, 4.45e+03. This might indicate that there are\n", "strong multicollinearity or other numerical problems.\n", "\"\"\"" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "formula8 = '''\n", "mpg_ln ~ weight_ln + model_year + d_w_ratio + \n", "C(origin) \n", "'''\n", "ana8 = ols(formula8, df2).fit()\n", "ana8.summary()" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\guofei\\Anaconda3\\lib\\site-packages\\statsmodels\\base\\model.py:1036: RuntimeWarning: invalid value encountered in true_divide\n", " return self.params / self.bse\n", "C:\\Users\\guofei\\Anaconda3\\lib\\site-packages\\scipy\\stats\\_distn_infrastructure.py:879: RuntimeWarning: invalid value encountered in greater\n", " return (self.a < x) & (x < self.b)\n", "C:\\Users\\guofei\\Anaconda3\\lib\\site-packages\\scipy\\stats\\_distn_infrastructure.py:879: RuntimeWarning: invalid value encountered in less\n", " return (self.a < x) & (x < self.b)\n", "C:\\Users\\guofei\\Anaconda3\\lib\\site-packages\\scipy\\stats\\_distn_infrastructure.py:1818: RuntimeWarning: invalid value encountered in less_equal\n", " cond2 = cond0 & (x <= self.a)\n" ] }, { "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", "
OLS Regression Results
Dep. Variable: mpg_ln R-squared: 0.908
Model: OLS Adj. R-squared: 0.906
Method: Least Squares F-statistic: 357.9
Date: Thu, 30 Nov 2017 Prob (F-statistic): 1.41e-180
Time: 11:29:36 Log-Likelihood: 333.18
No. Observations: 372 AIC: -644.4
Df Residuals: 361 BIC: -601.2
Df Model: 10
Covariance Type: nonrobust
\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", "
coef std err t P>|t| [0.025 0.975]
Intercept 6.6823 0.344 19.407 0.000 6.005 7.359
C(cylinders)[T.5] 0.0505 0.030 1.674 0.095 -0.009 0.110
C(cylinders)[T.6] -0.0234 0.028 -0.843 0.400 -0.078 0.031
C(cylinders)[T.8] -0.0398 0.038 -1.046 0.296 -0.115 0.035
C(origin)[T.2]:C(cylinders)[4] 0.0061 0.020 0.300 0.765 -0.034 0.046
C(origin)[T.3]:C(cylinders)[4] 0.0271 0.019 1.417 0.157 -0.010 0.065
C(origin)[T.2]:C(cylinders)[5] 0.0505 0.030 1.674 0.095 -0.009 0.110
C(origin)[T.3]:C(cylinders)[5] -1.623e-15 8.57e-17 -18.939 0.000 -1.79e-15 -1.45e-15
C(origin)[T.2]:C(cylinders)[6] -0.1038 0.056 -1.863 0.063 -0.213 0.006
C(origin)[T.3]:C(cylinders)[6] -0.0463 0.049 -0.953 0.341 -0.142 0.049
C(origin)[T.2]:C(cylinders)[8] -5.09e-18 2.64e-19 -19.314 0.000 -5.61e-18 -4.57e-18
C(origin)[T.3]:C(cylinders)[8] 0 0 nan nan 0 0
weight_ln -0.7298 0.042 -17.214 0.000 -0.813 -0.646
model_year 0.0269 0.002 16.663 0.000 0.024 0.030
d_w_ratio 0.0108 0.003 3.476 0.001 0.005 0.017
\n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "\n", " \n", "\n", "
Omnibus: 8.205 Durbin-Watson: 1.339
Prob(Omnibus): 0.017 Jarque-Bera (JB): 12.673
Skew: -0.107 Prob(JB): 0.00177
Kurtosis: 3.878 Cond. No. 4.35e+34
" ], "text/plain": [ "\n", "\"\"\"\n", " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: mpg_ln R-squared: 0.908\n", "Model: OLS Adj. R-squared: 0.906\n", "Method: Least Squares F-statistic: 357.9\n", "Date: Thu, 30 Nov 2017 Prob (F-statistic): 1.41e-180\n", "Time: 11:29:36 Log-Likelihood: 333.18\n", "No. Observations: 372 AIC: -644.4\n", "Df Residuals: 361 BIC: -601.2\n", "Df Model: 10 \n", "Covariance Type: nonrobust \n", "==================================================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "--------------------------------------------------------------------------------------------------\n", "Intercept 6.6823 0.344 19.407 0.000 6.005 7.359\n", "C(cylinders)[T.5] 0.0505 0.030 1.674 0.095 -0.009 0.110\n", "C(cylinders)[T.6] -0.0234 0.028 -0.843 0.400 -0.078 0.031\n", "C(cylinders)[T.8] -0.0398 0.038 -1.046 0.296 -0.115 0.035\n", "C(origin)[T.2]:C(cylinders)[4] 0.0061 0.020 0.300 0.765 -0.034 0.046\n", "C(origin)[T.3]:C(cylinders)[4] 0.0271 0.019 1.417 0.157 -0.010 0.065\n", "C(origin)[T.2]:C(cylinders)[5] 0.0505 0.030 1.674 0.095 -0.009 0.110\n", "C(origin)[T.3]:C(cylinders)[5] -1.623e-15 8.57e-17 -18.939 0.000 -1.79e-15 -1.45e-15\n", "C(origin)[T.2]:C(cylinders)[6] -0.1038 0.056 -1.863 0.063 -0.213 0.006\n", "C(origin)[T.3]:C(cylinders)[6] -0.0463 0.049 -0.953 0.341 -0.142 0.049\n", "C(origin)[T.2]:C(cylinders)[8] -5.09e-18 2.64e-19 -19.314 0.000 -5.61e-18 -4.57e-18\n", "C(origin)[T.3]:C(cylinders)[8] 0 0 nan nan 0 0\n", "weight_ln -0.7298 0.042 -17.214 0.000 -0.813 -0.646\n", "model_year 0.0269 0.002 16.663 0.000 0.024 0.030\n", "d_w_ratio 0.0108 0.003 3.476 0.001 0.005 0.017\n", "==============================================================================\n", "Omnibus: 8.205 Durbin-Watson: 1.339\n", "Prob(Omnibus): 0.017 Jarque-Bera (JB): 12.673\n", "Skew: -0.107 Prob(JB): 0.00177\n", "Kurtosis: 3.878 Cond. No. 4.35e+34\n", "==============================================================================\n", "\n", "Warnings:\n", "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n", "[2] The smallest eigenvalue is 1.21e-63. This might indicate that there are\n", "strong multicollinearity problems or that the design matrix is singular.\n", "\"\"\"" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "formula9 = '''\n", "mpg_ln ~ weight_ln + model_year + d_w_ratio + \n", "C(origin):C(cylinders) \n", "'''\n", "ana9 = ols(formula9, df2).fit()\n", "ana9.summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 正则算法\n", "ols.fit_regularized()\n", "- L1_wt=0: 使用岭回归\n", "- L1_wt=1使用lasso\n", "\n", "\n", "### 岭回归" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": true }, "outputs": [], "source": [ "lmr = ols('mpg ~ displacement+ horsepower+ weight+model_year ',\n", " data=df).fit_regularized(alpha=1, L1_wt=0)\n", "lmr.summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### LASSO" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": true }, "outputs": [], "source": [ "lmrl = ols('mpg ~ displacement+ horsepower+ weight+model_year ',\n", " data=df).fit_regularized(alpha=1, L1_wt=1)\n", "lmrl.summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 使用scikit-learn进行正则化参数调优" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "RidgeCV(alphas=array([ 0.1 , 0.60201, ..., 99.49799, 100. ]),\n", " cv=None, fit_intercept=True, gcv_mode=None, normalize=False,\n", " scoring=None, store_cv_values=True)" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.linear_model import RidgeCV\n", "\n", "X = df2[['displacement', 'horsepower', 'weight', 'model_year']]\n", "y = df2[['mpg_ln']]\n", "# alphas = np.logspace(-3, 1, 20, base=10)\n", "alphas=np.linspace(0.1,100,200)\n", "rcv = RidgeCV(alphas=alphas, store_cv_values=True) # Search the min MSE by CV\n", "rcv.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The best alpha is 27.208542713567844\n", "The r-square is 0.8866376616239121\n" ] } ], "source": [ "print('The best alpha is {}'.format(rcv.alpha_))\n", "print('The r-square is {}'.format(rcv.score(X,y))) # Default score is rsquared" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 2.74232119],\n", " [ 2.67233213],\n", " [ 2.75356433],\n", " [ 2.76461684],\n", " [ 2.76062173]])" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rcv.predict(X)[:5]" ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cv_values = rcv.cv_values_[:, 0, :]\n", "cv_mean = cv_values.mean(axis=0)\n", "cv_std = cv_values.std(axis=0)\n", "ub = cv_mean + 0.0001*cv_std\n", "lb = cv_mean - 0.0001*cv_std\n", "\n", "# plt.semilogx(alphas, cv_mean, label='mean_score')\n", "plt.plot(alphas, cv_mean, label='mean_score')\n", "plt.fill_between(alphas, lb, ub, alpha=0.2)\n", "plt.xlabel(\"$\\\\alpha$\")\n", "plt.ylabel(\"mean squared errors\")\n", "plt.legend(loc=\"best\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[-0.00073724, 0.00017618, -0.00023434, 0.02564373]])" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rcv.coef_" ] }, { "cell_type": "code", "execution_count": 96, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.linear_model import Ridge\n", "\n", "ridge = Ridge()\n", "\n", "coefs = []\n", "for alpha in alphas:\n", " ridge.set_params(alpha=alpha)\n", " ridge.fit(X, y)\n", " coefs.append(ridge.coef_)" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[array([[-0.00073604, 0.00017814, -0.00023448, 0.02570758]]),\n", " array([[-0.0007361 , 0.00017804, -0.00023447, 0.02570434]]),\n", " array([[-0.00073616, 0.00017794, -0.00023446, 0.02570109]]),\n", " array([[-0.00073622, 0.00017784, -0.00023446, 0.02569785]]),\n", " array([[-0.00073628, 0.00017775, -0.00023445, 0.0256946 ]]),\n", " array([[-0.00073634, 0.00017765, -0.00023444, 0.02569136]]),\n", " array([[-0.0007364 , 0.00017755, -0.00023443, 0.02568812]]),\n", " array([[-0.00073647, 0.00017745, -0.00023443, 0.02568488]]),\n", " array([[-0.00073653, 0.00017735, -0.00023442, 0.02568164]]),\n", " array([[-0.00073659, 0.00017725, -0.00023441, 0.0256784 ]]),\n", " array([[-0.00073665, 0.00017715, -0.00023441, 0.02567517]]),\n", " array([[-0.00073671, 0.00017705, -0.0002344 , 0.02567193]]),\n", " array([[-0.00073677, 0.00017695, -0.00023439, 0.02566869]]),\n", " array([[-0.00073683, 0.00017685, -0.00023439, 0.02566546]]),\n", " array([[-0.00073689, 0.00017675, -0.00023438, 0.02566222]]),\n", " array([[-0.00073695, 0.00017665, -0.00023437, 0.02565899]]),\n", " array([[-0.00073701, 0.00017655, -0.00023437, 0.02565576]]),\n", " array([[-0.00073707, 0.00017645, -0.00023436, 0.02565252]]),\n", " array([[-0.00073713, 0.00017635, -0.00023435, 0.02564929]]),\n", " array([[-0.00073719, 0.00017625, -0.00023435, 0.02564606]]),\n", " array([[-0.00073725, 0.00017615, -0.00023434, 0.02564283]]),\n", " array([[-0.00073731, 0.00017605, -0.00023433, 0.0256396 ]]),\n", " array([[-0.00073737, 0.00017596, -0.00023433, 0.02563637]]),\n", " array([[-0.00073743, 0.00017586, -0.00023432, 0.02563315]]),\n", " array([[-0.00073749, 0.00017576, -0.00023431, 0.02562992]]),\n", " array([[-0.00073755, 0.00017566, -0.00023431, 0.0256267 ]]),\n", " array([[-0.00073761, 0.00017556, -0.0002343 , 0.02562347]]),\n", " array([[-0.00073768, 0.00017546, -0.00023429, 0.02562025]]),\n", " array([[-0.00073774, 0.00017536, -0.00023429, 0.02561702]]),\n", " array([[-0.0007378 , 0.00017526, -0.00023428, 0.0256138 ]]),\n", " array([[-0.00073786, 0.00017516, -0.00023427, 0.02561058]]),\n", " array([[-0.00073792, 0.00017506, -0.00023427, 0.02560736]]),\n", " array([[-0.00073798, 0.00017496, -0.00023426, 0.02560414]]),\n", " array([[-0.00073804, 0.00017487, -0.00023425, 0.02560092]]),\n", " array([[-0.0007381 , 0.00017477, -0.00023425, 0.0255977 ]]),\n", " array([[-0.00073816, 0.00017467, -0.00023424, 0.02559448]]),\n", " array([[-0.00073822, 0.00017457, -0.00023423, 0.02559127]]),\n", " array([[-0.00073828, 0.00017447, -0.00023423, 0.02558805]]),\n", " array([[-0.00073834, 0.00017437, -0.00023422, 0.02558484]]),\n", " array([[-0.0007384 , 0.00017427, -0.00023421, 0.02558162]]),\n", " array([[-0.00073846, 0.00017417, -0.00023421, 0.02557841]]),\n", " array([[-0.00073852, 0.00017407, -0.0002342 , 0.0255752 ]]),\n", " array([[-0.00073858, 0.00017398, -0.00023419, 0.02557198]]),\n", " array([[-0.00073864, 0.00017388, -0.00023418, 0.02556877]]),\n", " array([[-0.0007387 , 0.00017378, -0.00023418, 0.02556556]]),\n", " array([[-0.00073876, 0.00017368, -0.00023417, 0.02556235]]),\n", " array([[-0.00073882, 0.00017358, -0.00023416, 0.02555914]]),\n", " array([[-0.00073888, 0.00017348, -0.00023416, 0.02555594]]),\n", " array([[-0.00073894, 0.00017338, -0.00023415, 0.02555273]]),\n", " array([[-0.000739 , 0.00017329, -0.00023414, 0.02554952]]),\n", " array([[-0.00073906, 0.00017319, -0.00023414, 0.02554632]]),\n", " array([[-0.00073912, 0.00017309, -0.00023413, 0.02554311]]),\n", " array([[-0.00073918, 0.00017299, -0.00023412, 0.02553991]]),\n", " array([[-0.00073924, 0.00017289, -0.00023412, 0.02553671]]),\n", " array([[-0.0007393 , 0.00017279, -0.00023411, 0.0255335 ]]),\n", " array([[-0.00073936, 0.0001727 , -0.0002341 , 0.0255303 ]]),\n", " array([[-0.00073942, 0.0001726 , -0.0002341 , 0.0255271 ]]),\n", " array([[-0.00073948, 0.0001725 , -0.00023409, 0.0255239 ]]),\n", " array([[-0.00073954, 0.0001724 , -0.00023408, 0.0255207 ]]),\n", " array([[-0.0007396 , 0.0001723 , -0.00023408, 0.02551751]]),\n", " array([[-0.00073966, 0.0001722 , -0.00023407, 0.02551431]]),\n", " array([[-0.00073972, 0.00017211, -0.00023406, 0.02551111]]),\n", " array([[-0.00073978, 0.00017201, -0.00023406, 0.02550792]]),\n", " array([[-0.00073984, 0.00017191, -0.00023405, 0.02550472]]),\n", " array([[-0.0007399 , 0.00017181, -0.00023404, 0.02550153]]),\n", " array([[-0.00073996, 0.00017171, -0.00023404, 0.02549833]]),\n", " array([[-0.00074002, 0.00017161, -0.00023403, 0.02549514]]),\n", " array([[-0.00074008, 0.00017152, -0.00023402, 0.02549195]]),\n", " array([[-0.00074014, 0.00017142, -0.00023402, 0.02548876]]),\n", " array([[-0.0007402 , 0.00017132, -0.00023401, 0.02548557]]),\n", " array([[-0.00074026, 0.00017122, -0.000234 , 0.02548238]]),\n", " array([[-0.00074031, 0.00017112, -0.000234 , 0.02547919]]),\n", " array([[-0.00074037, 0.00017103, -0.00023399, 0.025476 ]]),\n", " array([[-0.00074043, 0.00017093, -0.00023398, 0.02547282]]),\n", " array([[-0.00074049, 0.00017083, -0.00023398, 0.02546963]]),\n", " array([[-0.00074055, 0.00017073, -0.00023397, 0.02546644]]),\n", " array([[-0.00074061, 0.00017063, -0.00023396, 0.02546326]]),\n", " array([[-0.00074067, 0.00017054, -0.00023396, 0.02546008]]),\n", " array([[-0.00074073, 0.00017044, -0.00023395, 0.02545689]]),\n", " array([[-0.00074079, 0.00017034, -0.00023394, 0.02545371]]),\n", " array([[-0.00074085, 0.00017024, -0.00023394, 0.02545053]]),\n", " array([[-0.00074091, 0.00017015, -0.00023393, 0.02544735]]),\n", " array([[-0.00074097, 0.00017005, -0.00023392, 0.02544417]]),\n", " array([[-0.00074103, 0.00016995, -0.00023392, 0.02544099]]),\n", " array([[-0.00074109, 0.00016985, -0.00023391, 0.02543781]]),\n", " array([[-0.00074115, 0.00016976, -0.0002339 , 0.02543464]]),\n", " array([[-0.00074121, 0.00016966, -0.0002339 , 0.02543146]]),\n", " array([[-0.00074127, 0.00016956, -0.00023389, 0.02542828]]),\n", " array([[-0.00074133, 0.00016946, -0.00023388, 0.02542511]]),\n", " array([[-0.00074139, 0.00016936, -0.00023388, 0.02542193]]),\n", " array([[-0.00074145, 0.00016927, -0.00023387, 0.02541876]]),\n", " array([[-0.0007415 , 0.00016917, -0.00023386, 0.02541559]]),\n", " array([[-0.00074156, 0.00016907, -0.00023386, 0.02541242]]),\n", " array([[-0.00074162, 0.00016897, -0.00023385, 0.02540924]]),\n", " array([[-0.00074168, 0.00016888, -0.00023384, 0.02540607]]),\n", " array([[-0.00074174, 0.00016878, -0.00023384, 0.02540291]]),\n", " array([[-0.0007418 , 0.00016868, -0.00023383, 0.02539974]]),\n", " array([[-0.00074186, 0.00016859, -0.00023382, 0.02539657]]),\n", " array([[-0.00074192, 0.00016849, -0.00023382, 0.0253934 ]]),\n", " array([[-0.00074198, 0.00016839, -0.00023381, 0.02539024]]),\n", " array([[-0.00074204, 0.00016829, -0.0002338 , 0.02538707]]),\n", " array([[-0.0007421 , 0.0001682 , -0.0002338 , 0.02538391]]),\n", " array([[-0.00074216, 0.0001681 , -0.00023379, 0.02538074]]),\n", " array([[-0.00074222, 0.000168 , -0.00023378, 0.02537758]]),\n", " array([[-0.00074228, 0.0001679 , -0.00023378, 0.02537442]]),\n", " array([[-0.00074233, 0.00016781, -0.00023377, 0.02537125]]),\n", " array([[-0.00074239, 0.00016771, -0.00023376, 0.02536809]]),\n", " array([[-0.00074245, 0.00016761, -0.00023376, 0.02536493]]),\n", " array([[-0.00074251, 0.00016752, -0.00023375, 0.02536177]]),\n", " array([[-0.00074257, 0.00016742, -0.00023374, 0.02535862]]),\n", " array([[-0.00074263, 0.00016732, -0.00023374, 0.02535546]]),\n", " array([[-0.00074269, 0.00016722, -0.00023373, 0.0253523 ]]),\n", " array([[-0.00074275, 0.00016713, -0.00023373, 0.02534915]]),\n", " array([[-0.00074281, 0.00016703, -0.00023372, 0.02534599]]),\n", " array([[-0.00074287, 0.00016693, -0.00023371, 0.02534284]]),\n", " array([[-0.00074293, 0.00016684, -0.00023371, 0.02533968]]),\n", " array([[-0.00074298, 0.00016674, -0.0002337 , 0.02533653]]),\n", " array([[-0.00074304, 0.00016664, -0.00023369, 0.02533338]]),\n", " array([[-0.0007431 , 0.00016655, -0.00023369, 0.02533023]]),\n", " array([[-0.00074316, 0.00016645, -0.00023368, 0.02532708]]),\n", " array([[-0.00074322, 0.00016635, -0.00023367, 0.02532393]]),\n", " array([[-0.00074328, 0.00016626, -0.00023367, 0.02532078]]),\n", " array([[-0.00074334, 0.00016616, -0.00023366, 0.02531763]]),\n", " array([[-0.0007434 , 0.00016606, -0.00023365, 0.02531448]]),\n", " array([[-0.00074346, 0.00016597, -0.00023365, 0.02531133]]),\n", " array([[-0.00074351, 0.00016587, -0.00023364, 0.02530819]]),\n", " array([[-0.00074357, 0.00016577, -0.00023363, 0.02530504]]),\n", " array([[-0.00074363, 0.00016568, -0.00023363, 0.0253019 ]]),\n", " array([[-0.00074369, 0.00016558, -0.00023362, 0.02529876]]),\n", " array([[-0.00074375, 0.00016548, -0.00023361, 0.02529561]]),\n", " array([[-0.00074381, 0.00016539, -0.00023361, 0.02529247]]),\n", " array([[-0.00074387, 0.00016529, -0.0002336 , 0.02528933]]),\n", " array([[-0.00074393, 0.00016519, -0.00023359, 0.02528619]]),\n", " array([[-0.00074398, 0.0001651 , -0.00023359, 0.02528305]]),\n", " array([[-0.00074404, 0.000165 , -0.00023358, 0.02527991]]),\n", " array([[-0.0007441 , 0.0001649 , -0.00023357, 0.02527677]]),\n", " array([[-0.00074416, 0.00016481, -0.00023357, 0.02527364]]),\n", " array([[-0.00074422, 0.00016471, -0.00023356, 0.0252705 ]]),\n", " array([[-0.00074428, 0.00016462, -0.00023355, 0.02526736]]),\n", " array([[-0.00074434, 0.00016452, -0.00023355, 0.02526423]]),\n", " array([[-0.0007444 , 0.00016442, -0.00023354, 0.0252611 ]]),\n", " array([[-0.00074445, 0.00016433, -0.00023353, 0.02525796]]),\n", " array([[-0.00074451, 0.00016423, -0.00023353, 0.02525483]]),\n", " array([[-0.00074457, 0.00016413, -0.00023352, 0.0252517 ]]),\n", " array([[-0.00074463, 0.00016404, -0.00023351, 0.02524857]]),\n", " array([[-0.00074469, 0.00016394, -0.00023351, 0.02524544]]),\n", " array([[-0.00074475, 0.00016385, -0.0002335 , 0.02524231]]),\n", " array([[-0.00074481, 0.00016375, -0.0002335 , 0.02523918]]),\n", " array([[-0.00074486, 0.00016365, -0.00023349, 0.02523605]]),\n", " array([[-0.00074492, 0.00016356, -0.00023348, 0.02523292]]),\n", " array([[-0.00074498, 0.00016346, -0.00023348, 0.0252298 ]]),\n", " array([[-0.00074504, 0.00016336, -0.00023347, 0.02522667]]),\n", " array([[-0.0007451 , 0.00016327, -0.00023346, 0.02522355]]),\n", " array([[-0.00074516, 0.00016317, -0.00023346, 0.02522042]]),\n", " array([[-0.00074521, 0.00016308, -0.00023345, 0.0252173 ]]),\n", " array([[-0.00074527, 0.00016298, -0.00023344, 0.02521418]]),\n", " array([[-0.00074533, 0.00016289, -0.00023344, 0.02521106]]),\n", " array([[-0.00074539, 0.00016279, -0.00023343, 0.02520794]]),\n", " array([[-0.00074545, 0.00016269, -0.00023342, 0.02520481]]),\n", " array([[-0.00074551, 0.0001626 , -0.00023342, 0.0252017 ]]),\n", " array([[-0.00074556, 0.0001625 , -0.00023341, 0.02519858]]),\n", " array([[-0.00074562, 0.00016241, -0.0002334 , 0.02519546]]),\n", " array([[-0.00074568, 0.00016231, -0.0002334 , 0.02519234]]),\n", " array([[-0.00074574, 0.00016221, -0.00023339, 0.02518923]]),\n", " array([[-0.0007458 , 0.00016212, -0.00023338, 0.02518611]]),\n", " array([[-0.00074586, 0.00016202, -0.00023338, 0.025183 ]]),\n", " array([[-0.00074591, 0.00016193, -0.00023337, 0.02517988]]),\n", " array([[-0.00074597, 0.00016183, -0.00023336, 0.02517677]]),\n", " array([[-0.00074603, 0.00016174, -0.00023336, 0.02517366]]),\n", " array([[-0.00074609, 0.00016164, -0.00023335, 0.02517054]]),\n", " array([[-0.00074615, 0.00016154, -0.00023334, 0.02516743]]),\n", " array([[-0.00074621, 0.00016145, -0.00023334, 0.02516432]]),\n", " array([[-0.00074626, 0.00016135, -0.00023333, 0.02516121]]),\n", " array([[-0.00074632, 0.00016126, -0.00023333, 0.02515811]]),\n", " array([[-0.00074638, 0.00016116, -0.00023332, 0.025155 ]]),\n", " array([[-0.00074644, 0.00016107, -0.00023331, 0.02515189]]),\n", " array([[-0.0007465 , 0.00016097, -0.00023331, 0.02514878]]),\n", " array([[-0.00074655, 0.00016088, -0.0002333 , 0.02514568]]),\n", " array([[-0.00074661, 0.00016078, -0.00023329, 0.02514257]]),\n", " array([[-0.00074667, 0.00016069, -0.00023329, 0.02513947]]),\n", " array([[-0.00074673, 0.00016059, -0.00023328, 0.02513637]]),\n", " array([[-0.00074679, 0.0001605 , -0.00023327, 0.02513327]]),\n", " array([[-0.00074684, 0.0001604 , -0.00023327, 0.02513016]]),\n", " array([[-0.0007469 , 0.0001603 , -0.00023326, 0.02512706]]),\n", " array([[-0.00074696, 0.00016021, -0.00023325, 0.02512396]]),\n", " array([[-0.00074702, 0.00016011, -0.00023325, 0.02512086]]),\n", " array([[-0.00074708, 0.00016002, -0.00023324, 0.02511776]]),\n", " array([[-0.00074713, 0.00015992, -0.00023323, 0.02511467]]),\n", " array([[-0.00074719, 0.00015983, -0.00023323, 0.02511157]]),\n", " array([[-0.00074725, 0.00015973, -0.00023322, 0.02510847]]),\n", " array([[-0.00074731, 0.00015964, -0.00023322, 0.02510538]]),\n", " array([[-0.00074737, 0.00015954, -0.00023321, 0.02510228]]),\n", " array([[-0.00074742, 0.00015945, -0.0002332 , 0.02509919]]),\n", " array([[-0.00074748, 0.00015935, -0.0002332 , 0.0250961 ]]),\n", " array([[-0.00074754, 0.00015926, -0.00023319, 0.025093 ]]),\n", " array([[-0.0007476 , 0.00015916, -0.00023318, 0.02508991]]),\n", " array([[-0.00074766, 0.00015907, -0.00023318, 0.02508682]]),\n", " array([[-0.00074771, 0.00015897, -0.00023317, 0.02508373]]),\n", " array([[-0.00074777, 0.00015888, -0.00023316, 0.02508064]]),\n", " array([[-0.00074783, 0.00015878, -0.00023316, 0.02507755]])]" ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" } ], "source": [ "coefs" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [ { "ename": "ValueError", "evalue": "x and y can be no greater than 2-D, but have shapes (200,) and (200, 1, 4)", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0max\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgca\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0max\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0malphas\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcoefs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 4\u001b[0m \u001b[1;31m# ax.set_xscale('log')\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;31m# plt.xlabel('alpha')\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\matplotlib\\__init__.py\u001b[0m in \u001b[0;36minner\u001b[1;34m(ax, *args, **kwargs)\u001b[0m\n\u001b[0;32m 1896\u001b[0m warnings.warn(msg % (label_namer, func.__name__),\n\u001b[0;32m 1897\u001b[0m RuntimeWarning, stacklevel=2)\n\u001b[1;32m-> 1898\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0max\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1899\u001b[0m \u001b[0mpre_doc\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0minner\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__doc__\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1900\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mpre_doc\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\matplotlib\\axes\\_axes.py\u001b[0m in \u001b[0;36mplot\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 1404\u001b[0m \u001b[0mkwargs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcbook\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnormalize_kwargs\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0m_alias_map\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1405\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1406\u001b[1;33m \u001b[1;32mfor\u001b[0m \u001b[0mline\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_get_lines\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1407\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0madd_line\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mline\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1408\u001b[0m \u001b[0mlines\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mline\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\matplotlib\\axes\\_base.py\u001b[0m in \u001b[0;36m_grab_next_args\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 405\u001b[0m \u001b[1;32mreturn\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 406\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mremaining\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m<=\u001b[0m \u001b[1;36m3\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 407\u001b[1;33m \u001b[1;32mfor\u001b[0m \u001b[0mseg\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_plot_args\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mremaining\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 408\u001b[0m \u001b[1;32myield\u001b[0m \u001b[0mseg\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 409\u001b[0m \u001b[1;32mreturn\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\matplotlib\\axes\\_base.py\u001b[0m in \u001b[0;36m_plot_args\u001b[1;34m(self, tup, kwargs)\u001b[0m\n\u001b[0;32m 383\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mindex_of\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtup\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 384\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 385\u001b[1;33m \u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_xy_from_xy\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 386\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 387\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcommand\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;34m'plot'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\matplotlib\\axes\\_base.py\u001b[0m in \u001b[0;36m_xy_from_xy\u001b[1;34m(self, x, y)\u001b[0m\n\u001b[0;32m 245\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mndim\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m2\u001b[0m \u001b[1;32mor\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mndim\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m2\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 246\u001b[0m raise ValueError(\"x and y can be no greater than 2-D, but have \"\n\u001b[1;32m--> 247\u001b[1;33m \"shapes {} and {}\".format(x.shape, y.shape))\n\u001b[0m\u001b[0;32m 248\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 249\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mndim\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mValueError\u001b[0m: x and y can be no greater than 2-D, but have shapes (200,) and (200, 1, 4)" ] }, { "data": { "image/png": "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\nNWLIwgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = plt.gca()\n", "\n", "ax.plot(alphas, coefs)\n", "# ax.set_xscale('log')\n", "# plt.xlabel('alpha')\n", "# plt.ylabel('weights')\n", "# plt.title('Ridge coefficients as a function of the regularization')\n", "# plt.axis('tight')\n", "plt.show()" ] }, { "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.7.1" } }, "nbformat": 4, "nbformat_minor": 1 }