diff --git a/ASSIGNMENT-2-Akash Singh.ipynb b/ASSIGNMENT-2-Akash Singh.ipynb new file mode 100644 index 0000000..b693285 --- /dev/null +++ b/ASSIGNMENT-2-Akash Singh.ipynb @@ -0,0 +1,2190 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "id": "Lo19gePaMPB6" + }, + "outputs": [], + "source": [ + "import pyforest\n", + "import statsmodels.api as sm\n", + "import statsmodels.stats.api as sms\n", + "import scipy.stats as st" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1c55Km_3bhVg" + }, + "source": [ + "## Q1.Use GQ test to check for the presence of heteroskedasticity." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sk255gHAXpBU" + }, + "source": [ + "## LOAD DATASET\n", + "### The following data on consumption-expenditure and income of 20 families (in ‘000 rupees):" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 676 + }, + "id": "eGUJnCujMx0l", + "outputId": "965d6d2d-8767-44e6-fb30-33bb4516a63d" + }, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " if (window._pyforest_update_imports_cell) { window._pyforest_update_imports_cell('import pandas as pd\\nimport matplotlib.pyplot as plt'); }\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
IncomeCon-exp
022.319.9
132.331.2
236.631.8
312.112.1
442.340.7
56.26.1
644.738.6
726.125.5
810.310.3
940.238.8
108.18.0
1134.533.1
1238.033.5
1314.113.1
1416.414.8
1524.121.6
1630.129.3
1728.325.0
1818.217.9
1920.119.8
\n", + "
" + ], + "text/plain": [ + " Income Con-exp\n", + "0 22.3 19.9\n", + "1 32.3 31.2\n", + "2 36.6 31.8\n", + "3 12.1 12.1\n", + "4 42.3 40.7\n", + "5 6.2 6.1\n", + "6 44.7 38.6\n", + "7 26.1 25.5\n", + "8 10.3 10.3\n", + "9 40.2 38.8\n", + "10 8.1 8.0\n", + "11 34.5 33.1\n", + "12 38.0 33.5\n", + "13 14.1 13.1\n", + "14 16.4 14.8\n", + "15 24.1 21.6\n", + "16 30.1 29.3\n", + "17 28.3 25.0\n", + "18 18.2 17.9\n", + "19 20.1 19.8" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d= pd.read_csv(\"C:/Users/Akash/Desktop/Mayukh sir practical/assignment2/a2d1.csv\")\n", + "d" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "p8Ut756kX5jA" + }, + "source": [ + "### SORT THE DATA-SET BASED ON INCOME " + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 676 + }, + "id": "IG9YdO8_Odtl", + "outputId": "10d5585e-136e-43c4-f250-01285cbca234" + }, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
IncomeCon-exp
56.26.1
108.18.0
810.310.3
312.112.1
1314.113.1
1416.414.8
1818.217.9
1920.119.8
022.319.9
1524.121.6
726.125.5
1728.325.0
1630.129.3
132.331.2
1134.533.1
236.631.8
1238.033.5
940.238.8
442.340.7
644.738.6
\n", + "
" + ], + "text/plain": [ + " Income Con-exp\n", + "5 6.2 6.1\n", + "10 8.1 8.0\n", + "8 10.3 10.3\n", + "3 12.1 12.1\n", + "13 14.1 13.1\n", + "14 16.4 14.8\n", + "18 18.2 17.9\n", + "19 20.1 19.8\n", + "0 22.3 19.9\n", + "15 24.1 21.6\n", + "7 26.1 25.5\n", + "17 28.3 25.0\n", + "16 30.1 29.3\n", + "1 32.3 31.2\n", + "11 34.5 33.1\n", + "2 36.6 31.8\n", + "12 38.0 33.5\n", + "9 40.2 38.8\n", + "4 42.3 40.7\n", + "6 44.7 38.6" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d1=data.sort_values(\"Income\")\n", + "d1" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "GNlwAVIaYCvW" + }, + "source": [ + "### HERE, INDEPENDENT COVARIATE IS INCOME(x) AND DEPENDENT VARIABLE IS CONSUMPTION-EXPENDITURE(y)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "2YLPJf3mPBBi", + "outputId": "ba813255-f388-4ed0-fd55-a49c5d71dd03" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5 6.2\n", + "10 8.1\n", + "8 10.3\n", + "3 12.1\n", + "13 14.1\n", + "14 16.4\n", + "18 18.2\n", + "19 20.1\n", + "0 22.3\n", + "15 24.1\n", + "7 26.1\n", + "17 28.3\n", + "16 30.1\n", + "1 32.3\n", + "11 34.5\n", + "2 36.6\n", + "12 38.0\n", + "9 40.2\n", + "4 42.3\n", + "6 44.7\n", + "Name: Income, dtype: float64\n", + "5 6.1\n", + "10 8.0\n", + "8 10.3\n", + "3 12.1\n", + "13 13.1\n", + "14 14.8\n", + "18 17.9\n", + "19 19.8\n", + "0 19.9\n", + "15 21.6\n", + "7 25.5\n", + "17 25.0\n", + "16 29.3\n", + "1 31.2\n", + "11 33.1\n", + "2 31.8\n", + "12 33.5\n", + "9 38.8\n", + "4 40.7\n", + "6 38.6\n", + "Name: Con-exp, dtype: float64\n" + ] + } + ], + "source": [ + "x=data1[\"Income\"]\n", + "print(x)\n", + "y=data1[\"Con-exp\"]\n", + "print(y)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QFCrI9dlYsc5" + }, + "source": [ + "### PERFORMING SIMPLE LINEAR REGREESION EQUATION USING STATS MODEL\n" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "xWGDp8aLQtVO", + "outputId": "bce543d3-f72d-45e8-c6a8-2e32c8437971" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " OLS Regression Results \n", + "==============================================================================\n", + "Dep. Variable: Con-exp R-squared: 0.986\n", + "Model: OLS Adj. R-squared: 0.985\n", + "Method: Least Squares F-statistic: 1263.\n", + "Date: Mon, 30 May 2022 Prob (F-statistic): 4.00e-18\n", + "Time: 23:58:56 Log-Likelihood: -32.785\n", + "No. Observations: 20 AIC: 69.57\n", + "Df Residuals: 18 BIC: 71.56\n", + "Df Model: 1 \n", + "Covariance Type: nonrobust \n", + "==============================================================================\n", + " coef std err t P>|t| [0.025 0.975]\n", + "------------------------------------------------------------------------------\n", + "const 0.8471 0.703 1.204 0.244 -0.631 2.325\n", + "Income 0.8993 0.025 35.534 0.000 0.846 0.952\n", + "==============================================================================\n", + "Omnibus: 1.874 Durbin-Watson: 2.060\n", + "Prob(Omnibus): 0.392 Jarque-Bera (JB): 1.113\n", + "Skew: -0.236 Prob(JB): 0.573\n", + "Kurtosis: 1.945 Cond. No. 66.6\n", + "==============================================================================\n", + "\n", + "Notes:\n", + "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" + ] + } + ], + "source": [ + "x_const=sm.add_constant(x)\n", + "model=sm.OLS(y,x_const)\n", + "result=model.fit()\n", + "print(result.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "j8rdKO0uRMo0", + "outputId": "53590a60-49dd-4046-acbf-777b6f2de7ce" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "5 6.422865\n", + "10 8.131582\n", + "8 10.110096\n", + "3 11.728880\n", + "13 13.527530\n", + "14 15.595977\n", + "18 17.214761\n", + "19 18.923478\n", + "0 20.901992\n", + "15 22.520777\n", + "7 24.319426\n", + "17 26.297940\n", + "16 27.916725\n", + "1 29.895239\n", + "11 31.873753\n", + "2 33.762335\n", + "12 35.021390\n", + "9 36.999904\n", + "4 38.888486\n", + "6 41.046865\n", + "dtype: float64" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_pred= result.predict(x_const)\n", + "y_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "-zjzutkjRfzs", + "outputId": "f18becb9-ee94-4eb3-88bd-30565ef1d620" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5 -0.322865\n", + "10 -0.131582\n", + "8 0.189904\n", + "3 0.371120\n", + "13 -0.427530\n", + "14 -0.795977\n", + "18 0.685239\n", + "19 0.876522\n", + "0 -1.001992\n", + "15 -0.920777\n", + "7 1.180574\n", + "17 -1.297940\n", + "16 1.383275\n", + "1 1.304761\n", + "11 1.226247\n", + "2 -1.962335\n", + "12 -1.521390\n", + "9 1.800096\n", + "4 1.811514\n", + "6 -2.446865\n", + "dtype: float64\n" + ] + } + ], + "source": [ + "res= y-y_pred\n", + "print(res)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "rDXv_NGTZ1q_" + }, + "source": [ + "### RESIDUAL PLOT ON INDEPENDENT VARIABLE VS RESIUAL" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 286 + }, + "id": "q4MqQ-dVRqsF", + "outputId": "53ba81ce-df79-4f72-8e75-98e8c9ea9e4c" + }, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " if (window._pyforest_update_imports_cell) { window._pyforest_update_imports_cell('import pandas as pd\\nimport matplotlib.pyplot as plt'); }\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(x,res)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "nCmOxQiwaFWW" + }, + "source": [ + "#### OBSERED FANNEL SHAPED DIAGRAM i.e HETEROSKEDASTICITY IS PRESENT. NEXT, WE PERFORMED GQ-TEST TO ENSURE PRESENCE OF HETEROSKEDASTICITY" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "NLvIx4ooSDWX", + "outputId": "6649b1b4-336d-4668-e165-4402deda9d21" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5 6.2\n", + "10 8.1\n", + "8 10.3\n", + "3 12.1\n", + "13 14.1\n", + "14 16.4\n", + "18 18.2\n", + "19 20.1\n", + "Name: Income, dtype: float64\n" + ] + } + ], + "source": [ + "c=4\n", + "smallest = data1[:8]\n", + "#print(smallest)\n", + "print(smallest[\"Income\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "r34yogUlSfxO", + "outputId": "0081d742-8384-4141-8e5d-f8988b7f0a8b" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " OLS Regression Results \n", + "==============================================================================\n", + "Dep. Variable: Con-exp R-squared: 0.988\n", + "Model: OLS Adj. R-squared: 0.986\n", + "Method: Least Squares F-statistic: 481.2\n", + "Date: Mon, 30 May 2022 Prob (F-statistic): 5.86e-07\n", + "Time: 23:59:01 Log-Likelihood: -5.5874\n", + "No. Observations: 8 AIC: 15.17\n", + "Df Residuals: 6 BIC: 15.33\n", + "Df Model: 1 \n", + "Covariance Type: nonrobust \n", + "==============================================================================\n", + " coef std err t P>|t| [0.025 0.975]\n", + "------------------------------------------------------------------------------\n", + "const 0.2350 0.605 0.389 0.711 -1.244 1.714\n", + "Income 0.9500 0.043 21.937 0.000 0.844 1.056\n", + "==============================================================================\n", + "Omnibus: 3.523 Durbin-Watson: 1.610\n", + "Prob(Omnibus): 0.172 Jarque-Bera (JB): 1.472\n", + "Skew: -1.043 Prob(JB): 0.479\n", + "Kurtosis: 2.746 Cond. No. 42.7\n", + "==============================================================================\n", + "\n", + "Notes:\n", + "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\Akash\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\scipy\\stats\\_stats_py.py:1477: UserWarning: kurtosistest only valid for n>=20 ... continuing anyway, n=8\n", + " warnings.warn(\"kurtosistest only valid for n>=20 ... continuing \"\n" + ] + } + ], + "source": [ + "x1_const=sm.add_constant(smallest[\"Income\"])\n", + "model1= sm.OLS(smallest[\"Con-exp\"],x1_const)\n", + "result1=model1.fit()\n", + "print(result1.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "id": "EMK2E8EnTmKf" + }, + "outputs": [], + "source": [ + "y1_pred= result1.predict(x1_const)\n", + "y1=smallest[\"Con-exp\"]\n", + "res1=y1-y1_pred" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Cs0EzYqZT3dv", + "outputId": "0187ea17-ec90-4b8a-ed3b-77dba85b345e" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.8934714887358706\n" + ] + } + ], + "source": [ + "Res1 = res1**2\n", + "ssr1 = Res1.sum()\n", + "print(ssr1)" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 300 + }, + "id": "luiI5QPFUVfE", + "outputId": "cf46d9e0-a212-4900-af50-e4d05908a00a" + }, + "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", + "
IncomeCon-exp
1630.129.3
132.331.2
1134.533.1
236.631.8
1238.033.5
940.238.8
442.340.7
644.738.6
\n", + "
" + ], + "text/plain": [ + " Income Con-exp\n", + "16 30.1 29.3\n", + "1 32.3 31.2\n", + "11 34.5 33.1\n", + "2 36.6 31.8\n", + "12 38.0 33.5\n", + "9 40.2 38.8\n", + "4 42.3 40.7\n", + "6 44.7 38.6" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "largest = data1[-8:]\n", + "largest\n" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "YkRMFGRFU_vx", + "outputId": "3854c82a-55c4-4afc-9240-06a95dae4d28" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " OLS Regression Results \n", + "==============================================================================\n", + "Dep. Variable: Con-exp R-squared: 0.833\n", + "Model: OLS Adj. R-squared: 0.806\n", + "Method: Least Squares F-statistic: 30.00\n", + "Date: Mon, 30 May 2022 Prob (F-statistic): 0.00155\n", + "Time: 23:59:05 Log-Likelihood: -15.076\n", + "No. Observations: 8 AIC: 34.15\n", + "Df Residuals: 6 BIC: 34.31\n", + "Df Model: 1 \n", + "Covariance Type: nonrobust \n", + "==============================================================================\n", + " coef std err t P>|t| [0.025 0.975]\n", + "------------------------------------------------------------------------------\n", + "const 6.0938 5.250 1.161 0.290 -6.751 18.939\n", + "Income 0.7641 0.140 5.477 0.002 0.423 1.106\n", + "==============================================================================\n", + "Omnibus: 1.258 Durbin-Watson: 1.852\n", + "Prob(Omnibus): 0.533 Jarque-Bera (JB): 0.631\n", + "Skew: -0.009 Prob(JB): 0.729\n", + "Kurtosis: 1.624 Cond. No. 304.\n", + "==============================================================================\n", + "\n", + "Notes:\n", + "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\Akash\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\scipy\\stats\\_stats_py.py:1477: UserWarning: kurtosistest only valid for n>=20 ... continuing anyway, n=8\n", + " warnings.warn(\"kurtosistest only valid for n>=20 ... continuing \"\n" + ] + } + ], + "source": [ + "x2_const = sm.add_constant(largest[\"Income\"])\n", + "mod = sm.OLS(largest[\"Con-exp\"],x2_const)\n", + "result2 = mod.fit()\n", + "print(result2.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "2hyrdOW6VMKn", + "outputId": "e988a102-1f42-4f80-c1a1-6c2dadb6b22c" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "20.299525511488298" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_pred2 = result2.predict(x2_const)\n", + "res2 = (largest[\"Con-exp\"]-y_pred2)\n", + "Res2 = res2**2\n", + "ssr2 = Res2.sum()\n", + "ssr2" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "jb7Vv9L3VdyT", + "outputId": "bb1d618a-392c-44b7-da5c-d1a430cb063a" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10.720798085552783\n" + ] + } + ], + "source": [ + "F_obs=ssr2/ssr1\n", + "print(F_obs)" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "b1chi6R6Vjms", + "outputId": "ccd55100-cf48-4bcf-83ff-606a3ee1d193" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4.283865713822639\n" + ] + } + ], + "source": [ + "F_critical=st.f.ppf(0.95,6,6)\n", + "print(F_critical)" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "M8Lv2NDaVqpP", + "outputId": "7057598e-30d1-4c16-be5e-79527b4199d7" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "we reject H0 i.e heteroskedasticity is present\n" + ] + } + ], + "source": [ + "if(F_obs>F_critical):\n", + " print(\"we reject H0 i.e heteroskedasticity is present\")\n", + "else:\n", + " print(\"we accept H0 i.e homoskedasticity is present\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "rUvwtrqLbpSY" + }, + "source": [ + "## Q2.If heteroskedasticity is present, use any simple model for the error-variance to obtain better estimates of the parameters." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "glCcZB4ybw9M" + }, + "source": [ + "### PERFORMING GLS TO OBTAIN BETTER ESTIMATOR OF THE PARAMETERS" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "vSD3TmjLcqeU", + "outputId": "2f1e3312-3dac-49af-852a-28a72975ee9d" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " GLS Regression Results \n", + "==============================================================================\n", + "Dep. Variable: Con-exp R-squared: 0.986\n", + "Model: GLS Adj. R-squared: 0.985\n", + "Method: Least Squares F-statistic: 1263.\n", + "Date: Mon, 30 May 2022 Prob (F-statistic): 4.00e-18\n", + "Time: 23:59:55 Log-Likelihood: -32.785\n", + "No. Observations: 20 AIC: 69.57\n", + "Df Residuals: 18 BIC: 71.56\n", + "Df Model: 1 \n", + "Covariance Type: nonrobust \n", + "==============================================================================\n", + " coef std err t P>|t| [0.025 0.975]\n", + "------------------------------------------------------------------------------\n", + "const 0.8471 0.703 1.204 0.244 -0.631 2.325\n", + "Income 0.8993 0.025 35.534 0.000 0.846 0.952\n", + "==============================================================================\n", + "Omnibus: 1.874 Durbin-Watson: 2.060\n", + "Prob(Omnibus): 0.392 Jarque-Bera (JB): 1.113\n", + "Skew: -0.236 Prob(JB): 0.573\n", + "Kurtosis: 1.945 Cond. No. 66.6\n", + "==============================================================================\n", + "\n", + "Notes:\n", + "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" + ] + } + ], + "source": [ + "x_const = sm.add_constant(x)\n", + "model3 = sm.GLS(y,x_const)\n", + "result3 = model3.fit()\n", + "print(result3.summary())" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "rNDOfnUZdy78" + }, + "source": [ + "## B)Q1. Use Glejser test to check for the presence of heteroskedasticity." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sdzvhb-3d8cE" + }, + "source": [ + "### LOAD DATA-SET\n", + "### The following data are on speed (sp) of a car and distance (dis) it covers to come to a standstill." + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "id": "N4jcjS16eAiU", + "outputId": "b4862105-844d-433e-8b51-bcf5e4d5e5aa" + }, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " if (window._pyforest_update_imports_cell) { window._pyforest_update_imports_cell('import pandas as pd\\nimport matplotlib.pyplot as plt'); }\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "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", + "
dissp
044
125
245
385
485
\n", + "
" + ], + "text/plain": [ + " dis sp\n", + "0 4 4\n", + "1 2 5\n", + "2 4 5\n", + "3 8 5\n", + "4 8 5" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data2= pd.read_csv(\"C:/Users/Akash/Desktop/Mayukh sir practical/assignment2/a2d2.csv\")\n", + "data2.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "RpBfBSo-xKdV" + }, + "source": [ + "### HERE SPEED OF CAR IS INDEPENDENT VARIABLE(x) and DISTANCE IS DEPENDENT VARIABLE(y)" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "id": "p6Qzq6HTeKnQ" + }, + "outputs": [], + "source": [ + "x = data2[\"sp\"]\n", + "y = data2[\"dis\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mrjSkHfVx6T7" + }, + "source": [ + "### PERFORMING OLS" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "j7ZgesvvhOVB", + "outputId": "55c62cd4-aeeb-4cd9-ba52-e1f35bb6e175" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " OLS Regression Results \n", + "==============================================================================\n", + "Dep. Variable: dis R-squared: 0.876\n", + "Model: OLS Adj. R-squared: 0.874\n", + "Method: Least Squares F-statistic: 408.6\n", + "Date: Tue, 31 May 2022 Prob (F-statistic): 6.13e-28\n", + "Time: 00:02:36 Log-Likelihood: -232.96\n", + "No. Observations: 60 AIC: 469.9\n", + "Df Residuals: 58 BIC: 474.1\n", + "Df Model: 1 \n", + "Covariance Type: nonrobust \n", + "==============================================================================\n", + " coef std err t P>|t| [0.025 0.975]\n", + "------------------------------------------------------------------------------\n", + "const -20.4174 3.345 -6.105 0.000 -27.112 -13.722\n", + "sp 3.1515 0.156 20.213 0.000 2.839 3.464\n", + "==============================================================================\n", + "Omnibus: 4.671 Durbin-Watson: 1.821\n", + "Prob(Omnibus): 0.097 Jarque-Bera (JB): 3.693\n", + "Skew: 0.499 Prob(JB): 0.158\n", + "Kurtosis: 3.693 Cond. No. 46.6\n", + "==============================================================================\n", + "\n", + "Notes:\n", + "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" + ] + } + ], + "source": [ + "x_const = sm.add_constant(x)\n", + "mod = sm.OLS(y,x_const)\n", + "result = mod.fit()\n", + "print(result.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "L0C9lwZLhTZQ", + "outputId": "90b4306b-a5b5-49b8-fdfa-c91ea667bdba" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Intercepts: -20.41742046782962\n", + "Slope: 3.151528220726599\n" + ] + } + ], + "source": [ + "parameters = result.params\n", + "intercept = parameters.const\n", + "slope = parameters.sp\n", + "print(\"Intercepts: \", intercept)\n", + "print(\"Slope: \",slope)" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "JbdXQH-1h_fh", + "outputId": "eb2165d5-79f8-4588-f63c-c9476622b6dd" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 -7.811308\n", + "1 -4.659779\n", + "2 -4.659779\n", + "3 -4.659779\n", + "4 -4.659779\n", + "dtype: float64" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_pred=result.predict(x_const)\n", + "y_pred.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "tY0vvpMtiXm3", + "outputId": "1968386b-2cdd-44a8-e2d5-8d2ee6c14d62" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 11.811308\n", + "1 6.659779\n", + "2 8.659779\n", + "3 12.659779\n", + "4 12.659779\n", + "dtype: float64" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res2= y- y_pred\n", + "res2.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 422 + }, + "id": "x_c3TB9SiqNT", + "outputId": "027ec19a-5f00-4734-a5a6-58815e206053" + }, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " if (window._pyforest_update_imports_cell) { window._pyforest_update_imports_cell('import pandas as pd\\nimport matplotlib.pyplot as plt'); }\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "\n", + " if (window._pyforest_update_imports_cell) { window._pyforest_update_imports_cell('import pandas as pd\\nimport matplotlib.pyplot as plt'); }\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "\n", + " if (window._pyforest_update_imports_cell) { window._pyforest_update_imports_cell('import pandas as pd\\nimport matplotlib.pyplot as plt'); }\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "\n", + " if (window._pyforest_update_imports_cell) { window._pyforest_update_imports_cell('import pandas as pd\\nimport matplotlib.pyplot as plt'); }\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "\n", + " if (window._pyforest_update_imports_cell) { window._pyforest_update_imports_cell('import pandas as pd\\nimport matplotlib.pyplot as plt'); }\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "\n", + " if (window._pyforest_update_imports_cell) { window._pyforest_update_imports_cell('import pandas as pd\\nimport matplotlib.pyplot as plt'); }\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "\n", + " if (window._pyforest_update_imports_cell) { window._pyforest_update_imports_cell('import pandas as pd\\nimport matplotlib.pyplot as plt'); }\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "\n", + " if (window._pyforest_update_imports_cell) { window._pyforest_update_imports_cell('import pandas as pd\\nimport matplotlib.pyplot as plt'); }\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "\n", + " if (window._pyforest_update_imports_cell) { window._pyforest_update_imports_cell('import pandas as pd\\nimport matplotlib.pyplot as plt'); }\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "\n", + " if (window._pyforest_update_imports_cell) { window._pyforest_update_imports_cell('import pandas as pd\\nimport matplotlib.pyplot as plt'); }\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "\n", + " if (window._pyforest_update_imports_cell) { window._pyforest_update_imports_cell('import pandas as pd\\nimport matplotlib.pyplot as plt'); }\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'X vs Residual plot')" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(20,6))\n", + "\n", + "plt.subplot(1,2,1)\n", + "plt.scatter(y_pred,res2)\n", + "plt.xlabel(\"y\")\n", + "plt.ylabel(\"Residual\")\n", + "plt.title(\"Y vs Residual plot\")\n", + "\n", + "plt.subplot(1,2,2)\n", + "plt.scatter(x,res2)\n", + "plt.xlabel(\"x\")\n", + "plt.ylabel(\"Residual\")\n", + "plt.title(\"X vs Residual plot\")" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": { + "id": "Q-DFwsnAj0LD" + }, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " if (window._pyforest_update_imports_cell) { window._pyforest_update_imports_cell('import pandas as pd\\nimport matplotlib.pyplot as plt\\nimport numpy as np'); }\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "RES=np.absolute(res2)\n", + "#1 |ei| = b0+b1.sqrt(1/xi)+Vi\n", + "#2 |ei| = b0+b1.sqrt(xi)+Vi\n", + "#3 |ei| = b0+b1.(1/xi)+Vi" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "rdsZmGw5ke0u", + "outputId": "ae8115a8-ccc7-4326-ed81-dff92e0993c3" + }, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " if (window._pyforest_update_imports_cell) { window._pyforest_update_imports_cell('import pandas as pd\\nimport matplotlib.pyplot as plt\\nimport numpy as np'); }\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " OLS Regression Results \n", + "==============================================================================\n", + "Dep. Variable: dis R-squared: 0.876\n", + "Model: OLS Adj. R-squared: 0.874\n", + "Method: Least Squares F-statistic: 408.6\n", + "Date: Tue, 31 May 2022 Prob (F-statistic): 6.13e-28\n", + "Time: 00:03:40 Log-Likelihood: -232.96\n", + "No. Observations: 60 AIC: 469.9\n", + "Df Residuals: 58 BIC: 474.1\n", + "Df Model: 1 \n", + "Covariance Type: nonrobust \n", + "==============================================================================\n", + " coef std err t P>|t| [0.025 0.975]\n", + "------------------------------------------------------------------------------\n", + "const -20.4174 3.345 -6.105 0.000 -27.112 -13.722\n", + "sp 3.1515 0.156 20.213 0.000 2.839 3.464\n", + "==============================================================================\n", + "Omnibus: 4.671 Durbin-Watson: 1.821\n", + "Prob(Omnibus): 0.097 Jarque-Bera (JB): 3.693\n", + "Skew: 0.499 Prob(JB): 0.158\n", + "Kurtosis: 3.693 Cond. No. 46.6\n", + "==============================================================================\n", + "\n", + "Notes:\n", + "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" + ] + } + ], + "source": [ + "x11_const = sm.add_constant(np.sqrt(1/x))\n", + "model11 = sm.OLS(RES,x11_const)\n", + "result11 = mod.fit()\n", + "print(result11.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "N7P9kfnplsrS", + "outputId": "48db29f6-bb0f-47f7-90fb-f518448f3a57" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " OLS Regression Results \n", + "==============================================================================\n", + "Dep. Variable: y R-squared: 0.047\n", + "Model: OLS Adj. R-squared: 0.031\n", + "Method: Least Squares F-statistic: 2.880\n", + "Date: Tue, 31 May 2022 Prob (F-statistic): 0.0951\n", + "Time: 00:03:42 Log-Likelihood: -202.75\n", + "No. Observations: 60 AIC: 409.5\n", + "Df Residuals: 58 BIC: 413.7\n", + "Df Model: 1 \n", + "Covariance Type: nonrobust \n", + "==============================================================================\n", + " coef std err t P>|t| [0.025 0.975]\n", + "------------------------------------------------------------------------------\n", + "const 11.5330 1.649 6.996 0.000 8.233 14.833\n", + "sp -30.9150 18.217 -1.697 0.095 -67.380 5.550\n", + "==============================================================================\n", + "Omnibus: 18.002 Durbin-Watson: 1.930\n", + "Prob(Omnibus): 0.000 Jarque-Bera (JB): 22.022\n", + "Skew: 1.266 Prob(JB): 1.65e-05\n", + "Kurtosis: 4.549 Cond. No. 19.6\n", + "==============================================================================\n", + "\n", + "Notes:\n", + "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" + ] + } + ], + "source": [ + "x22_const=sm.add_constant(1/x)\n", + "model22= sm.OLS(RES,x22_const)\n", + "result22=model22.fit()\n", + "print(result22.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "jXKrn_xAmW0f", + "outputId": "4c387e46-d492-4f73-edb1-b004835b20dd" + }, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " if (window._pyforest_update_imports_cell) { window._pyforest_update_imports_cell('import pandas as pd\\nimport matplotlib.pyplot as plt\\nimport numpy as np'); }\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " OLS Regression Results \n", + "==============================================================================\n", + "Dep. Variable: y R-squared: 0.165\n", + "Model: OLS Adj. R-squared: 0.150\n", + "Method: Least Squares F-statistic: 11.43\n", + "Date: Tue, 31 May 2022 Prob (F-statistic): 0.00130\n", + "Time: 00:03:42 Log-Likelihood: -198.80\n", + "No. Observations: 60 AIC: 401.6\n", + "Df Residuals: 58 BIC: 405.8\n", + "Df Model: 1 \n", + "Covariance Type: nonrobust \n", + "==============================================================================\n", + " coef std err t P>|t| [0.025 0.975]\n", + "------------------------------------------------------------------------------\n", + "const -1.3810 3.256 -0.424 0.673 -7.898 5.136\n", + "sp 2.5236 0.746 3.381 0.001 1.030 4.018\n", + "==============================================================================\n", + "Omnibus: 8.280 Durbin-Watson: 2.080\n", + "Prob(Omnibus): 0.016 Jarque-Bera (JB): 7.555\n", + "Skew: 0.786 Prob(JB): 0.0229\n", + "Kurtosis: 3.743 Cond. No. 17.1\n", + "==============================================================================\n", + "\n", + "Notes:\n", + "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" + ] + } + ], + "source": [ + "x33_const=sm.add_constant(np.sqrt(x))\n", + "model33= sm.OLS(RES,x33_const)\n", + "result33=model33.fit()\n", + "print(result33.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "31obVZqgntoa", + "outputId": "83334aca-f8ae-4eb1-b8c7-d3bdef6134ef" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.151528220726599\n" + ] + } + ], + "source": [ + "slope11=result11.params.sp\n", + "print(slope11)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "p3_6CczPuyLz", + "outputId": "3d4eb7c6-d87b-41d4-bc85-0600cb271083" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "20.202103979016663\n" + ] + } + ], + "source": [ + "T_obs= slope11/ 0.156 \n", + "print(T_obs)" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "F5ZYbXcTwLBS", + "outputId": "253c711e-b6a1-495f-a71d-a378d0fefff9" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "1.671552762153672" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "T_critical=st.t.ppf(0.95,58)\n", + "T_critical" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "NIu-RLGu1jKi", + "outputId": "4e72dd28-4c7c-4c71-960e-05b3f5e45666" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WE REJECT H0 i.e HETEROSKEDASTICITY IS PRESENT\n" + ] + } + ], + "source": [ + "if(T_obs>T_critical):\n", + " print(\"WE REJECT H0 i.e HETEROSKEDASTICITY IS PRESENT\")\n", + "else:\n", + " print(\"WE ACCEPECT H0 i.e HETEROSKEDASTICITY IS NOT PRESENT \")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "uC8FJc7p39f1" + }, + "source": [ + "## REMEDY" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Cecxtz6i4CE5" + }, + "source": [ + "### TRANSFORMING Y --> LOG Y" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": { + "id": "GTZVj7Ld2Pgt" + }, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " if (window._pyforest_update_imports_cell) { window._pyforest_update_imports_cell('import pandas as pd\\nimport matplotlib.pyplot as plt\\nimport numpy as np'); }\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "y_log = np.log(y)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "myTUQpaC4PNN" + }, + "source": [ + "### PERFORMING GLS" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "gonkeiXX4OfT", + "outputId": "b038ce0f-ad65-41d4-b2cf-6efec659e7c0" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " GLS Regression Results \n", + "==============================================================================\n", + "Dep. Variable: dis R-squared: 0.865\n", + "Model: GLS Adj. R-squared: 0.862\n", + "Method: Least Squares F-statistic: 370.5\n", + "Date: Tue, 31 May 2022 Prob (F-statistic): 7.27e-27\n", + "Time: 00:03:48 Log-Likelihood: -24.427\n", + "No. Observations: 60 AIC: 52.85\n", + "Df Residuals: 58 BIC: 57.04\n", + "Df Model: 1 \n", + "Covariance Type: nonrobust \n", + "==============================================================================\n", + " coef std err t P>|t| [0.025 0.975]\n", + "------------------------------------------------------------------------------\n", + "const 1.4977 0.103 14.471 0.000 1.291 1.705\n", + "sp 0.0929 0.005 19.249 0.000 0.083 0.103\n", + "==============================================================================\n", + "Omnibus: 8.532 Durbin-Watson: 1.323\n", + "Prob(Omnibus): 0.014 Jarque-Bera (JB): 8.095\n", + "Skew: -0.724 Prob(JB): 0.0175\n", + "Kurtosis: 4.067 Cond. No. 46.6\n", + "==============================================================================\n", + "\n", + "Notes:\n", + "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" + ] + } + ], + "source": [ + "x44_const = sm.add_constant(x)\n", + "model5 = sm.GLS(y_log,x44_const)\n", + "result5 = model5.fit()\n", + "print(result5.summary())" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "kwafJSlO3Y6b", + "outputId": "7e4af608-a62b-4a69-895f-6c95cf9e3c18" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 -0.482895\n", + "1 -1.268910\n", + "2 -0.575763\n", + "3 0.117384\n", + "4 0.117384\n", + "dtype: float64" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_pred_gls = result5.predict(x44_const)\n", + "\n", + "res_gls = (y_log - y_pred_gls)\n", + "res_gls.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ijQKoPik4ypN" + }, + "source": [ + "### Confirming that our new gls model's error terms are homoskedastic using BP Test" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Y5skKsmz40Jw", + "outputId": "cffb3843-0abb-483f-c9b5-ed76fa0482c9" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The p value of our test is 0.06\n", + "We accept the null hypothesis\n", + "Our errors are Homoscedastic\n" + ] + } + ], + "source": [ + "names = ['Lagrange multiplier statistic', 'p-value',\n", + " 'f-value', 'f p-value']\n", + "lmstat, pvalue , fvalue , fpvalue = sms.het_breuschpagan(res_gls, x44_const)\n", + "print(\"The p value of our test is {:.2f}\".format(pvalue))\n", + "\n", + "\n", + "if pvalue<=0.05:\n", + " print(\"Our data is heteroscedastic\")\n", + "else:\n", + " print(\"We accept the null hypothesis\\nOur errors are Homoscedastic\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "colab": { + "collapsed_sections": [], + "name": "ASSIGNMENT-2(GQ)_ANUZA _PAUL.ipynb", + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.10.2" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/a2d1.csv b/a2d1.csv new file mode 100644 index 0000000..7926b39 --- /dev/null +++ b/a2d1.csv @@ -0,0 +1,21 @@ +Income,Con-exp +22.3,19.9 +32.3,31.2 +36.6,31.8 +12.1,12.1 +42.3,40.7 +6.2,6.1 +44.7,38.6 +26.1,25.5 +10.3,10.3 +40.2,38.8 +8.1,8 +34.5,33.1 +38,33.5 +14.1,13.1 +16.4,14.8 +24.1,21.6 +30.1,29.3 +28.3,25 +18.2,17.9 +20.1,19.8 diff --git a/a2d2.csv b/a2d2.csv new file mode 100644 index 0000000..782a2ae --- /dev/null +++ b/a2d2.csv @@ -0,0 +1,61 @@ +dis,sp +4,4 +2,5 +4,5 +8,5 +8,5 +7,7 +8,8 +9,8 +11,8 +13,8 +13,9 +8,10 +14,10 +17,10 +11,12 +19,12 +21,12 +15,13 +18,13 +27,13 +16,15 +14,16 +19,16 +34,16 +22,17 +29,17 +29,18 +34,18 +47,18 +30,19 +42,21 +55,21 +33,25 +48,25 +56,25 +59,25 +39,26 +41,26 +57,27 +78,27 +54,29 +68,29 +60,30 +67,30 +101,30 +77,31 +85,35 +107,35 +79,36 +138,39 +5,9 +14,14 +5,9 +16,14 +48,20 +39,21 +64,28 +84,28 +110,40 +134,40