Examen 1

Author

Ivanna Herrera

library(tidyverse) # data science
library(fpp3) # ts
library(plotly) # interactive plots
library(patchwork) # handling many plots in one figure
library(tidyquant)
library(tsibble)
library(tibble)
ventas <- filter(aus_retail, Industry == "Takeaway food services", State == 
    "Queensland")
ventas
# A tsibble: 441 x 5 [1M]
# Key:       State, Industry [1]
   State      Industry               `Series ID`    Month Turnover
   <chr>      <chr>                  <chr>          <mth>    <dbl>
 1 Queensland Takeaway food services A3349718A   1982 Apr     26.7
 2 Queensland Takeaway food services A3349718A   1982 May     27.3
 3 Queensland Takeaway food services A3349718A   1982 Jun     26.2
 4 Queensland Takeaway food services A3349718A   1982 Jul     25.2
 5 Queensland Takeaway food services A3349718A   1982 Aug     25.6
 6 Queensland Takeaway food services A3349718A   1982 Sep     26.7
 7 Queensland Takeaway food services A3349718A   1982 Oct     28.1
 8 Queensland Takeaway food services A3349718A   1982 Nov     27.6
 9 Queensland Takeaway food services A3349718A   1982 Dec     31.1
10 Queensland Takeaway food services A3349718A   1983 Jan     30.7
# ℹ 431 more rows
ventas |> 
  autoplot(log(Turnover))

ventas_train <- ventas |> 
  filter_index(. ~ "Dec. 2014")

ventas_train
# A tsibble: 393 x 5 [1M]
# Key:       State, Industry [1]
   State      Industry               `Series ID`    Month Turnover
   <chr>      <chr>                  <chr>          <mth>    <dbl>
 1 Queensland Takeaway food services A3349718A   1982 Apr     26.7
 2 Queensland Takeaway food services A3349718A   1982 May     27.3
 3 Queensland Takeaway food services A3349718A   1982 Jun     26.2
 4 Queensland Takeaway food services A3349718A   1982 Jul     25.2
 5 Queensland Takeaway food services A3349718A   1982 Aug     25.6
 6 Queensland Takeaway food services A3349718A   1982 Sep     26.7
 7 Queensland Takeaway food services A3349718A   1982 Oct     28.1
 8 Queensland Takeaway food services A3349718A   1982 Nov     27.6
 9 Queensland Takeaway food services A3349718A   1982 Dec     31.1
10 Queensland Takeaway food services A3349718A   1983 Jan     30.7
# ℹ 383 more rows
ventas_train |> 
  autoplot(Turnover)

lambda <- ventas_train |> 
  features(Turnover, features = guerrero) |> 
  pull(lambda_guerrero)
lambda
[1] 0.1942372
ventas_train |> 
  autoplot(box_cox(Turnover, lambda))

ventas_train |> 
  model(
    stl = STL(box_cox(Turnover, lambda), robust = TRUE)
  ) |> 
  components() |> 
  autoplot()

ventas_fit <- ventas_train |> 
  model(
    snaive_bc = SNAIVE(box_cox(Turnover, lambda)),
    snaive = SNAIVE(Turnover),
    combi_bc = decomposition_model(
      STL(box_cox(Turnover, lambda), robust = TRUE),
      SNAIVE(season_year),
      RW(season_adjust ~ drift())
    ),
    combi = decomposition_model(
      STL(Turnover, robust = TRUE),
      SNAIVE(season_year),
      RW(season_adjust ~ drift())
    )
  )
ventas_fit
# A mable: 1 x 6
# Key:     State, Industry [1]
  State      Industry               snaive_bc   snaive                  combi_bc
  <chr>      <chr>                    <model>  <model>                   <model>
1 Queensland Takeaway food services  <SNAIVE> <SNAIVE> <STL decomposition model>
# ℹ 1 more variable: combi <model>
ventas_fit |> 
  select(snaive_bc) |> 
  gg_tsresiduals()
Warning: Removed 12 rows containing missing values (`geom_line()`).
Warning: Removed 12 rows containing missing values (`geom_point()`).
Warning: Removed 12 rows containing non-finite values (`stat_bin()`).

ventas_fit |> 
  select(snaive) |> 
  gg_tsresiduals()
Warning: Removed 12 rows containing missing values (`geom_line()`).
Warning: Removed 12 rows containing missing values (`geom_point()`).
Warning: Removed 12 rows containing non-finite values (`stat_bin()`).

ventas_fit |> 
  select(combi) |> 
  gg_tsresiduals()
Warning: Removed 12 rows containing missing values (`geom_line()`).
Warning: Removed 12 rows containing missing values (`geom_point()`).
Warning: Removed 12 rows containing non-finite values (`stat_bin()`).

ventas_fit |> 
  select(combi_bc) |> 
  gg_tsresiduals()
Warning: Removed 12 rows containing missing values (`geom_line()`).
Warning: Removed 12 rows containing missing values (`geom_point()`).
Warning: Removed 12 rows containing non-finite values (`stat_bin()`).

ventas_fit |> 
  augment() |> 
  features(.innov, ljung_box, dof = 0, lag = 24)
# A tibble: 4 × 5
  State      Industry               .model    lb_stat lb_pvalue
  <chr>      <chr>                  <chr>       <dbl>     <dbl>
1 Queensland Takeaway food services combi       159.   0       
2 Queensland Takeaway food services combi_bc     91.6  7.92e-10
3 Queensland Takeaway food services snaive     1073.   0       
4 Queensland Takeaway food services snaive_bc   988.   0       
accuracy(ventas_fit) |> 
  arrange(MAPE)
# A tibble: 4 × 12
  State      Industry .model .type      ME  RMSE   MAE     MPE  MAPE  MASE RMSSE
  <chr>      <chr>    <chr>  <chr>   <dbl> <dbl> <dbl>   <dbl> <dbl> <dbl> <dbl>
1 Queensland Takeawa… combi… Trai… -0.0565  5.71  4.05 -0.0488  2.89 0.309 0.324
2 Queensland Takeawa… combi  Trai…  0.0201  7.07  4.74 -0.217   3.23 0.361 0.401
3 Queensland Takeawa… snaiv… Trai…  9.06   17.6  13.1   6.94    9.44 1     1    
4 Queensland Takeawa… snaive Trai…  9.06   17.6  13.1   6.94    9.44 1     1    
# ℹ 1 more variable: ACF1 <dbl>
ventas_fc <- ventas_fit |> 
  forecast(h = "5 years")

ventas_fc
# A fable: 240 x 6 [1M]
# Key:     State, Industry, .model [4]
   State      Industry               .model       Month        Turnover .mean
   <chr>      <chr>                  <chr>        <mth>          <dist> <dbl>
 1 Queensland Takeaway food services snaive_bc 2015 Jan t(N(11, 0.094))  322.
 2 Queensland Takeaway food services snaive_bc 2015 Feb t(N(10, 0.094))  276.
 3 Queensland Takeaway food services snaive_bc 2015 Mar t(N(11, 0.094))  308.
 4 Queensland Takeaway food services snaive_bc 2015 Apr t(N(11, 0.094))  308.
 5 Queensland Takeaway food services snaive_bc 2015 May t(N(11, 0.094))  314.
 6 Queensland Takeaway food services snaive_bc 2015 Jun t(N(10, 0.094))  304.
 7 Queensland Takeaway food services snaive_bc 2015 Jul t(N(11, 0.094))  325.
 8 Queensland Takeaway food services snaive_bc 2015 Aug t(N(11, 0.094))  322.
 9 Queensland Takeaway food services snaive_bc 2015 Sep t(N(11, 0.094))  320.
10 Queensland Takeaway food services snaive_bc 2015 Oct t(N(11, 0.094))  325.
# ℹ 230 more rows
ventas_fc |> 
  autoplot(ventas |> filter_index("Jan. 2003" ~ .), level = NULL)

ventas_fc |> 
  accuracy(ventas) |> 
  arrange(MAPE)
Warning: The future dataset is incomplete, incomplete out-of-sample data will be treated as missing. 
12 observations are missing between 2019 Jan and 2019 Dec
# A tibble: 4 × 12
  .model  State Industry .type     ME  RMSE   MAE    MPE  MAPE  MASE RMSSE  ACF1
  <chr>   <chr> <chr>    <chr>  <dbl> <dbl> <dbl>  <dbl> <dbl> <dbl> <dbl> <dbl>
1 snaive  Quee… Takeawa… Test   -4.43  8.87  7.02  -1.49  2.28 0.534 0.503 0.455
2 snaive… Quee… Takeawa… Test   -7.61 10.6   8.77  -2.52  2.87 0.668 0.604 0.420
3 combi   Quee… Takeawa… Test  -33.5  35.8  33.5  -10.9  10.9  2.55  2.03  0.484
4 combi_… Quee… Takeawa… Test  -66.9  71.9  66.9  -21.6  21.6  5.09  4.08  0.893
ventas |> 
  model(
    combi_bc = decomposition_model(
      STL(box_cox(Turnover, lambda), robust = TRUE),
      SNAIVE(season_year),
      RW(season_adjust ~ drift())
    )
  ) |> 
  
  forecast(h = "5 years") |> 
  autoplot(ventas)