import quandl
import warnings
import itertools
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_style('whitegrid')
sns.set_context('talk')
from statsmodels.tsa.seasonal import seasonal_decompose
from arima_utils import ad_fuller_test, plot_rolling_stats
from arima_utils import plot_acf_pacf, arima_gridsearch_cv
params = {'legend.fontsize': 'x-large',
'figure.figsize': (15, 5),
'axes.labelsize': 'x-large',
'axes.titlesize':'x-large',
'xtick.labelsize':'x-large',
'ytick.labelsize':'x-large'}
%matplotlib inline
plt.rcParams.update(params)
# specify to ignore warning messages
warnings.filterwarnings("ignore")
df = quandl.get("BUNDESBANK/BBK01_WT5511", end_date="2017-07-31")
print(df.shape)
new_df = df.reindex(pd.date_range(df.index.min(),
df.index.max(),
freq='D')).fillna(method='ffill')
print(new_df.shape)
#close_series = new_df.Close
new_df.plot(figsize=(15, 6))
plt.show()
decompose = seasonal_decompose(new_df.Value.interpolate())
decompose.plot()
# Original Series
ad_fuller_test(new_df.Value)
plot_rolling_stats(new_df.Value)
log_series = np.log(new_df.Value)
ad_fuller_test(log_series)
plot_rolling_stats(log_series)
# Using log series with a shift to make it stationary
log_series_shift = log_series - log_series.shift()
log_series_shift = log_series_shift[~np.isnan(log_series_shift)]
ad_fuller_test(log_series_shift)
plot_rolling_stats(log_series_shift)
plot_acf_pacf(log_series_shift)
Log Differenced series seems stationary, same is visible through ACF and PACF plots
new_df['log_series'] = log_series
new_df['log_series_shift'] = log_series_shift
results_dict = arima_gridsearch_cv(new_df.log_series,cv_splits=5)