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)Examen 1
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)