Skip to contents

Implements the Information Combination (IComb) method for forecast reconciliation, combining information from multiple base forecasts through a regression-based framework that can be estimated using penalized regression techniques. The penalty parameter is estimated using the rolling forecast origin cross-validation.

Usage

icomb(
  models,
  train_size,
  alpha = 1,
  standardize = FALSE,
  standardize_response = FALSE,
  intercept = TRUE,
  lambda = NULL,
  lambda_min_ratio = "expand",
  nlambda = 100,
  maxit = 1e+07,
  thresh = 1e-07,
  exact = TRUE
)

Arguments

models

A column of models in a mable.

train_size

The size of the initial training window.

alpha

The elasticnet mixing parameter, with \(0 \leq \alpha \leq 1\). The penalty is defined as $$(1 - \alpha)/2\|B\|_2^2 + \alpha\|B\|_2$$ alpha = 1 is the group lasso penalty, and alpha = 0 is the ridge penalty.

standardize

Logical flag for x variable standardization, prior to fitting the model sequence. The coefficients are always returned on the original scale. Default is standardize = FALSE.

standardize_response

This allows the user to standardize the response variables. Default is standardize_response = FALSE.

intercept

Should intercepts be fitted (default = TRUE) or set to zero (FALSE).

lambda

A user supplied lambda sequence. Typical usage is to have the program compute its own lambda sequence based on nlambda and lambda_min_ratio. Supplying a value of lambda overrides this. Supply a decreasing sequence of lambda values.

lambda_min_ratio

The smallest value for lambda, as a fraction of lambda_max (the data derived value for which all coefficients are zero). lambda_min_ratio = "expand" (default) sets the ratio as \(10^{-\lfloor \log_{10}(\lambda_{max})\rfloor-2}\) whereas lambda_min_ratio = "glmnet" sets the ratio to the value used in the glmnet package. If nobs < nvars, the default is 0.01, otherwise 1e-04.

nlambda

The number of lambda values. Default is 100.

maxit

Maximum number of passes over the data for all lambda values. Default is \(10^7\).

thresh

Convergence threshold for coordinate descent. Each inner coordinate-descent loop continues until the maximum change in the objective after any coefficient update is less than thresh times the null deviance. Defaults value is 1e-07.

exact

A logical flag indicating whether to use a sequence of lambda values (from lambda_max to lambda_best) when fitting the final model on the entire dataset. The functions in the glmnet package are designed for efficiency by computing the entire regularization path (a sequence of lambda values) using "warm starts", which is often faster than computing a single fit. The default is TRUE.

Value

A 'global' model which is icomb coherent

Note

Missing values are removed prior to applying the information combination method.

References

Nguyen, M., Vahid, F., & Wickramasuriya, S. L. (2025). Hierarchical Forecasting: The Role of Information Combination (Working Paper No. 11/25). Department of Econometrics and Business Statistics, Monash University.

Author

Shanika L Wickramasuriya

Examples

# \donttest{
library(fable)
library(fabletools)
library(tsibble)
library(dplyr)
library(lubridate)
#> 
#> Attaching package: ‘lubridate’
#> The following object is masked from ‘package:tsibble’:
#> 
#>     interval
#> The following objects are masked from ‘package:base’:
#> 
#>     date, intersect, setdiff, union
library(ggtime)

tourism_gts <- tourism |>
  aggregate_key(State * Purpose,
                Trips = sum(Trips))

fit <- tourism_gts |>
  model(base = ETS(Trips)) |>
  reconcile(ols = min_trace(base, method = "ols"),
            icomb = icomb(base, train_size = 75))
fit |>
  forecast(h = "3 years")
#> # A fable: 1,620 x 6 [1Q]
#> # Key:     State, Purpose, .model [135]
#>    State  Purpose  .model Quarter
#>    <chr*> <chr*>   <chr>    <qtr>
#>  1 ACT    Business base   2018 Q1
#>  2 ACT    Business base   2018 Q2
#>  3 ACT    Business base   2018 Q3
#>  4 ACT    Business base   2018 Q4
#>  5 ACT    Business base   2019 Q1
#>  6 ACT    Business base   2019 Q2
#>  7 ACT    Business base   2019 Q3
#>  8 ACT    Business base   2019 Q4
#>  9 ACT    Business base   2020 Q1
#> 10 ACT    Business base   2020 Q2
#> # ℹ 1,610 more rows
#> # ℹ 2 more variables: Trips <dist>, .mean <dbl>

# extracting results from cross-validation
fit |>
  pull(icomb) |>
  attr("icombfit")
#> $fit
#> 
#> Call:  glmnet(x = fitted[, !xconst_var], y = actual, family = "mgaussian",      alpha = alpha, lambda = lambda_subset, standardize = standardize,      intercept = intercept, thresh = thresh, maxit = maxit, standardize.response = standardize_response) 
#> 
#>    Df  %Dev  Lambda
#> 1   0  0.00 5214000
#> 2   1 21.44 4328000
#> 3   1 36.21 3594000
#> 4   1 46.40 2983000
#> 5   1 53.42 2477000
#> 6   1 58.26 2056000
#> 7   1 61.59 1707000
#> 8   1 63.89 1417000
#> 9   1 65.47 1177000
#> 10  1 66.57  976900
#> 11  2 68.13  811100
#> 12  2 71.48  673400
#> 13  2 73.98  559000
#> 14  2 75.84  464100
#> 15  2 77.22  385300
#> 16  2 78.22  319900
#> 17  2 78.96  265600
#> 18  3 79.85  220500
#> 19  3 80.52  183100
#> 20  3 81.03  152000
#> 21  4 81.66  126200
#> 22  4 82.14  104800
#> 23  5 82.60   86970
#> 24  6 83.13   72200
#> 25  7 83.62   59940
#> 26  7 84.07   49770
#> 27  7 84.43   41320
#> 28  8 84.78   34300
#> 29  8 85.31   28480
#> 
#> $info
#> $info$lambda_info
#>      lambda_max     lambda_best lambda_best_idx 
#>      5213568.40        28477.96           29.00 
#> 
#> $info$mse_info
#>   [1] 1099655.87 1053326.76  908724.60  696573.09  523881.87  403153.61
#>   [7]  318529.85  259030.98  217048.55  187304.57  165247.68  145538.53
#>  [13]  128654.45  114305.33  102287.52   92393.97   84399.03   77417.17
#>  [19]   70035.98   64780.06   60320.75   56695.16   53803.64   51565.46
#>  [25]   49173.19   46894.74   45022.94   43995.03   43871.62   44223.33
#>  [31]   44708.91   45474.95   46275.95   47047.06   47769.80   49093.01
#>  [37]   50471.34   51122.21   51896.76   52250.59   53052.00   53388.79
#>  [43]   54106.22   55012.14   55965.56   56120.15   55484.49   55696.13
#>  [49]   58345.38   62822.76   67282.84   72705.08   79534.87   86907.15
#>  [55]   93590.86   99084.41  103147.83  106197.49  108961.67  111330.86
#>  [61]  113867.87  114186.89  111138.07  109689.56  108847.98  108588.72
#>  [67]  108488.50  107513.30  107273.68  105962.62  105818.88  104494.43
#>  [73]  104767.84  104203.54  103953.57  103704.77  103583.99  103275.64
#>  [79]  103277.18  103261.70  103230.00  103213.93  103178.97  103075.87
#>  [85]  103182.03  103109.13  103105.85  103105.90  103121.07  103139.21
#>  [91]  103152.77  103161.35  103163.78  103165.74  103166.76  103168.24
#>  [97]  103169.71  103170.39  103171.62  103171.92
#> 
#> $info$nnzeros
#> [1] 8
#> 
#> 
#> $coefs
#>                     y1            y2            y3            y4           y5
#> intercept 70.943034895 -2.437763e+01 -7.3321160996  0.7957856489 40.029076090
#> V1         0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V2         0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V3         0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V4         0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V5         0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V6         0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V7         0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V8         0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V9         0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V10       -0.005013266 -1.478803e-03 -0.0041404057  0.0061065586 -0.004525916
#> V11        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V12        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V13        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V14        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V15        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V16        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V17        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V18        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V19        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V20        0.007706514 -3.232384e-04  0.0003986825  0.0053699029  0.013151861
#> V21        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V22        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V23        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V24        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V25        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V26        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V27        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V28        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V29        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V30        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V31        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V32        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V33        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V34        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V35       -0.010303225  1.840097e-02 -0.0036034369  0.0003189483  0.004813260
#> V36        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V37        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V38        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V39        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V40        0.000000000  0.000000e+00  0.0000000000  0.0000000000  0.000000000
#> V41        0.006198446  1.096520e-02 -0.0003731595  0.0004677251  0.017258207
#> V42       -0.018359403  7.371283e-03  0.0013338353 -0.0032630964 -0.012917381
#> V43        0.008096280  9.836295e-03  0.0042535117 -0.0002005353  0.021985551
#> V44       -0.001724620 -1.801722e-02  0.0012943982  0.0124966901 -0.005950754
#> V45        0.013074172  4.716511e-03  0.0026365183  0.0025258144  0.022953016
#>                      y6           y7            y8            y9           y10
#> intercept 249.668495857 441.12163907 -78.220023223 875.742110913 1488.31222261
#> V1          0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V2          0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V3          0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V4          0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V5          0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V6          0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V7          0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V8          0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V9          0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V10         0.117109659   0.07631582  -0.017901603   0.100744093    0.27626797
#> V11         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V12         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V13         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V14         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V15         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V16         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V17         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V18         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V19         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V20        -0.043761240  -0.10491505   0.008425145  -0.087365715   -0.22761686
#> V21         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V22         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V23         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V24         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V25         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V26         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V27         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V28         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V29         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V30         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V31         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V32         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V33         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V34         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V35        -0.055533276   0.07465782   0.007109973   0.162871885    0.18910640
#> V36         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V37         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V38         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V39         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V40         0.000000000   0.00000000   0.000000000   0.000000000    0.00000000
#> V41         0.208892787  -0.04443144   0.011472342  -0.015505383    0.16042831
#> V42        -0.053119825   0.21549454  -0.022402240  -0.107067516    0.03290496
#> V43         0.008926483  -0.01903583   0.043091250  -0.006451628    0.02653027
#> V44        -0.059652082  -0.09424432  -0.026021236   0.133091074   -0.04682656
#> V45         0.034460713   0.04492829   0.034206470   0.030369420    0.14396489
#>                     y11           y12           y13           y14           y15
#> intercept -46.700271712 169.108058746  9.4724146293 -12.962758366 118.917443298
#> V1          0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V2          0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V3          0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V4          0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V5          0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V6          0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V7          0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V8          0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V9          0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V10        -0.012050920  -0.026198586  0.0008210498  -0.007136312  -0.044564767
#> V11         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V12         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V13         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V14         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V15         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V16         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V17         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V18         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V19         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V20         0.001474110   0.057070239  0.0016807025   0.009682361   0.069907412
#> V21         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V22         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V23         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V24         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V25         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V26         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V27         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V28         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V29         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V30         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V31         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V32         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V33         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V34         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V35        -0.007596217  -0.082566062 -0.0007626654  -0.009272065  -0.100197010
#> V36         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V37         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V38         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V39         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V40         0.000000000   0.000000000  0.0000000000   0.000000000   0.000000000
#> V41         0.014526103   0.056661178  0.0050914354   0.004585975   0.080864692
#> V42        -0.010934360   0.009231632 -0.0001594632  -0.005431048  -0.007293239
#> V43         0.009875701   0.007887384  0.0041710005   0.005054875   0.026988961
#> V44        -0.008286437  -0.057828413 -0.0020104687  -0.008176497  -0.076301816
#> V45         0.016868651   0.019026182 -0.0006200098   0.009105955   0.044380778
#>                    y16           y17         y18          y19           y20
#> intercept 216.48817687  1.284970e+03 -7.66804117 546.73968328 2040.53030061
#> V1          0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V2          0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V3          0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V4          0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V5          0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V6          0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V7          0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V8          0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V9          0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V10        -0.04418215 -8.290560e-03 -0.02470970  -0.07439055   -0.15157296
#> V11         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V12         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V13         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V14         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V15         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V16         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V17         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V18         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V19         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V20         0.07276304  1.235565e-01  0.02601995   0.08989148    0.31223093
#> V21         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V22         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V23         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V24         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V25         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V26         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V27         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V28         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V29         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V30         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V31         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V32         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V33         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V34         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V35        -0.03618152 -7.976131e-02  0.01137297   0.04566293   -0.05890693
#> V36         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V37         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V38         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V39         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V40         0.00000000  0.000000e+00  0.00000000   0.00000000    0.00000000
#> V41         0.08322825  8.864781e-02  0.01769032  -0.04796887    0.14159751
#> V42        -0.05174187  4.235569e-02 -0.01678168  -0.12051493   -0.14668279
#> V43         0.07921209  2.085252e-02  0.03537536   0.07059340    0.20603338
#> V44        -0.06304589 -3.300805e-02 -0.01287594   0.07479565   -0.03413423
#> V45         0.06342553  7.351321e-03  0.01711370   0.07556513    0.16345568
#>                    y21           y22           y23          y24           y25
#> intercept 78.408973459  2.584391e+02 -1.213975e+00 72.739311107 408.373434977
#> V1         0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V2         0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V3         0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V4         0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V5         0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V6         0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V7         0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V8         0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V9         0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V10        0.011202046  9.921019e-03 -7.312877e-03  0.016143789   0.029953977
#> V11        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V12        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V13        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V14        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V15        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V16        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V17        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V18        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V19        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V20       -0.002144793 -4.792298e-02  2.269337e-03 -0.032396247  -0.080194679
#> V21        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V22        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V23        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V24        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V25        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V26        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V27        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V28        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V29        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V30        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V31        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V32        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V33        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V34        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V35       -0.011128149  5.893339e-02  5.918723e-06  0.002312695   0.050123853
#> V36        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V37        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V38        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V39        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V40        0.000000000  0.000000e+00  0.000000e+00  0.000000000   0.000000000
#> V41        0.031212154 -2.517547e-02 -2.401186e-03 -0.011340219  -0.007704717
#> V42       -0.003921888  3.309587e-02 -6.667667e-03 -0.005249948   0.017256363
#> V43        0.010493915  6.483110e-03  1.285115e-02 -0.010718881   0.019109295
#> V44       -0.011022727  6.423108e-03 -3.488065e-03  0.049548293   0.041460609
#> V45        0.008016710  6.338898e-04  9.623909e-03  0.007915172   0.026189681
#>                    y26           y27           y28           y29           y30
#> intercept -1.049546339 -2.057809e+02  1.056575e+01 -58.944898473 -2.552096e+02
#> V1         0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V2         0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V3         0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V4         0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V5         0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V6         0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V7         0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V8         0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V9         0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V10        0.007385425 -2.416795e-02 -7.637525e-04  -0.003391783 -2.093806e-02
#> V11        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V12        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V13        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V14        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V15        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V16        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V17        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V18        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V19        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V20        0.002018640 -4.202999e-02 -1.008715e-03  -0.004211974 -4.523204e-02
#> V21        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V22        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V23        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V24        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V25        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V26        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V27        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V28        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V29        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V30        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V31        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V32        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V33        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V34        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V35       -0.004581788  1.059441e-01  3.912527e-05   0.002689982  1.040914e-01
#> V36        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V37        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V38        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V39        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V40        0.000000000  0.000000e+00  0.000000e+00   0.000000000  0.000000e+00
#> V41        0.010771166 -7.382189e-02 -1.213424e-04  -0.021284829 -8.445689e-02
#> V42       -0.002735522  5.913782e-02 -1.621243e-03   0.005464012  6.024507e-02
#> V43       -0.007889331 -1.176904e-02  3.946331e-03  -0.008803757 -2.451580e-02
#> V44        0.002613478  3.868333e-02  3.707810e-03   0.021434020  6.643864e-02
#> V45        0.002013248 -3.408386e-03  3.898747e-04   0.006356766  5.351502e-03
#>                    y31           y32           y33           y34           y35
#> intercept 62.198687899 -714.61091607 -1.702412e+02 -163.57105832 -9.862244e+02
#> V1         0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V2         0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V3         0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V4         0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V5         0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V6         0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V7         0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V8         0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V9         0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V10        0.015520468   -0.05061583 -1.574584e-02    0.06049224  9.651038e-03
#> V11        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V12        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V13        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V14        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V15        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V16        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V17        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V18        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V19        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V20        0.028863868   -0.04160222  1.512212e-02   -0.07072925 -6.834548e-02
#> V21        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V22        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V23        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V24        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V25        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V26        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V27        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V28        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V29        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V30        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V31        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V32        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V33        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V34        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V35       -0.003151296    0.31985436 -2.266468e-03    0.12806662  4.425032e-01
#> V36        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V37        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V38        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V39        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V40        0.000000000    0.00000000  0.000000e+00    0.00000000  0.000000e+00
#> V41        0.074021343   -0.12903211  9.309878e-04   -0.05089099 -1.049708e-01
#> V42       -0.051560418    0.22792407 -8.936979e-03   -0.07023378  9.719289e-02
#> V43        0.041080525    0.06770090  4.244510e-02    0.02072147  1.719480e-01
#> V44       -0.023077332   -0.04515068  1.826672e-03    0.10701282  4.061147e-02
#> V45        0.037903265    0.02619784  2.056454e-02    0.05698663  1.416523e-01
#>                     y36           y37           y38           y39           y40
#> intercept -382.57114881 -4.088462e+02 -89.869019931 -2.685739e+02 -1.149860e+03
#> V1           0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V2           0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V3           0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V4           0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V5           0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V6           0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V7           0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V8           0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V9           0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V10         -0.03744962 -1.555748e-02  -0.003102441 -1.834806e-02 -7.445760e-02
#> V11          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V12          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V13          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V14          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V15          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V16          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V17          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V18          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V19          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V20          0.01843943 -1.001705e-02   0.006486048 -6.369357e-03  8.539072e-03
#> V21          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V22          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V23          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V24          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V25          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V26          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V27          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V28          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V29          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V30          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V31          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V32          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V33          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V34          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V35          0.00737682  3.651725e-02  -0.005248087  3.065606e-02  6.930204e-02
#> V36          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V37          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V38          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V39          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V40          0.00000000  0.000000e+00   0.000000000  0.000000e+00  0.000000e+00
#> V41          0.03396843  9.475630e-03   0.004585629 -8.265010e-03  3.976468e-02
#> V42         -0.06533840  2.940502e-02  -0.007119750 -2.885353e-02 -7.190666e-02
#> V43          0.05769118  1.400841e-02   0.014126885  4.060964e-02  1.264361e-01
#> V44         -0.01069452 -1.646316e-03  -0.001264947  3.847205e-02  2.486626e-02
#> V45          0.06741641  4.016973e-02   0.011436573  3.804704e-02  1.570697e-01
#>                    y41          y42           y43          y44           y45
#> intercept 247.38640212 800.02361986 -3.345062e+02 991.96427284 1704.86813118
#> V1          0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V2          0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V3          0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V4          0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V5          0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V6          0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V7          0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V8          0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V9          0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V10         0.05252164  -0.04007238 -7.285557e-02   0.08021998    0.01981367
#> V11         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V12         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V13         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V14         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V15         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V16         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V17         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V18         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V19         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V20         0.08535956  -0.06618382  5.939328e-02  -0.09612880   -0.01755978
#> V21         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V22         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V23         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V24         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V25         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V26         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V27         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V28         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V29         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V30         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V31         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V32         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V33         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V34         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V35        -0.12109865   0.45198049  6.647329e-03   0.36330706    0.70083622
#> V36         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V37         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V38         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V39         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V40         0.00000000   0.00000000  0.000000e+00   0.00000000    0.00000000
#> V41         0.46281869  -0.10671108  3.687502e-02  -0.15020161    0.24278102
#> V42        -0.25771168   0.62401592 -6.235519e-02  -0.33514984   -0.03120079
#> V43         0.20748684   0.09596375  1.602606e-01   0.11080458    0.57451577
#> V44        -0.17489014  -0.20478855 -3.883178e-02   0.42867409    0.01016362
#> V45         0.24317869   0.13961538  9.535158e-02   0.22687192    0.70501757
#> 

# Parallelizing cross-validation
library(future)
plan(multisession, workers = 2)

tourism_gts |>
  model(base = ETS(Trips)) |>
  reconcile(ols = min_trace(base, method = "ols"),
            icomb = icomb(base, train_size = 75)) |>
  forecast(h = "3 years")
#> # A fable: 1,620 x 6 [1Q]
#> # Key:     State, Purpose, .model [135]
#>    State  Purpose  .model Quarter
#>    <chr*> <chr*>   <chr>    <qtr>
#>  1 ACT    Business base   2018 Q1
#>  2 ACT    Business base   2018 Q2
#>  3 ACT    Business base   2018 Q3
#>  4 ACT    Business base   2018 Q4
#>  5 ACT    Business base   2019 Q1
#>  6 ACT    Business base   2019 Q2
#>  7 ACT    Business base   2019 Q3
#>  8 ACT    Business base   2019 Q4
#>  9 ACT    Business base   2020 Q1
#> 10 ACT    Business base   2020 Q2
#> # ℹ 1,610 more rows
#> # ℹ 2 more variables: Trips <dist>, .mean <dbl>
plan(sequential)

# Extracting probabilistic forecasts
fit |>
  forecast(h = "3 years", bootstrap = TRUE, times = 1000) |>
  filter(Purpose == "Holiday", State == "Victoria") |>
  autoplot(filter(tourism_gts, Purpose == "Holiday",
                  State == "Victoria", year(Quarter) > 2010))

# }