Advertisement
Vibely

project3.py

Jun 23rd, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.62 KB | None | 0 0
  1. import pandas as pd
  2. import statsmodels.tsa.stattools as ts
  3. import statsmodels.graphics.tsaplots
  4. import statsmodels.api as sm
  5. import matplotlib.pyplot as plt
  6.  
  7. def data_reader(file):
  8.     data = pd.read_excel(file, skiprows=10)
  9.     return data
  10.  
  11.  
  12. def augdfuller():
  13.     data = data_reader('CSUSHPISA.xls')
  14.     print(ts.adfuller(data['CSUSHPISA'], maxlag=1))
  15.  
  16.  
  17. def arima():
  18.     data = data_reader('CSUSHPISA.xls')
  19.     diff = data['CSUSHPISA'] - data['CSUSHPISA'].shift()
  20.     diff = data['CSUSHPISA']
  21.     fig = plt.figure(figsize=(12, 8))
  22.     ax1 = fig.add_subplot(311)
  23.     fig = statsmodels.graphics.tsaplots.plot_acf(diff, lags=200, ax=ax1)
  24.     ax2 = fig.add_subplot(312)
  25.     fig = statsmodels.graphics.tsaplots.plot_pacf(diff, lags=200, ax=ax2)
  26.     ax3 = fig.add_subplot(313)
  27.     fig = plt.plot(diff)
  28.     plt.show()
  29.  
  30.  
  31. def arma():
  32.     from statsmodels.tsa.arima_model import _arma_predict_out_of_sample
  33.     data = data_reader('CSUSHPISA.xls')
  34.     diff = data['CSUSHPISA'] - data['CSUSHPISA'].shift()
  35.     diff = data['CSUSHPISA']
  36.     res = sm.tsa.ARMA(diff.values, (1, 0)).fit()
  37.     params = res.params
  38.     residuals = res.resid
  39.     p = res.k_ar
  40.     q = res.k_ma
  41.     k_exog = res.k_exog
  42.     k_trend = res.k_trend
  43.     steps = 4
  44.  
  45.     print(_arma_predict_out_of_sample(params, steps, residuals, p, q, k_trend, k_exog, endog=diff.values, exog=None,
  46.                                       start=len(diff.values)))
  47.  
  48.  
  49. def main():
  50.     print('Adfuller tests : \n')
  51.     augdfuller()
  52.     print('Arima model : \n')
  53.     arima()
  54.     print('Arma model : \n')
  55.     arma_x = arma()
  56.  
  57.  
  58. if __name__ == '__main__':
  59.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement