{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# preliminary analysis" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "plt.rcParams['figure.figsize'] = (16,9)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import seaborn as sns\n", "import pandas as pd\n", "#to plot the graphs inline on jupyter notebook" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Data ranges from 0 to 127\n" ] } ], "source": [ "#import data\n", "df = pd.read_csv('Merged_Data2.csv')\n", "print('Data ranges from ', df.index.min(), 'to', df.index.max())\n", "df.drop([\"TIME\",\"WIND_DIRECTION\"], axis = 1, inplace = True)\n", "X= df.drop(columns=['PRICE'])\n", "y = df['PRICE']\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "#changing the size of plots\n", "\n", "meanprops = dict(linestyle='--', linewidth=3, color='w')\n", "medianprops = dict(linestyle='-', linewidth=3, color='k')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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RERERCKeilsRERERERGJeCpuRUREREREJOKpuBUREREREZGIp+JWREREREREIp6KWxEREREREYl4Km5FREREREQk4qm4FRERERERkYin4lZEREREREQinopbERERERERiXgqbkVERERERCTiqbgVERERERGRiKfiVkRERERERCKeilsRERERERGJeCpuRUREREREJOLFeR1ARERERArXiBEjSEtL8zoGAGvWrAGgR48eHif5n9q1a4dVHhHJHxW3IiIiIuKZpKQkryOISBGh4lZEREQkyqhVUkSKIo25FRERERERkYin4lZEREREREQinopbERERERERiXgqbkVERERERCTiqbgVERERERGRiKfiVkRERERERCKeilsRERERERGJeFrnNsyNGDGCtLQ0r2MctmbNGiB81serXbt22GQRERERERHvqLiVk5KUlOR1BBERERERkd9QcRvm1CopIiIiIiJyYhpzKyIiIiIiIhFPxa2IiIiIiIhEPBW3IiIiIiIiEvFU3IqIiIiIiEjEU3ErIiIiIiIiEU/FrYiIiIiIiES8sCluzSzWzBab2eeh7bJmNs3M1oS+lvE6o4iIiIiIiISnsClugUeAVXm2ewLTnXPnANND2yIiIiIiIiK/ERbFrZlVB64H3syz+w/A+ND344GbCzuXiIiIiIiIRIawKG6Bl4AngUCefZWcc1sAQl8rHu1EM+tqZgvMbMH27dsLPqmIiIiIiIiEHc+LWzO7AdjmnFv4e853zr3hnGvinGtSoUKF05xOREREREREIkGc1wGAS4GbzOz/gETgDDObAGw1syrOuS1mVgXY5mlKERERERERCVuet9w653o556o751KAO4AZzrm7gU+BjqHDOgKfeBRRREREREREwpznxe1xDAbamNkaoE1oW0REREREROQ3wqFb8mHOua+Br0PfZwCtvcwjIiIiIiIikSGcW25FRERERERE8kXFrYiIiIiIiEQ8FbciIiIiIiIS8VTcioiIiIiISMRTcSsiIiIiIiIRz5xzXmc4bcxsO/Cz1zmiQHlgh9chRE6RrmMpKnQtS1Gg61iKCl3LBa+Gc67C0R4oUsWtFA4zW+Cca+J1DpFToetYigpdy1IU6DqWokLXsrfULVlEREREREQinopbERERERERiXgqbuX3eMPrACKnga5jKSp0LUtRoOtYigpdyx7S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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sns.boxplot(x = df['SKY_CONDITION'], y = df['PRICE'], data=df, showmeans=True, meanline=True, notch=True, bootstrap=5000, meanprops=meanprops, medianprops=medianprops)\n", "plt.xlabel('Sky Condition', fontsize=14)\n", "plt.ylabel('Price', fontsize=14)\n", "plt.savefig('sky_price.png',bbox_inches='tight')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "meanprops = dict(linestyle=':', linewidth=3, color='w')\n", "sns.boxplot(x = df['HOUR'], y = df['PRICE'], data=df, showmeans=True, meanline=True, notch=False, bootstrap=5000, meanprops=meanprops, medianprops=medianprops)\n", "plt.xlabel('Hour', fontsize=14)\n", "plt.ylabel('Price', fontsize=14)\n", "plt.savefig('price_hour.png',bbox_inches='tight')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "meanprops = dict(linestyle='--', linewidth=3, color='w')\n", "sns.boxplot(x = df['WIND_SPEED'], y = df['PRICE'], data=df, showmeans=True, meanline=True, notch=False, bootstrap=5000, meanprops=meanprops, medianprops=medianprops)\n", "plt.xlabel('Wind Speed', fontsize=14)\n", "plt.ylabel('Price', fontsize=14)\n", "plt.savefig('wind_price.png',bbox_inches='tight')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# OLS Regression" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import statsmodels.api as sm" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "df = pd.read_csv('Merged_Data2.csv', index_col=0)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "lm = sm.OLS.from_formula('PRICE ~ SKY_CONDITION + VISIBILITY + DEW_POINT_TEMP + \\\n", "RELATIVE_HUMIDITY + WIND_SPEED + STATION_PRESSURE + \\\n", "SEA_LEVEL_PRESSURE + SUNRISE + HOUR + LOAD + SOLAR_FORECAST +\\\n", "WIND_FORECAST + SOLAR_ACTUAL + WIND_ACTUAL', df)\n", "result = lm.fit()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: PRICE R-squared: 0.800\n", "Model: OLS Adj. R-squared: 0.769\n", "Method: Least Squares F-statistic: 25.86\n", "Date: Wed, 21 Aug 2019 Prob (F-statistic): 1.01e-30\n", "Time: 18:24:46 Log-Likelihood: -524.46\n", "No. Observations: 128 AIC: 1085.\n", "Df Residuals: 110 BIC: 1136.\n", "Df Model: 17 \n", "Covariance Type: nonrobust \n", "========================================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "----------------------------------------------------------------------------------------\n", "Intercept 3788.9644 3583.632 1.057 0.293 -3312.954 1.09e+04\n", "SKY_CONDITION[T.CLR] -0.0096 7.691 -0.001 0.999 -15.252 15.233\n", "SKY_CONDITION[T.FEW] 4.4463 6.169 0.721 0.473 -7.778 16.671\n", "SKY_CONDITION[T.OVC] 8.0645 7.296 1.105 0.271 -6.395 22.524\n", "SKY_CONDITION[T.SCT] 4.4046 7.769 0.567 0.572 -10.992 19.802\n", "VISIBILITY -2.0098 4.039 -0.498 0.620 -10.015 5.995\n", "DEW_POINT_TEMP 0.4726 0.499 0.948 0.345 -0.516 1.461\n", "RELATIVE_HUMIDITY -0.3489 0.154 -2.270 0.025 -0.654 -0.044\n", "WIND_SPEED -0.1480 0.562 -0.263 0.793 -1.262 0.966\n", "STATION_PRESSURE -252.6292 308.723 -0.818 0.415 -864.445 359.187\n", "SEA_LEVEL_PRESSURE 301.0003 303.789 0.991 0.324 -301.038 903.039\n", "SUNRISE -8.1342 3.865 -2.105 0.038 -15.793 -0.475\n", "HOUR -1.3282 0.410 -3.236 0.002 -2.141 -0.515\n", "LOAD 0.0079 0.001 11.015 0.000 0.006 0.009\n", "SOLAR_FORECAST -0.0049 0.008 -0.633 0.528 -0.020 0.010\n", "WIND_FORECAST -0.0036 0.004 -0.916 0.362 -0.011 0.004\n", "SOLAR_ACTUAL 0.0012 0.007 0.168 0.867 -0.013 0.015\n", "WIND_ACTUAL -0.0064 0.005 -1.270 0.207 -0.016 0.004\n", "==============================================================================\n", "Omnibus: 23.892 Durbin-Watson: 0.657\n", "Prob(Omnibus): 0.000 Jarque-Bera (JB): 58.092\n", "Skew: 0.705 Prob(JB): 2.43e-13\n", "Kurtosis: 5.984 Cond. No. 6.13e+07\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, 6.13e+07. This might indicate that there are\n", "strong multicollinearity or other numerical problems.\n" ] } ], "source": [ "print(result.summary())" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.7998834807481731\n" ] } ], "source": [ "print(result.rsquared)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Backward Model Selection" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: PRICE R-squared: 0.797\n", "Model: OLS Adj. R-squared: 0.774\n", "Method: Least Squares F-statistic: 34.43\n", "Date: Wed, 21 Aug 2019 Prob (F-statistic): 2.12e-33\n", "Time: 18:24:51 Log-Likelihood: -525.37\n", "No. Observations: 128 AIC: 1079.\n", "Df Residuals: 114 BIC: 1119.\n", "Df Model: 13 \n", "Covariance Type: nonrobust \n", "======================================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "--------------------------------------------------------------------------------------\n", "Intercept 4039.2320 3404.174 1.187 0.238 -2704.411 1.08e+04\n", "VISIBILITY -2.1648 3.979 -0.544 0.587 -10.048 5.718\n", "DEW_POINT_TEMP 0.6466 0.427 1.515 0.132 -0.199 1.492\n", "RELATIVE_HUMIDITY -0.3382 0.150 -2.252 0.026 -0.636 -0.041\n", "WIND_SPEED -0.1200 0.543 -0.221 0.825 -1.195 0.955\n", "STATION_PRESSURE -235.4257 300.410 -0.784 0.435 -830.536 359.684\n", "SEA_LEVEL_PRESSURE 275.5591 296.066 0.931 0.354 -310.945 862.063\n", "SUNRISE -8.1457 3.720 -2.190 0.031 -15.514 -0.777\n", "HOUR -1.3007 0.404 -3.221 0.002 -2.101 -0.501\n", "LOAD 0.0079 0.001 11.337 0.000 0.007 0.009\n", "SOLAR_FORECAST -0.0037 0.007 -0.511 0.611 -0.018 0.011\n", "WIND_FORECAST -0.0045 0.004 -1.186 0.238 -0.012 0.003\n", "SOLAR_ACTUAL -0.0001 0.006 -0.022 0.982 -0.013 0.013\n", "WIND_ACTUAL -0.0053 0.005 -1.081 0.282 -0.015 0.004\n", "==============================================================================\n", "Omnibus: 20.141 Durbin-Watson: 0.635\n", "Prob(Omnibus): 0.000 Jarque-Bera (JB): 48.004\n", "Skew: 0.584 Prob(JB): 3.77e-11\n", "Kurtosis: 5.763 Cond. No. 5.88e+07\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.88e+07. This might indicate that there are\n", "strong multicollinearity or other numerical problems.\n" ] } ], "source": [ "lm2 = sm.OLS.from_formula('PRICE ~ VISIBILITY + DEW_POINT_TEMP + \\\n", "RELATIVE_HUMIDITY + WIND_SPEED + STATION_PRESSURE + \\\n", "SEA_LEVEL_PRESSURE + SUNRISE + HOUR + LOAD + SOLAR_FORECAST +\\\n", "WIND_FORECAST + SOLAR_ACTUAL + WIND_ACTUAL', df)\n", "result2 = lm2.fit()\n", "print(result2.summary())" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: PRICE R-squared: 0.797\n", "Model: OLS Adj. R-squared: 0.776\n", "Method: Least Squares F-statistic: 37.63\n", "Date: Wed, 21 Aug 2019 Prob (F-statistic): 3.36e-34\n", "Time: 18:24:52 Log-Likelihood: -525.37\n", "No. Observations: 128 AIC: 1077.\n", "Df Residuals: 115 BIC: 1114.\n", "Df Model: 12 \n", "Covariance Type: nonrobust \n", "======================================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "--------------------------------------------------------------------------------------\n", "Intercept 4007.3942 3075.349 1.303 0.195 -2084.281 1.01e+04\n", "VISIBILITY -2.1741 3.940 -0.552 0.582 -9.979 5.631\n", "DEW_POINT_TEMP 0.6481 0.419 1.547 0.125 -0.182 1.478\n", "RELATIVE_HUMIDITY -0.3389 0.147 -2.312 0.023 -0.629 -0.048\n", "WIND_SPEED -0.1198 0.540 -0.222 0.825 -1.190 0.950\n", "STATION_PRESSURE -235.4774 299.093 -0.787 0.433 -827.923 356.968\n", "SEA_LEVEL_PRESSURE 275.9212 294.331 0.937 0.350 -307.091 858.934\n", "SUNRISE -8.1112 3.368 -2.408 0.018 -14.782 -1.440\n", "HOUR -1.2996 0.399 -3.258 0.001 -2.090 -0.510\n", "LOAD 0.0079 0.001 11.802 0.000 0.007 0.009\n", "SOLAR_FORECAST -0.0038 0.002 -2.557 0.012 -0.007 -0.001\n", "WIND_FORECAST -0.0045 0.004 -1.191 0.236 -0.012 0.003\n", "WIND_ACTUAL -0.0053 0.005 -1.089 0.278 -0.015 0.004\n", "==============================================================================\n", "Omnibus: 20.103 Durbin-Watson: 0.635\n", "Prob(Omnibus): 0.000 Jarque-Bera (JB): 47.888\n", "Skew: 0.583 Prob(JB): 3.99e-11\n", "Kurtosis: 5.760 Cond. No. 5.33e+07\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.33e+07. This might indicate that there are\n", "strong multicollinearity or other numerical problems.\n" ] } ], "source": [ "lm3 = sm.OLS.from_formula('PRICE ~ VISIBILITY + DEW_POINT_TEMP + \\\n", "RELATIVE_HUMIDITY + WIND_SPEED + STATION_PRESSURE + \\\n", "SEA_LEVEL_PRESSURE + SUNRISE + HOUR + LOAD + SOLAR_FORECAST +\\\n", "WIND_FORECAST + WIND_ACTUAL', df)\n", "result3 = lm3.fit()\n", "print(result3.summary())" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: PRICE R-squared: 0.797\n", "Model: OLS Adj. R-squared: 0.778\n", "Method: Least Squares F-statistic: 41.38\n", "Date: Wed, 21 Aug 2019 Prob (F-statistic): 5.21e-35\n", "Time: 18:24:54 Log-Likelihood: -525.40\n", "No. Observations: 128 AIC: 1075.\n", "Df Residuals: 116 BIC: 1109.\n", "Df Model: 11 \n", "Covariance Type: nonrobust \n", "======================================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "--------------------------------------------------------------------------------------\n", "Intercept 3766.6105 2865.602 1.314 0.191 -1909.074 9442.295\n", "VISIBILITY -2.4423 3.735 -0.654 0.514 -9.840 4.955\n", "DEW_POINT_TEMP 0.6504 0.417 1.559 0.122 -0.176 1.477\n", "RELATIVE_HUMIDITY -0.3218 0.124 -2.589 0.011 -0.568 -0.076\n", "STATION_PRESSURE -234.5734 297.837 -0.788 0.433 -824.477 355.330\n", "SEA_LEVEL_PRESSURE 278.4219 292.907 0.951 0.344 -301.717 858.561\n", "SUNRISE -7.8978 3.214 -2.457 0.015 -14.264 -1.532\n", "HOUR -1.3042 0.397 -3.288 0.001 -2.090 -0.518\n", "LOAD 0.0079 0.001 11.852 0.000 0.007 0.009\n", "SOLAR_FORECAST -0.0039 0.001 -2.576 0.011 -0.007 -0.001\n", "WIND_FORECAST -0.0044 0.004 -1.176 0.242 -0.012 0.003\n", "WIND_ACTUAL -0.0054 0.005 -1.126 0.263 -0.015 0.004\n", "==============================================================================\n", "Omnibus: 20.579 Durbin-Watson: 0.638\n", "Prob(Omnibus): 0.000 Jarque-Bera (JB): 49.393\n", "Skew: 0.597 Prob(JB): 1.88e-11\n", "Kurtosis: 5.799 Cond. No. 4.99e+07\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.99e+07. This might indicate that there are\n", "strong multicollinearity or other numerical problems.\n" ] } ], "source": [ "lm4 = sm.OLS.from_formula('PRICE ~ VISIBILITY + DEW_POINT_TEMP + \\\n", "RELATIVE_HUMIDITY + STATION_PRESSURE + \\\n", "SEA_LEVEL_PRESSURE + SUNRISE + HOUR + LOAD + SOLAR_FORECAST +\\\n", "WIND_FORECAST + WIND_ACTUAL', df)\n", "result4 = lm4.fit()\n", "print(result4.summary())" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: PRICE R-squared: 0.796\n", "Model: OLS Adj. R-squared: 0.779\n", "Method: Least Squares F-statistic: 45.70\n", "Date: Wed, 21 Aug 2019 Prob (F-statistic): 9.23e-36\n", "Time: 18:24:55 Log-Likelihood: -525.63\n", "No. Observations: 128 AIC: 1073.\n", "Df Residuals: 117 BIC: 1105.\n", "Df Model: 10 \n", "Covariance Type: nonrobust \n", "======================================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "--------------------------------------------------------------------------------------\n", "Intercept 3796.7027 2858.215 1.328 0.187 -1863.841 9457.247\n", "DEW_POINT_TEMP 0.7116 0.406 1.754 0.082 -0.092 1.515\n", "RELATIVE_HUMIDITY -0.3360 0.122 -2.752 0.007 -0.578 -0.094\n", "STATION_PRESSURE -232.2396 297.086 -0.782 0.436 -820.603 356.124\n", "SEA_LEVEL_PRESSURE 278.0844 292.189 0.952 0.343 -300.581 856.750\n", "SUNRISE -8.0787 3.194 -2.529 0.013 -14.405 -1.752\n", "HOUR -1.2871 0.395 -3.260 0.001 -2.069 -0.505\n", "LOAD 0.0081 0.001 12.459 0.000 0.007 0.009\n", "SOLAR_FORECAST -0.0039 0.001 -2.638 0.009 -0.007 -0.001\n", "WIND_FORECAST -0.0042 0.004 -1.132 0.260 -0.012 0.003\n", "WIND_ACTUAL -0.0058 0.005 -1.232 0.221 -0.015 0.004\n", "==============================================================================\n", "Omnibus: 18.637 Durbin-Watson: 0.636\n", "Prob(Omnibus): 0.000 Jarque-Bera (JB): 43.311\n", "Skew: 0.541 Prob(JB): 3.94e-10\n", "Kurtosis: 5.637 Cond. No. 4.99e+07\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.99e+07. This might indicate that there are\n", "strong multicollinearity or other numerical problems.\n" ] } ], "source": [ "lm5 = sm.OLS.from_formula('PRICE ~ DEW_POINT_TEMP + \\\n", "RELATIVE_HUMIDITY + STATION_PRESSURE + \\\n", "SEA_LEVEL_PRESSURE + SUNRISE + HOUR + LOAD + SOLAR_FORECAST +\\\n", "WIND_FORECAST + WIND_ACTUAL', df)\n", "result5 = lm5.fit()\n", "\n", "print(result5.summary())" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: PRICE R-squared: 0.795\n", "Model: OLS Adj. R-squared: 0.779\n", "Method: Least Squares F-statistic: 50.88\n", "Date: Wed, 21 Aug 2019 Prob (F-statistic): 1.69e-36\n", "Time: 18:24:56 Log-Likelihood: -525.97\n", "No. Observations: 128 AIC: 1072.\n", "Df Residuals: 118 BIC: 1100.\n", "Df Model: 9 \n", "Covariance Type: nonrobust \n", "======================================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "--------------------------------------------------------------------------------------\n", "Intercept 3350.4567 2796.010 1.198 0.233 -2186.404 8887.318\n", "DEW_POINT_TEMP 0.7125 0.405 1.760 0.081 -0.089 1.514\n", "RELATIVE_HUMIDITY -0.3396 0.122 -2.788 0.006 -0.581 -0.098\n", "SEA_LEVEL_PRESSURE 50.9149 30.378 1.676 0.096 -9.242 111.072\n", "SUNRISE -7.5909 3.128 -2.427 0.017 -13.785 -1.397\n", "HOUR -1.2734 0.394 -3.233 0.002 -2.053 -0.494\n", "LOAD 0.0080 0.001 12.467 0.000 0.007 0.009\n", "SOLAR_FORECAST -0.0039 0.001 -2.639 0.009 -0.007 -0.001\n", "WIND_FORECAST -0.0036 0.004 -0.999 0.320 -0.011 0.004\n", "WIND_ACTUAL -0.0064 0.005 -1.380 0.170 -0.016 0.003\n", "==============================================================================\n", "Omnibus: 17.673 Durbin-Watson: 0.633\n", "Prob(Omnibus): 0.000 Jarque-Bera (JB): 42.878\n", "Skew: 0.486 Prob(JB): 4.89e-10\n", "Kurtosis: 5.664 Cond. No. 4.88e+07\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.88e+07. This might indicate that there are\n", "strong multicollinearity or other numerical problems.\n" ] } ], "source": [ "lm6 = sm.OLS.from_formula('PRICE ~ DEW_POINT_TEMP + \\\n", "RELATIVE_HUMIDITY + \\\n", "SEA_LEVEL_PRESSURE + SUNRISE + HOUR + LOAD + SOLAR_FORECAST +\\\n", "WIND_FORECAST + WIND_ACTUAL', df)\n", "result6 = lm6.fit()\n", "\n", "print(result6.summary())" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: PRICE R-squared: 0.793\n", "Model: OLS Adj. R-squared: 0.779\n", "Method: Least Squares F-statistic: 57.11\n", "Date: Wed, 21 Aug 2019 Prob (F-statistic): 3.52e-37\n", "Time: 18:24:57 Log-Likelihood: -526.51\n", "No. Observations: 128 AIC: 1071.\n", "Df Residuals: 119 BIC: 1097.\n", "Df Model: 8 \n", "Covariance Type: nonrobust \n", "======================================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "--------------------------------------------------------------------------------------\n", "Intercept 2710.3056 2721.633 0.996 0.321 -2678.799 8099.410\n", "DEW_POINT_TEMP 0.7698 0.401 1.920 0.057 -0.024 1.564\n", "RELATIVE_HUMIDITY -0.3763 0.116 -3.241 0.002 -0.606 -0.146\n", "SEA_LEVEL_PRESSURE 56.1496 29.923 1.876 0.063 -3.101 115.400\n", "SUNRISE -6.8557 3.040 -2.255 0.026 -12.875 -0.836\n", "HOUR -1.3182 0.391 -3.369 0.001 -2.093 -0.543\n", "LOAD 0.0082 0.001 13.006 0.000 0.007 0.009\n", "SOLAR_FORECAST -0.0036 0.001 -2.480 0.015 -0.006 -0.001\n", "WIND_ACTUAL -0.0099 0.003 -3.194 0.002 -0.016 -0.004\n", "==============================================================================\n", "Omnibus: 17.437 Durbin-Watson: 0.637\n", "Prob(Omnibus): 0.000 Jarque-Bera (JB): 44.521\n", "Skew: 0.454 Prob(JB): 2.15e-10\n", "Kurtosis: 5.743 Cond. No. 4.75e+07\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.75e+07. This might indicate that there are\n", "strong multicollinearity or other numerical problems.\n" ] } ], "source": [ "lm7 = sm.OLS.from_formula('PRICE ~ DEW_POINT_TEMP + \\\n", "RELATIVE_HUMIDITY + \\\n", "SEA_LEVEL_PRESSURE + SUNRISE + HOUR + LOAD + SOLAR_FORECAST + WIND_ACTUAL', df)\n", "result7 = lm7.fit()\n", "\n", "print(result7.summary())" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "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.3" } }, "nbformat": 4, "nbformat_minor": 4 }