tarea ets

library(fpp3)
library(tidyverse)

Serie de tiempo 1

lh <- us_employment |> 
  filter(Title == "Wholesale Trade", year(Month) >= 1985)
lh
# A tsibble: 417 x 4 [1M]
# Key:       Series_ID [1]
       Month Series_ID     Title           Employed
       <mth> <chr>         <chr>              <dbl>
 1 1985 ene. CEU4142000001 Wholesale Trade    4812.
 2 1985 feb. CEU4142000001 Wholesale Trade    4805.
 3 1985 mar. CEU4142000001 Wholesale Trade    4832.
 4 1985 abr. CEU4142000001 Wholesale Trade    4846.
 5 1985 may. CEU4142000001 Wholesale Trade    4867.
 6 1985 jun. CEU4142000001 Wholesale Trade    4905.
 7 1985 jul. CEU4142000001 Wholesale Trade    4907.
 8 1985 ago. CEU4142000001 Wholesale Trade    4915.
 9 1985 sep. CEU4142000001 Wholesale Trade    4907.
10 1985 oct. CEU4142000001 Wholesale Trade    4919.
# ℹ 407 more rows
lh_train <- lh %>% 
  filter(year(Month) <= 2010, Title =="Wholesale Trade")
lh_train
# A tsibble: 312 x 4 [1M]
# Key:       Series_ID [1]
       Month Series_ID     Title           Employed
       <mth> <chr>         <chr>              <dbl>
 1 1985 ene. CEU4142000001 Wholesale Trade    4812.
 2 1985 feb. CEU4142000001 Wholesale Trade    4805.
 3 1985 mar. CEU4142000001 Wholesale Trade    4832.
 4 1985 abr. CEU4142000001 Wholesale Trade    4846.
 5 1985 may. CEU4142000001 Wholesale Trade    4867.
 6 1985 jun. CEU4142000001 Wholesale Trade    4905.
 7 1985 jul. CEU4142000001 Wholesale Trade    4907.
 8 1985 ago. CEU4142000001 Wholesale Trade    4915.
 9 1985 sep. CEU4142000001 Wholesale Trade    4907.
10 1985 oct. CEU4142000001 Wholesale Trade    4919.
# ℹ 302 more rows

Primeros modelos

Entrenamiento de datos

lh_fit <- lh_train %>%
  model(
    Mean = MEAN(Employed),
    `Naïve` = NAIVE(Employed),
    `Seasonal naïve` = SNAIVE(Employed),
    Drift = RW(Employed ~ drift())
  )

lh_fc <- lh_fit %>%
  forecast(h = "9 years")

lh_fc %>%
  autoplot(lh |> filter_index("2002 Jan" ~.), level = NULL) +
  xlab("Year") + ylab("people") +
  ggtitle("Forecasts for employement Wholesale Trade") +
  guides(colour=guide_legend(title="Forecast"))

Errores en el entrenamiento

lh_accu_train <- accuracy(lh_fit) |> 
  arrange(MAE)
lh_accu_train
# A tibble: 4 × 11
  Series_ID   .model .type       ME  RMSE   MAE      MPE  MAPE  MASE RMSSE  ACF1
  <chr>       <chr>  <chr>    <dbl> <dbl> <dbl>    <dbl> <dbl> <dbl> <dbl> <dbl>
1 CEU4142000… Drift  Trai… 2.75e-13  23.8  17.9  0.00127 0.330 0.163 0.179 0.429
2 CEU4142000… Naïve  Trai… 1.95e+ 0  23.9  18.2  0.0373  0.335 0.165 0.180 0.429
3 CEU4142000… Seaso… Trai… 2.03e+ 1 133.  110.   0.367   2.01  1     1     0.993
4 CEU4142000… Mean   Trai… 4.94e-14 331.  289.  -0.375   5.37  2.63  2.49  0.992

Errores en el modelo

lh_accu_fc <- lh_fc |> 
  accuracy(lh) |> 
  arrange(MAE)
Warning: The future dataset is incomplete, incomplete out-of-sample data will be treated as missing. 
3 observations are missing between 2019 oct. and 2019 dic.
lh_accu_fc
# A tibble: 4 × 11
  .model         Series_ID .type    ME  RMSE   MAE   MPE  MAPE  MASE RMSSE  ACF1
  <chr>          <chr>     <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 Drift          CEU41420… Test   208.  224.  210.  3.60  3.64  1.91  1.68 0.908
2 Mean           CEU41420… Test   286.  316.  290.  4.94  5.00  2.63  2.38 0.940
3 Naïve          CEU41420… Test   312.  340.  314.  5.38  5.42  2.85  2.56 0.940
4 Seasonal naïve CEU41420… Test   346.  370.  346.  5.98  5.98  3.14  2.78 0.955
lh_train |> 
  autoplot(Employed)

lh_train |> 
  autoplot(log(Employed))

Descomposiciones

dcmp <- lh_train |> 
  model(
    STL(log(Employed), robust = TRUE)
  ) 

dcmp |> 
  components() |> 
  autoplot()

dcmp |> 
  components() |> 
  ggplot(aes(x = Month, y = season_adjust)) +
  geom_line()

lh_train |> 
  model(
    STL(Employed, robust = TRUE)
  ) |> 
  components() |> 
  autoplot()

Segundos modelos

lh_fit <- lh_train |> 
  model(
    snaive = SNAIVE(Employed),
    ets_ANA = ETS(Employed ~ error("A") + trend("N") + season("A")),
    ets_AAdA = ETS(Employed ~ error("A") + trend("Ad") + season("A")),
    ets_MAdM = ETS(Employed ~ error("M") + trend("Ad") + season("M")),
    ets_ANA_l = ETS(log(Employed) ~ error("A") + trend("N") + season("A")),
    ets_AAdA_l = ETS(log(Employed) ~ error("A") + trend("Ad") + season("A")),
    ets_MAdM_l = ETS(log(Employed) ~ error("M") + trend("Ad") + season("M")),
    stl_ets_A = decomposition_model(
      STL(log(Employed), robust = TRUE),
      ETS(season_year ~ error("A") + trend("N") + season("A")),
      ETS(season_adjust ~ error("A") + trend("Ad") + season("N"))
    ),
    stl_ets_M = decomposition_model(
      STL(log(Employed), robust = TRUE),
      ETS(season_year ~ error("M") + trend("N") + season("M")),
      ETS(season_adjust ~ error("A") + trend("Ad") + season("N"))
    )
  )

lh_fit
# A mable: 1 x 10
# Key:     Series_ID [1]
  Series_ID       snaive      ets_ANA      ets_AAdA      ets_MAdM    ets_ANA_l
  <chr>          <model>      <model>       <model>       <model>      <model>
1 CEU4142000001 <SNAIVE> <ETS(A,N,A)> <ETS(A,Ad,A)> <ETS(M,Ad,M)> <ETS(A,N,A)>
# ℹ 4 more variables: ets_AAdA_l <model>, ets_MAdM_l <model>,
#   stl_ets_A <model>, stl_ets_M <model>

Errores en el entrenamiento

accuracy(lh_fit) |> 
  arrange(MAPE)
# A tibble: 9 × 11
  Series_ID    .model .type       ME   RMSE    MAE      MPE  MAPE   MASE   RMSSE
  <chr>        <chr>  <chr>    <dbl>  <dbl>  <dbl>    <dbl> <dbl>  <dbl>   <dbl>
1 CEU41420000… stl_e… Trai…  2.08e-1 9.41e0   6.94  0.00489 0.128 0.0630  0.0708
2 CEU41420000… ets_A… Trai…  2.08e-1 1.03e1   7.79  0.00531 0.144 0.0707  0.0773
3 CEU41420000… ets_M… Trai…  2.79e-2 1.04e1   8.13  0.00224 0.150 0.0738  0.0781
4 CEU41420000… ets_A… Trai…  3.59e-1 1.04e1   8.14  0.00884 0.150 0.0739  0.0782
5 CEU41420000… ets_M… Trai…  3.09e-1 1.35e1  10.7   0.00798 0.197 0.0971  0.101 
6 CEU41420000… ets_A… Trai…  1.62e+0 1.45e1  11.2   0.0309  0.207 0.102   0.109 
7 CEU41420000… ets_A… Trai…  1.17e+0 1.77e1  11.7   0.0217  0.215 0.106   0.133 
8 CEU41420000… snaive Trai…  2.03e+1 1.33e2 110.    0.367   2.01  1       1     
9 CEU41420000… stl_e… Trai… -3.42e+2 1.48e3 349.   -6.62    6.75  3.17   11.1   
# ℹ 1 more variable: ACF1 <dbl>
lh_fit |> 
  augment() |> 
  features(.innov, ljung_box, lag = 5)
# A tibble: 9 × 4
  Series_ID     .model     lb_stat lb_pvalue
  <chr>         <chr>        <dbl>     <dbl>
1 CEU4142000001 ets_AAdA     92.7      0    
2 CEU4142000001 ets_AAdA_l  104.       0    
3 CEU4142000001 ets_ANA     221.       0    
4 CEU4142000001 ets_ANA_l   479.       0    
5 CEU4142000001 ets_MAdM    244.       0    
6 CEU4142000001 ets_MAdM_l   96.9      0    
7 CEU4142000001 snaive     1374.       0    
8 CEU4142000001 stl_ets_A     2.60     0.762
9 CEU4142000001 stl_ets_M     4.72     0.451
lh_fit |> 
  select(stl_ets_A) |> 
  gg_tsresiduals()

lh_fit |> 
  select(stl_ets_M) |> 
  gg_tsresiduals()

Pronósticos de prueba

lh_fc <- lh_fit |> 
  forecast(h = "9 years")

lh_fc
# A fable: 972 x 5 [1M]
# Key:     Series_ID, .model [9]
   Series_ID     .model     Month       Employed .mean
   <chr>         <chr>      <mth>         <dist> <dbl>
 1 CEU4142000001 snaive 2011 ene. N(5340, 17663) 5340.
 2 CEU4142000001 snaive 2011 feb. N(5327, 17663) 5327 
 3 CEU4142000001 snaive 2011 mar. N(5345, 17663) 5345.
 4 CEU4142000001 snaive 2011 abr. N(5363, 17663) 5363.
 5 CEU4142000001 snaive 2011 may. N(5382, 17663) 5382.
 6 CEU4142000001 snaive 2011 jun. N(5411, 17663) 5411.
 7 CEU4142000001 snaive 2011 jul. N(5412, 17663) 5412.
 8 CEU4142000001 snaive 2011 ago. N(5407, 17663) 5407 
 9 CEU4142000001 snaive 2011 sep. N(5394, 17663) 5394.
10 CEU4142000001 snaive 2011 oct. N(5414, 17663) 5414.
# ℹ 962 more rows
lh_fc |> 
  autoplot(lh, level = NULL, size = 1)

lh_fc |> 
  filter(.model != "stl_ets_M") |>
  autoplot(lh |> filter_index("2010 Jan" ~ .), level = NULL, size = 1)

lh_fc |> 
  filter(.model != "stl_ets_M") |> 
  autoplot(lh |> filter_index("2010 Jan" ~ .), size = 1) +
  facet_wrap(~ .model, ncol = 3) +
  theme(legend.position = "none")

lh_fc |> 
  accuracy(lh) |> 
  arrange(MAPE)
Warning: The future dataset is incomplete, incomplete out-of-sample data will be treated as missing. 
3 observations are missing between 2019 oct. and 2019 dic.
# A tibble: 9 × 11
  .model   Series_ID .type     ME   RMSE   MAE    MPE  MAPE  MASE  RMSSE    ACF1
  <chr>    <chr>     <chr>  <dbl>  <dbl> <dbl>  <dbl> <dbl> <dbl>  <dbl>   <dbl>
1 ets_MAdM CEU41420… Test    129.   144.  130.   2.23  2.24  1.18   1.08  0.948 
2 ets_MAd… CEU41420… Test    181.   195.  181.   3.13  3.14  1.64   1.47  0.948 
3 ets_AAd… CEU41420… Test    200.   218.  200.   3.46  3.46  1.82   1.64  0.953 
4 ets_AAdA CEU41420… Test    300.   325.  300.   5.18  5.18  2.72   2.44  0.957 
5 stl_ets… CEU41420… Test    314.   337.  314.   5.42  5.42  2.85   2.53  0.953 
6 ets_ANA… CEU41420… Test    314.   340.  314.   5.43  5.43  2.85   2.56  0.958 
7 ets_ANA  CEU41420… Test    318.   344.  318.   5.50  5.50  2.89   2.59  0.958 
8 snaive   CEU41420… Test    346.   370.  346.   5.98  5.98  3.14   2.78  0.955 
9 stl_ets… CEU41420… Test  -3201. 18168. 3682. -55.2  63.6  33.4  137.   -0.0373

Errores en el modelo

lh_fc |>
  accuracy(lh) |>
  arrange(MAPE)
Warning: The future dataset is incomplete, incomplete out-of-sample data will be treated as missing. 
3 observations are missing between 2019 oct. and 2019 dic.
# A tibble: 9 × 11
  .model   Series_ID .type     ME   RMSE   MAE    MPE  MAPE  MASE  RMSSE    ACF1
  <chr>    <chr>     <chr>  <dbl>  <dbl> <dbl>  <dbl> <dbl> <dbl>  <dbl>   <dbl>
1 ets_MAdM CEU41420… Test    129.   144.  130.   2.23  2.24  1.18   1.08  0.948 
2 ets_MAd… CEU41420… Test    181.   195.  181.   3.13  3.14  1.64   1.47  0.948 
3 ets_AAd… CEU41420… Test    200.   218.  200.   3.46  3.46  1.82   1.64  0.953 
4 ets_AAdA CEU41420… Test    300.   325.  300.   5.18  5.18  2.72   2.44  0.957 
5 stl_ets… CEU41420… Test    314.   337.  314.   5.42  5.42  2.85   2.53  0.953 
6 ets_ANA… CEU41420… Test    314.   340.  314.   5.43  5.43  2.85   2.56  0.958 
7 ets_ANA  CEU41420… Test    318.   344.  318.   5.50  5.50  2.89   2.59  0.958 
8 snaive   CEU41420… Test    346.   370.  346.   5.98  5.98  3.14   2.78  0.955 
9 stl_ets… CEU41420… Test  -3201. 18168. 3682. -55.2  63.6  33.4  137.   -0.0373

Pronóstico final

lh_fut <- lh |> 
  model(
       ets_MAdM = ETS(Employed ~ error("M") + trend("Ad") + season("M"))
  ) |> 
  forecast(h = "5 years")

lh_fut
# A fable: 60 x 5 [1M]
# Key:     Series_ID, .model [1]
   Series_ID     .model       Month      Employed .mean
   <chr>         <chr>        <mth>        <dist> <dbl>
 1 CEU4142000001 ets_MAdM 2019 oct.  N(5949, 155) 5949.
 2 CEU4142000001 ets_MAdM 2019 nov.  N(5948, 260) 5948.
 3 CEU4142000001 ets_MAdM 2019 dic.  N(5948, 396) 5948.
 4 CEU4142000001 ets_MAdM 2020 ene.  N(5899, 554) 5899.
 5 CEU4142000001 ets_MAdM 2020 feb.  N(5901, 754) 5901.
 6 CEU4142000001 ets_MAdM 2020 mar.  N(5921, 997) 5921.
 7 CEU4142000001 ets_MAdM 2020 abr. N(5942, 1283) 5942.
 8 CEU4142000001 ets_MAdM 2020 may. N(5970, 1617) 5970.
 9 CEU4142000001 ets_MAdM 2020 jun. N(6001, 2003) 6001.
10 CEU4142000001 ets_MAdM 2020 jul. N(6003, 2418) 6003.
# ℹ 50 more rows
lh_fut |> 
  autoplot(lh)

Serie de tiempo 2

jam <- global_economy |> 
  filter(Country == "Jamaica", Year >= 1985) |> 
  select(Country, Population)

jam_train <- jam |> 
  filter(Year <= 2008)

jam_train
# A tsibble: 24 x 3 [1Y]
# Key:       Country [1]
   Country Population  Year
   <fct>        <dbl> <dbl>
 1 Jamaica    2338638  1985
 2 Jamaica    2361720  1986
 3 Jamaica    2379279  1987
 4 Jamaica    2393534  1988
 5 Jamaica    2407720  1989
 6 Jamaica    2424242  1990
 7 Jamaica    2443689  1991
 8 Jamaica    2465362  1992
 9 Jamaica    2488782  1993
10 Jamaica    2513049  1994
# ℹ 14 more rows

Primeros modelos

jam_fit <-jam_train |> 
  model(
    Mean = MEAN(Population),
    `Naïve` = NAIVE(Population),
    Drift = RW(Population ~ drift())
  )
jam_fc <- jam_fit |> 
  forecast(h = '9 years')

jam_fc %>%
  autoplot(jam, level = NULL) +
  xlab("Year") + ylab("Population") +
  ggtitle("Forecasts for Population of Jamaica") +
  guides(colour=guide_legend(title="Forecast"))

Errores en el entrenamiento

jam_accu_train <- accuracy(jam_fit) |> 
  arrange(MAE)
jam_accu_train
# A tibble: 3 × 11
  Country .model .type         ME   RMSE    MAE      MPE  MAPE  MASE RMSSE  ACF1
  <fct>   <chr>  <chr>      <dbl>  <dbl>  <dbl>    <dbl> <dbl> <dbl> <dbl> <dbl>
1 Jamaica Drift  Train…  2.02e-10 3.83e3 3.52e3  0.00150 0.137 0.179 0.192 0.831
2 Jamaica Naïve  Train…  1.96e+ 4 2.00e4 1.96e4  0.764   0.764 1     1     0.831
3 Jamaica Mean   Train… -1.55e-10 1.43e5 1.27e5 -0.314   4.99  6.49  7.17  0.887

Errores en el modelo

jam_accu_fc <- jam_fc |> 
  accuracy(jam) |> 
  arrange(MAE)

jam_accu_fc
# A tibble: 3 × 11
  .model Country .type      ME    RMSE     MAE   MPE  MAPE  MASE RMSSE  ACF1
  <chr>  <fct>   <chr>   <dbl>   <dbl>   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 Drift  Jamaica Test  -38353.  44754.  38353. -1.34  1.34  1.95  2.24 0.670
2 Naïve  Jamaica Test   59796.  65915.  59796.  2.09  2.09  3.05  3.30 0.662
3 Mean   Jamaica Test  279515. 280887. 279515.  9.80  9.80 14.2  14.0  0.662
jam_accu_fc <- jam_fc |> 
  accuracy(jam) |> 
  arrange(MAE)

jam_accu_fc
# A tibble: 3 × 11
  .model Country .type      ME    RMSE     MAE   MPE  MAPE  MASE RMSSE  ACF1
  <chr>  <fct>   <chr>   <dbl>   <dbl>   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 Drift  Jamaica Test  -38353.  44754.  38353. -1.34  1.34  1.95  2.24 0.670
2 Naïve  Jamaica Test   59796.  65915.  59796.  2.09  2.09  3.05  3.30 0.662
3 Mean   Jamaica Test  279515. 280887. 279515.  9.80  9.80 14.2  14.0  0.662
jam_train |> 
  autoplot(Population)

jam_train |> 
  autoplot(log(Population))

Segundos modelos

jam_fit <- jam_train |> 
  model(
    drift = RW(Population ~ drift()),
    ets_ANA = ETS(Population ~ error("A") + trend("N") + season("N")),
    ets_AAdA = ETS(Population ~ error("A") + trend("Ad") + season("N")),
    ets_MAdM = ETS(Population ~ error("M") + trend("Ad") + season("N")),
    ets_ANA_l = ETS(log(Population) ~ error("A") + trend("N") + season("N")),
    ets_AAdA_l = ETS(log(Population) ~ error("A") + trend("Ad") + season("N")),
    ets_MAdM_l = ETS(log(Population) ~ error("M") + trend("Ad") + season("N")),
   
    )

jam_fit
# A mable: 1 x 8
# Key:     Country [1]
  Country         drift      ets_ANA      ets_AAdA      ets_MAdM    ets_ANA_l
  <fct>         <model>      <model>       <model>       <model>      <model>
1 Jamaica <RW w/ drift> <ETS(A,N,N)> <ETS(A,Ad,N)> <ETS(M,Ad,N)> <ETS(A,N,N)>
# ℹ 2 more variables: ets_AAdA_l <model>, ets_MAdM_l <model>

Errores en el entrenamiento

accuracy(jam_fit) |> 
  arrange(MAPE)
# A tibble: 7 × 11
  Country .model     .type         ME   RMSE    MAE     MPE   MAPE   MASE  RMSSE
  <fct>   <chr>      <chr>      <dbl>  <dbl>  <dbl>   <dbl>  <dbl>  <dbl>  <dbl>
1 Jamaica ets_MAdM_l Traini… 4.46e+ 2  1795.  1274. 0.0176  0.0512 0.0649 0.0897
2 Jamaica ets_AAdA_l Traini… 4.07e+ 2  1788.  1292. 0.0163  0.0521 0.0658 0.0894
3 Jamaica ets_MAdM   Traini… 8.03e+ 1  2218.  1621. 0.00331 0.0660 0.0826 0.111 
4 Jamaica ets_AAdA   Traini… 8.57e+ 1  2251.  1635. 0.00346 0.0666 0.0833 0.113 
5 Jamaica drift      Traini… 2.02e-10  3830.  3520. 0.00150 0.137  0.179  0.192 
6 Jamaica ets_ANA_l  Traini… 1.88e+ 4 19581. 18814. 0.733   0.733  0.958  0.979 
7 Jamaica ets_ANA    Traini… 1.54e+ 4 25888. 22270. 0.585   0.880  1.13   1.29  
# ℹ 1 more variable: ACF1 <dbl>
jam_fit |> 
  augment() |> 
  features(.innov, ljung_box, lag = 8)
# A tibble: 7 × 4
  Country .model     lb_stat   lb_pvalue
  <fct>   <chr>        <dbl>       <dbl>
1 Jamaica drift       47.1   0.000000146
2 Jamaica ets_AAdA     5.82  0.667      
3 Jamaica ets_AAdA_l  19.2   0.0139     
4 Jamaica ets_ANA      0.441 1.00       
5 Jamaica ets_ANA_l   13.7   0.0889     
6 Jamaica ets_MAdM     5.06  0.751      
7 Jamaica ets_MAdM_l  22.8   0.00361    
jam_fit |> 
  select(ets_AAdA) |> 
  gg_tsresiduals()

jam_fit |> 
  select(ets_AAdA) |> 
  gg_tsresiduals()

Pronósticos de prueba

jam_fc <- jam_fit |> 
  forecast(h = "9 years")

jam_fc
# A fable: 63 x 5 [1Y]
# Key:     Country, .model [7]
   Country .model   Year          Population    .mean
   <fct>   <chr>   <dbl>              <dist>    <dbl>
 1 Jamaica drift    2009 N(2809752, 1.6e+07) 2809752.
 2 Jamaica drift    2010 N(2829381, 3.3e+07) 2829381.
 3 Jamaica drift    2011 N(2849011, 5.2e+07) 2849011.
 4 Jamaica drift    2012 N(2868641, 7.2e+07) 2868641.
 5 Jamaica drift    2013 N(2888271, 9.3e+07) 2888271.
 6 Jamaica drift    2014 N(2907900, 1.2e+08) 2907900.
 7 Jamaica drift    2015 N(2927530, 1.4e+08) 2927530.
 8 Jamaica drift    2016 N(2947160, 1.7e+08) 2947160.
 9 Jamaica drift    2017   N(3e+06, 1.9e+08) 2966790.
10 Jamaica ets_ANA  2009 N(2790121, 7.3e+08) 2790121.
# ℹ 53 more rows
jam_fc |> 
  autoplot(jam, level = NULL, size = 1)

jam_fc |> 
  autoplot(jam |> filter_index("2003" ~ .), level = NULL, size = 1)

jam_fc |> 
  autoplot(jam |> filter_index("2003" ~ .), size = 1) +
  facet_wrap(~ .model, ncol = 3) +
  theme(legend.position = "none")

jam_fc |> 
  autoplot(jam |> filter_index("2003" ~ .), size = 1) +
  facet_wrap(~ .model, ncol = 3) +
  theme(legend.position = "none")

jam_fc |> 
  accuracy(jam) |> 
  arrange(MAPE)
# A tibble: 7 × 11
  .model    Country .type      ME   RMSE    MAE     MPE   MAPE  MASE RMSSE  ACF1
  <chr>     <fct>   <chr>   <dbl>  <dbl>  <dbl>   <dbl>  <dbl> <dbl> <dbl> <dbl>
1 ets_MAdM… Jamaica Test   -2135.  2673.  2135. -0.0744 0.0744 0.109 0.134 0.703
2 ets_AAdA… Jamaica Test   -3126.  3906.  3126. -0.109  0.109  0.159 0.195 0.692
3 ets_AAdA  Jamaica Test   -7040.  8803.  7040. -0.245  0.245  0.359 0.440 0.678
4 ets_MAdM  Jamaica Test   -7307.  9138.  7307. -0.255  0.255  0.372 0.457 0.677
5 drift     Jamaica Test  -38353. 44754. 38353. -1.34   1.34   1.95  2.24  0.670
6 ets_ANA_l Jamaica Test   59348. 65412. 59348.  2.07   2.07   3.02  3.27  0.662
7 ets_ANA   Jamaica Test   59797. 65916. 59797.  2.09   2.09   3.05  3.30  0.662

Pronóstico final

jam_fut <- jam |> 
  model(
    ets_AAdA = ETS(Population ~ error("A") + trend("Ad") + season("N"))
  ) |> 
  forecast(h = "5 years")

jam_fut
# A fable: 5 x 5 [1Y]
# Key:     Country, .model [1]
  Country .model    Year          Population    .mean
  <fct>   <chr>    <dbl>              <dist>    <dbl>
1 Jamaica ets_AAdA  2018 N(2898996, 4391921) 2898996.
2 Jamaica ets_AAdA  2019   N(2907436, 2e+07) 2907436.
3 Jamaica ets_AAdA  2020 N(2915633, 5.5e+07) 2915633.
4 Jamaica ets_AAdA  2021 N(2923594, 1.1e+08) 2923594.
5 Jamaica ets_AAdA  2022 N(2931327, 2.1e+08) 2931327.
jam_fut |> 
  autoplot(jam)