{"cells":[{"metadata":{"trusted":true,"_uuid":"50f3a79433f3dc1ec8abf356dd20635c9982318c"},"cell_type":"code","source":"!pip install pmdarima\n!pip install arch","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport matplotlib.pylab as plt\n%matplotlib inline\nfrom matplotlib import pyplot\nfrom matplotlib.pylab import rcParams\nrcParams['figure.figsize'] = 15, 6\nimport datetime as datetime\nimport time as time\nfrom tqdm import tqdm\nfrom collections import defaultdict\n\n## Time Series libraries\nfrom scipy import stats\nfrom statsmodels import tsa\nfrom statsmodels.graphics import tsaplots\nfrom statsmodels.tsa.stattools import acf\nfrom statsmodels.tsa.stattools import adfuller\nfrom statsmodels.stats.diagnostic import acorr_ljungbox\nfrom statsmodels.tsa.seasonal import seasonal_decompose\n\n## Auto Arima library\nimport pmdarima as pm\nfrom pmdarima.arima import ARIMA\n\n## Arma library\nfrom statsmodels.tsa.arima_model import ARMA \nfrom statsmodels.tsa.statespace.sarimax import SARIMAX\nfrom arch import arch_model\n\n## linear regression\nfrom sklearn.linear_model import LinearRegression\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import mean_squared_error,mean_absolute_error\n\n## ignore warnings\nimport warnings\nwarnings.filterwarnings('ignore')\n\n## math libraries\nfrom numpy import log\nfrom sklearn.metrics import mean_squared_error","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"data = pd.read_csv('../input/timeseriesdata/x_train_105.csv',index_col=[0])\ntarget = pd.read_csv('../input/timeseriesdata/y_train_105.csv',index_col=[0])\nprint('X:',data.shape)\nprint('Y:',target.shape)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"ec66d89e521fe4678c00699521a03ec3c539f813"},"cell_type":"code","source":"data['seismic_average'] = data['average']\ndata = pd.DataFrame(data['seismic_average'])\n#data.dropna(inplace=True)\ndata.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"0f816a1e18e8bf7ea273c05b06c84ef18b05753a"},"cell_type":"code","source":"len_data = data.shape[0]\ntrain_split = 0.95\n\nsplit_size=int(len_data*train_split)\navg_xtrain, avg_xtest = data[:split_size],data[split_size:]\navg_ytrain,avg_ytest= target[:split_size],target[split_size:]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"b7c082b174ed58035bc401ca43f7a1d6456fe2f6"},"cell_type":"code","source":"print(\"X_train : \",avg_xtrain.shape)\nprint(\"y_train : \",avg_ytrain.shape)\nprint(\"X_test : \",avg_xtest.shape)\nprint(\"y_test : \",avg_ytest.shape)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"46fd35209d9df1714db08f9a38d1554bd625c022"},"cell_type":"code","source":"plt.plot(avg_ytrain)\nplt.title(\"Time Plot - Time_to_failure\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1049cac372729fb01a7a0c1ba14b4533ba86adb5"},"cell_type":"code","source":"#results_dict\n#max_value = []\n#for i in tqdm(range(len(avg_ytrain))):\n#    max_value = avg_ytrain[i:i+1]/16.094698\n#    results_dict['min_value'].append(max_value)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"f2b597327069cb900040e593d288934b5adb7e4c"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"28d9501e89df436dbc3e7ab2356e251d930098b9"},"cell_type":"code","source":"#results_dict = pd.DataFrame(results_dict)\n#new = results_dict['min_value'].str.split(\" \")\n#results_dict[\"minvalue_1\"]= new[0] \n#esults_dict[\"minvalue_2\"]= new[1] \n#results_dict[\"minvalue_3\"]= new[2] ","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"511cc073f6be8fa02c7eba656ee495c23004fd83"},"cell_type":"code","source":"#results_dict","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"255007fe68a8859a35550aeca01c5d702cd23544"},"cell_type":"code","source":"plt.plot(avg_ytrain.diff())\nplt.xticks(np.arange(0,10000, step= 500))\nplt.title(\"Time Plot - Time_to_failure Difference\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"056a20b2ff8463797c3894189f2f4404120ce14a"},"cell_type":"code","source":"nlags = 1600\nfig = plt.figure(figsize=(12,8))\nax1 = plt.subplot(2, 2, 3) \nfig = tsaplots.plot_acf(avg_ytrain.diff().dropna(), lags=nlags, ax=ax1,title='ACF for Time_to_failure Difference')\nplt.xticks(np.arange(0,1600, step= 400))\n\nax2 = plt.subplot(2, 2, 4)\nfig = tsaplots.plot_pacf(avg_ytrain.diff().dropna(), lags=nlags, ax=ax2,title='PACF for Time_to_failure Difference')\nplt.xticks(np.arange(0,1600, step= 400))\n\nax3 = plt.subplot(2, 2, 1)\nfig = tsaplots.plot_acf(avg_ytrain, lags=nlags, ax=ax3,title='ACF for Time_to_failure')\nplt.xticks(np.arange(0,1600, step= 400))\n\nax4 = plt.subplot(2, 2, 2)\nfig = tsaplots.plot_pacf(avg_ytrain, lags=nlags, ax=ax4,title='PACF for Time_to_failure')\nplt.xticks(np.arange(0,1600, step= 400))\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"bced83bf3b1ca1b8e7290d66b453deadf2d32df8"},"cell_type":"code","source":"# Ljung-box test for auto-correlation\n_,p=acorr_ljungbox(avg_ytrain.diff().dropna(),lags=10)\nprint('Ljung-Box test p-values for 10-lags: ',p)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"0f22f0486200eceb74b1a5627fad038f068f786f"},"cell_type":"code","source":"data1 = avg_ytrain.diff().dropna()\ndata1 = data1.iloc[:,0].values\nresult = adfuller(data1)\nprint('ADF Statistic: %f' % result[0])\nprint('p-value: %f' % result[1])\nprint('Critical Values:')\nfor key, value in result[4].items():\n    print('\\t%s: %.3f' % (key, value))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"497852a8bd0b3768194f52ba844631a221a51c0c","scrolled":true},"cell_type":"code","source":"model_auto = pm.auto_arima(avg_ytrain, error_action='ignore', trace= True, seasonal=True, \n                            information_criterion='bic')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"e8c4110cdf7eab7b5ef62f201635b196fe3d03da"},"cell_type":"code","source":"model_auto.summary()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"00eafba38daac6e134c741fd452ead7e3f4a48fb"},"cell_type":"code","source":"model = SARIMAX(avg_ytrain, order=(0,1,0))\nmodel_fit = model.fit()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1f733be224f4b41c6868e7d59475717870c79778"},"cell_type":"code","source":"# Ljung-box test for auto-correlation\n_,p=acorr_ljungbox(model_fit.resid,lags=10)\nprint('Ljung-Box test p-values for 10-lags: ',p)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1c457c721a66d2d9010b2a7290c1d9e3648152ed"},"cell_type":"code","source":"plt.plot(model_fit.resid)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"0de22704e46503e5d179713c5ae3e39e826f4db5"},"cell_type":"code","source":"plt.plot(model_fit.forecast(steps= len(avg_ytest)))\nplt.plot(avg_ytest)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"639d5645ce3de13aec9e61c2ea1d67d1066775d0"},"cell_type":"code","source":"pred = model_fit.forecast(steps= len(avg_ytest))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"4d323d29f50573468b2b70b02c6da9470e50e260"},"cell_type":"code","source":"mean_absolute_error(avg_ytest,pred)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"25f8c47e78fd727190f0163855452befedb302a7"},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.6","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}