[1]:
%run ../initscript.py
HTML("""
<div id="popup" style="padding-bottom:5px; display:none;">
<div>Enter Password:</div>
<input id="password" type="password"/>
<button onclick="done()" style="border-radius: 12px;">Submit</button>
</div>
<button onclick="unlock()" style="border-radius: 12px;">Unclock</button>
<a href="#" onclick="code_toggle(this); return false;">show code</a>
""")
[1]:
[2]:
%run ../../notebooks/loadtsfuncs.py
%matplotlib inline
toggle()
[2]:
Case StudyΒΆ
[3]:
df_drug = pd.read_csv(dataurl+'drug_sales.csv', parse_dates=['date'], index_col='date')
df_drug['year'] = [d.year for d in df_drug.index]
df_drug['month'] = [d.strftime('%b') for d in df_drug.index]
Python code cheat sheet:
Analysis:
df_drug.head()
plot_time_series(df_drug, 'sales', title='Drug Sales')
seasonal_plot(df_drug, ['month','sales'], title='Drug Sales')
boxplot(df_drug, ['month','sales'], title='Drug Sales')
stationarity_test(df_drug.sales, title='Drug Sales')
decomp(df_drug.sales)
detrend(df_drug['sales'])
deseasonalize(df_drug.sales, model, title='Drug Sales')
#set model = 'multiplicative' or 'additive'#
plot_acf_pacf(df_drug.sales, acf_lag=50, pacf_lag=30)
differencing(df_drug, 'sales', title='Drug Sales')
SARIMA fitting and forecast:
sarima_drug = pm.auto_arima(df_drug.sales, start_p=1, start_q=1,
test='adf',
max_p=3, max_q=3, m=12,
start_P=0, seasonal=True,
d=None, D=1, trace=True,
error_action='ignore',
suppress_warnings=True,
stepwise=True)
sarima_drug.summary()
sarima_forcast(sarima_drug, df_drug, 'sales', forecast_periods=24, freq='month')
SARIMAX fitting and forecast:
df_drug = add_seasonal_index(df_drug, 'sales', freq='month', model='multiplicative')
sarimax_drug = pm.auto_arima(df_drug[['sales']], exogenous=df_drug[['seasonal_index']],
start_p=1, start_q=1,
test='adf',
max_p=3, max_q=3, m=12,
start_P=0, seasonal=True,
d=None, D=1, trace=True,
error_action='ignore',
suppress_warnings=True,
stepwise=True)
sarimax_drug.summary()
sarimax_forcast(sarimax_drug, df_drug, 'sales', forecast_periods=24, freq='month')