Skip to content

Instantly share code, notes, and snippets.

@Prathmeshp20
Created October 25, 2021 17:38
Show Gist options
  • Save Prathmeshp20/019f0db0ec0c24424fed51cef57c2b26 to your computer and use it in GitHub Desktop.
Save Prathmeshp20/019f0db0ec0c24424fed51cef57c2b26 to your computer and use it in GitHub Desktop.
Assignment18-Forecasting-Airlines.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport seaborn as sns",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "airlines=pd.read_excel('C:/Users/Prathmesh/Downloads/Airlines+Data.xlsx')",
"execution_count": 2,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "airlines.head()",
"execution_count": 3,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 3,
"data": {
"text/plain": " Month Passengers\n0 1995-01-01 112\n1 1995-02-01 118\n2 1995-03-01 132\n3 1995-04-01 129\n4 1995-05-01 121",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Month</th>\n <th>Passengers</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>1995-01-01</td>\n <td>112</td>\n </tr>\n <tr>\n <th>1</th>\n <td>1995-02-01</td>\n <td>118</td>\n </tr>\n <tr>\n <th>2</th>\n <td>1995-03-01</td>\n <td>132</td>\n </tr>\n <tr>\n <th>3</th>\n <td>1995-04-01</td>\n <td>129</td>\n </tr>\n <tr>\n <th>4</th>\n <td>1995-05-01</td>\n <td>121</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "month=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']\nmonth=pd.DataFrame(month)\nmonths=pd.DataFrame(np.tile(month,(8,1)))\nairlines=pd.concat([airlines,months],axis=1)\nairlines.columns=['Month','Passengers','months']",
"execution_count": 4,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "month_dummies=pd.get_dummies(airlines['months'])\nairlines=pd.concat([airlines,month_dummies],axis=1)\nairlines['t']=np.arange(1,97)\nairlines['t_sq']=airlines['t']*airlines['t']\nairlines['log_passengers']=np.log(airlines['Passengers'])",
"execution_count": 6,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "Train=airlines[0:85]\nTest=airlines[85:]\nplt.plot(airlines.iloc[:,1])\nTest.set_index(np.arange(1,12),inplace=True)",
"execution_count": 8,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 432x288 with 1 Axes>",
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import statsmodels.formula.api as smf\nlin_model=smf.ols('Passengers~t',data=Train).fit()\npredict_lin=lin_model.predict(Test['t'])\nerror_lin=Test['Passengers']-predict_lin\nrmse_lin=np.sqrt(np.mean(error_lin**2))\nrmse_lin",
"execution_count": 9,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 9,
"data": {
"text/plain": "55.674170015416216"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "exp_model=smf.ols('log_passengers~t',data=Train).fit()\npredict_exp=exp_model.predict(Test['t'])\nerror_exp=Test['Passengers']-predict_exp\nrmse_exp=np.sqrt(np.mean(error_exp**2))\nrmse_exp",
"execution_count": 10,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 10,
"data": {
"text/plain": "329.69175113922927"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "quad_model=smf.ols('Passengers~t+t_sq',data=Train).fit()\npredict_quad=quad_model.predict(Test[['t','t_sq']])\nerror_quad=Test['Passengers']-predict_quad\nrmse_quad=np.sqrt(np.mean(error_quad**2))\nrmse_quad",
"execution_count": 11,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 11,
"data": {
"text/plain": "50.65954577650039"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "add_sea_model=smf.ols('Passengers~Jan+Feb+Mar+Apr+May+Jun+Jul+Aug+Sep+Oct+Nov',data=Train).fit()\npredict_add_sea=add_sea_model.predict(Test[['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov']])\nerror_add_sea=Test['Passengers']-predict_add_sea\nrmse_add_sea=np.sqrt(np.mean(error_add_sea**2))\nrmse_add_sea",
"execution_count": 12,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 12,
"data": {
"text/plain": "134.34479910432762"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "add_sea_quad_model=smf.ols('Passengers~Jan+Feb+Mar+Apr+May+Jun+Jul+Aug+Sep+Oct+Nov+t+t_sq',data=Train).fit()\npredict_add_sea_quad=add_sea_quad_model.predict(Test[['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','t','t_sq']])\nerror_add_sea_quad=Test['Passengers']-predict_add_sea_quad\nrmse_add_sea_quad=np.sqrt(np.mean(error_add_sea_quad**2))\nrmse_add_sea_quad",
"execution_count": 13,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 13,
"data": {
"text/plain": "27.4127149612075"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "mul_sea_model=smf.ols('log_passengers~Jan+Feb+Mar+Apr+May+Jun+Jul+Aug+Sep+Oct+Nov',data=Train).fit()\npredict_mul_sea=mul_sea_model.predict(Test[['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov']])\nerror_mul_sea=Test['Passengers']-predict_mul_sea\nrmse_mul_sea=np.sqrt(np.mean(error_mul_sea**2))\nrmse_mul_sea",
"execution_count": 14,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 14,
"data": {
"text/plain": "330.1926780196679"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "mul_add_sea_model=smf.ols('log_passengers~t+Jan+Feb+Mar+Apr+May+Jun+Jul+Aug+Sep+Oct+Nov',data=Train).fit()\npredict_mul_add_sea=mul_add_sea_model.predict(Test[['t','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov']])\nerror_mul_add_sea=Test['Passengers']-predict_mul_add_sea\nrmse_mul_add_sea=np.sqrt(np.mean(error_mul_add_sea**2))\nrmse_mul_add_sea",
"execution_count": 15,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 15,
"data": {
"text/plain": "329.66032649959925"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "data={'model':['lin_model','exp_model','quad_model','add_sea','add_sea_quad','mul_sea','mul_add_sea'],'rmse_val':[rmse_lin,rmse_exp,rmse_quad,rmse_add_sea,rmse_add_sea_quad,rmse_mul_sea,rmse_mul_add_sea]}\nrmse_table=pd.DataFrame(data)\nrmse_table",
"execution_count": 16,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 16,
"data": {
"text/plain": " model rmse_val\n0 lin_model 55.674170\n1 exp_model 329.691751\n2 quad_model 50.659546\n3 add_sea 134.344799\n4 add_sea_quad 27.412715\n5 mul_sea 330.192678\n6 mul_add_sea 329.660326",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>model</th>\n <th>rmse_val</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>lin_model</td>\n <td>55.674170</td>\n </tr>\n <tr>\n <th>1</th>\n <td>exp_model</td>\n <td>329.691751</td>\n </tr>\n <tr>\n <th>2</th>\n <td>quad_model</td>\n <td>50.659546</td>\n </tr>\n <tr>\n <th>3</th>\n <td>add_sea</td>\n <td>134.344799</td>\n </tr>\n <tr>\n <th>4</th>\n <td>add_sea_quad</td>\n <td>27.412715</td>\n </tr>\n <tr>\n <th>5</th>\n <td>mul_sea</td>\n <td>330.192678</td>\n </tr>\n <tr>\n <th>6</th>\n <td>mul_add_sea</td>\n <td>329.660326</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.8.5",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"gist": {
"id": "",
"data": {
"description": "Assignment18-Forecasting-Airlines.ipynb",
"public": true
}
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment