Chapter 9 Questions and answers

library(tidyverse)
library(fpp3)
library(ggplot2)
library(rio)
library(urca)
library(imputeTS)

9.1 Multiseasonality

bank_calls
## # A tsibble: 27,716 x 2 [5m] <UTC>
##    DateTime            Calls
##    <dttm>              <dbl>
##  1 2003-03-03 07:00:00   111
##  2 2003-03-03 07:05:00   113
##  3 2003-03-03 07:10:00    76
##  4 2003-03-03 07:15:00    82
##  5 2003-03-03 07:20:00    91
##  6 2003-03-03 07:25:00    87
##  7 2003-03-03 07:30:00    75
##  8 2003-03-03 07:35:00    89
##  9 2003-03-03 07:40:00    99
## 10 2003-03-03 07:45:00   125
## # ℹ 27,706 more rows
bank_calls |>
  autoplot(Calls)

calls_t <- bank_calls |>
          mutate(t = row_number()) |>
          as_tsibble(index = t)

calls_t
## # A tsibble: 27,716 x 3 [1]
##    DateTime            Calls     t
##    <dttm>              <dbl> <int>
##  1 2003-03-03 07:00:00   111     1
##  2 2003-03-03 07:05:00   113     2
##  3 2003-03-03 07:10:00    76     3
##  4 2003-03-03 07:15:00    82     4
##  5 2003-03-03 07:20:00    91     5
##  6 2003-03-03 07:25:00    87     6
##  7 2003-03-03 07:30:00    75     7
##  8 2003-03-03 07:35:00    89     8
##  9 2003-03-03 07:40:00    99     9
## 10 2003-03-03 07:45:00   125    10
## # ℹ 27,706 more rows
mod <- calls_t |>
  model(stl_decomp = STL(Calls ~ season(period = 169) + season(period = 169 * 5)))

mod |>
  components() |>
  autoplot()

9.2 Croston’s Algorithm

Generate data.

n_obs <- 30
sales <- tibble(t = 1:n_obs,
                volume = rpois(n = n_obs, 1.2))
sales_ts <- as_tsibble(sales,
                       index = t)

mods <- sales_ts |>
  model(crost = CROSTON(volume))

frcst <- mods |>
  forecast(h = 5)

frcst |>
  autoplot()