Visualization and Transformation

Differencing (Attaining Stationarity)

Time Series Display of First Order Differencing

Time Series Display of Second Order Differencing

Model Creation and Evaluation

Parameters of Each Model
Model p d q
arima012 0 1 2
arima110 1 1 0
stepwise 0 1 2
search 0 1 2

Predictions

Forecast Over Prior Data

Appendix: Code

set.seed(34)

aus_retail_series <- aus_retail %>%
  filter(`Series ID` == sample(aus_retail$`Series ID`,1))

#retail <- aus_retail

lambda <- aus_retail_series %>%
  features(Turnover, features = guerrero) %>%
  pull(lambda_guerrero)

transform <- box_cox(aus_retail_series$Turnover,lambda)

ggarrange(autoplot(aus_retail_series,Turnover)+labs(title="Time Series of aus_retail Turnover")+theme(plot.title = element_text(hjust = 0.5)),autoplot(aus_retail_series,transform)+labs(title="Box-Cox Transformed Turnover Series")+theme(plot.title = element_text(hjust = 0.5)),ncol=1)

#lambda


#aus_retail_series <- data.frame(aus_retail_series$Month,aus_retail_series$Turnover)
#aus_retail_series <- ts(aus_retail_series$Turnover, start = c(year(aus_retail_series$Month),month(aus_retail_series$Month)),frequency=12)

aus_retail_diff <- aus_retail_series %>%
  mutate(Turnover_d1 = c(0,diff(transform)))

#autoplot(aus_retail_diff,Turnover_d1)

aus_retail_diff <- aus_retail_diff %>%
  mutate(Turnover_d2 = c(0,diff(Turnover_d1)))

#autoplot(aus_retail_diff,Turnover_d2)

ggarrange(autoplot(aus_retail_series,transform)+labs(title="Box-Cox Transformed Turnover Series")+theme(plot.title = element_text(hjust = 0.5)),autoplot(aus_retail_diff,Turnover_d1)+labs(title="First Order Differencing")+theme(plot.title = element_text(hjust = 0.5)),autoplot(aus_retail_diff,Turnover_d2)+labs(title="Second Order Differencing")+theme(plot.title = element_text(hjust = 0.5)),ncol = 1)



aus_retail_diff %>%
  gg_tsdisplay(Turnover_d1,plot_type = "partial")

## Time Series Display of Second Order Differencing


aus_retail_diff %>%
  gg_tsdisplay(Turnover_d2,plot_type = "partial")



## Model Creation and Evaluation


#aus_retail_series <- data.frame(aus_retail_series$Month,aus_retail_series$Turnover)
#aus_retail_series <- ts(aus_retail_series$Turnover, start = c(year(aus_retail_series$Month),month(aus_retail_series$Month)),frequency=12)

aus_retail_series$Country <- "Australia"

aus_retail_series <- as_tsibble(aus_retail_series[,-c(1,2,3)])

fit <- aus_retail_series %>%
  model(arima012 = ARIMA(Turnover ~ pdq(0,1,2)),
        arima110 = ARIMA(Turnover ~ pdq(1,1,0)),
        stepwise = ARIMA(Turnover),
        search = ARIMA(Turnover, stepwise=FALSE))


fit_summary <- data.frame(rbind(c("arima012",0,1,2),c("arima110",1,1,0),c("stepwise",0,1,2),c("search",0,1,2)))

colnames(fit_summary) <- c("Model","p","d","q")

kbl(fit_summary, longtable = T, booktabs = T, caption = "Parameters of Each Model") %>%
  kable_styling(latex_options = c("repeat_header"))

glance(fit) %>%
  arrange(AICc) %>%
  select(.model:BIC)