Chapter 20 (PART) Forecasting

20.1 Producing forecasts

fit %>% forecast(h = "3 years") -> fcast3yrs

fcast3yrs
## # A fable: 789 x 5 [1Y]
## # Key:     Country, .model [263]
##    Country        .model       Year                 GDP         .mean
##    <fct>          <chr>       <dbl>              <dist>         <dbl>
##  1 Afghanistan    trend_model  2018 N(1.6e+10, 1.3e+19)  16205101654.
##  2 Afghanistan    trend_model  2019 N(1.7e+10, 1.3e+19)  16511878141.
##  3 Afghanistan    trend_model  2020 N(1.7e+10, 1.3e+19)  16818654627.
##  4 Albania        trend_model  2018 N(1.4e+10, 3.9e+18)  13733734164.
##  5 Albania        trend_model  2019 N(1.4e+10, 3.9e+18)  14166852711.
##  6 Albania        trend_model  2020 N(1.5e+10, 3.9e+18)  14599971258.
##  7 Algeria        trend_model  2018 N(1.6e+11, 9.4e+20) 157895153441.
##  8 Algeria        trend_model  2019 N(1.6e+11, 9.4e+20) 161100952126.
##  9 Algeria        trend_model  2020 N(1.6e+11, 9.4e+20) 164306750811.
## 10 American Samoa trend_model  2018 N(6.8e+08, 1.7e+15)    682475000 
## # … with 779 more rows
fcast3yrs %>% filter(Country == "Sweden", Year == 2020) %>% str()
## fable [1 × 5] (S3: fbl_ts/tbl_ts/tbl_df/tbl/data.frame)
##  $ Country: Factor w/ 263 levels "Afghanistan",..: 232
##  $ .model : chr "trend_model"
##  $ Year   : num 2020
##  $ GDP    : dist [1:1] 
##   ..$ 3:List of 2
##   .. ..$ mu   : num 5.45e+11
##   .. ..$ sigma: num 5.34e+10
##   .. ..- attr(*, "class")= chr [1:2] "dist_normal" "dist_default"
##   ..@ vars: chr "GDP"
##  $ .mean  : num 5.45e+11
##  - attr(*, "key")= tibble [1 × 3] (S3: tbl_df/tbl/data.frame)
##   ..$ Country: Factor w/ 263 levels "Afghanistan",..: 232
##   ..$ .model : chr "trend_model"
##   ..$ .rows  : list<int> [1:1] 
##   .. ..$ : int 1
##   .. ..@ ptype: int(0) 
##   ..- attr(*, ".drop")= logi TRUE
##  - attr(*, "index")= chr "Year"
##   ..- attr(*, "ordered")= logi TRUE
##  - attr(*, "index2")= chr "Year"
##  - attr(*, "interval")= interval [1:1] 1Y
##   ..@ .regular: logi TRUE
##  - attr(*, "response")= chr "GDP"
##  - attr(*, "dist")= chr "GDP"
##  - attr(*, "model_cn")= chr ".model"
fcast3yrs %>% 
  filter(Country=="Sweden") %>%
  autoplot(global_economy) +
  ggtitle("GDP for Sweden") + ylab("$US billions")