| Literature DB >> 35938053 |
Afshin Ashofteh1, Jorge M Bravo2,3, Mercedes Ayuso4.
Abstract
Quantifying and analyzing excess mortality in crises such as the ongoing COVID-19 pandemic is crucial for policymakers. Traditional measures fail to take into account differences in the level, long-term secular trends, and seasonal patterns in all-cause mortality across countries and regions. This paper develops and empirically investigates the forecasting performance of a novel, flexible and dynamic ensemble learning with a model selection strategy (DELMS) for the seasonal time series forecasting of monthly respiratory disease death data across a pool of 61 heterogeneous countries. The strategy is based on a Bayesian model averaging (BMA) of heterogeneous time series methods involving both the selection of the subset of best forecasters (model confidence set), the identification of the best holdout period for each contributed model, and the determination of optimal weights using out-of-sample predictive accuracy. A model selection strategy is also developed to remove the outlier models and to combine the models with reasonable accuracy in the ensemble. The empirical outcomes of this large set of experiments show that the accuracy of the BMA approach is significantly improved with DELMS when selecting a flexible and dynamic holdout period and removing the outlier models. Additionally, the forecasts of respiratory disease deaths for each country are highly accurate and exhibit a high correlation (94%) with COVID-19 deaths in 2020.Entities:
Keywords: Bayesian model averaging (BMA); Ensemble learning; Forecasting; Layered learning; Machine learning; Multiple learning processes; Panel data; Respiratory disease deaths; SARS-CoV-2; Time series
Year: 2022 PMID: 35938053 PMCID: PMC9341166 DOI: 10.1016/j.asoc.2022.109422
Source DB: PubMed Journal: Appl Soft Comput ISSN: 1568-4946 Impact factor: 8.263
Fig. 1Graphical overview of the dynamic ensemble learning strategy.
Fig. 2Proposed ensemble learning strategy.
Pseudocode of the proposed ensemble strategy.
| INPUT panel time series (panel members | |
| OUTPUT ensemble model | |
| 1. | StatExplore time series decomposition |
| 2. | IMPUTE[missing] |
| 3. | First_year |
| 4. | Last_year |
| 5. | Target_year |
| 6. | Confidence_level |
| 7. | Holdout_set |
| 8. | Ensemble_criteria_for_computing_weights |
| 9. | Set.seed() |
| 10. | Model_list |
| 11. | FUNCTION model_weights (error) |
| 12. | Pr |
| 13. | exp(-abs(pr))/sum(exp(-abs(pr))) |
| 14. | # First loop for selecting country |
| 15. | For each panel in list of countries do |
| 16. | { |
| 17. | SET panel.data |
| 18. | SET Year_min |
| 19. | panel_data |
| 20. | SET (START of the run-time calculation) |
| 21. | # Second loop for selecting holdouts |
| 22. | For each holdout in Holdout_set do |
| 23. | { |
| 24. | IF ( ymax-ho+1 |
| 25. | ELSE |
| 26. | SET train_dataset WINDOW (START |
| 27. | SET test_dataset WINDOW (START |
| 28. | FIT models in Model_list |
| 29. | CALCULATE accuracy (model , holdout) |
| 30. | IF accuracy (model[holdout]) > last_accuracy (model[holdout – 1]) THEN |
| 31. | SET model |
| 32. | ELSE |
| 33. | SET model |
| 34. | } |
| 35. | CALCULATE error(ALL models), min_error(ALL models), max_error(ALL models) |
| 36. | CALCULATE id_error |
| 37. | FOR model in Model_list |
| 38. | { |
| 39. | IF (error_model > id_error) THEN |
| 40. | PRINT (“Model is excluded!”) |
| 41. | ELSE |
| 42. | ADD model into selected_model_list |
| 43. | } |
| 44. | # The proposed model ensemble (DELMS) |
| 45. | IF selected_model_list |
| 46. | ELSE |
| 47. | { |
| 48. | CALCULATE model_weights for ensemble |
| 49. | SET First_year based on the model with min_holdouts |
| 50. | SET First_month based on the model with min_holdouts |
| 51. | CALCULATE ENS as Ensemble Model |
| 52. | SET (END of the run-time calculation) |
| 53. | } |
| 54. | # The outputs |
| 55. | PRINT GRAPHS |
| 56. | SAVE OUTPUTS |
| 57. | } |
Algorithms and hyperparameter choices.
| ID | Algorithm | Parameters | Value |
|---|---|---|---|
| ETS | Exponential smoothing state space model | Model | {ETS, TBATS} |
| SARIMA | Seasonal auto-regressive integrated moving average model | Auto | “auto” |
| STL | Seasonal trend decomposition using Loess | lambda | “auto” |
| NNAR | Neural network model to a time series | P | 2 |
| SNAIVE | Seasonal naïve | drift | F |
| HWM | Holt-Winters’ multiplicative method | Seasonal | Multiplicative |
| HWA | Holt-Winters’ additive method | Seasonal | Additive |
| MLP | Multilayer perceptron for time series | Comb | Mode |
| ELM | Extreme learning machines | type | Lasso |
| SSA | Singular spectrum analysis | Kind | 1d-ssa |
| RWF | Random walk forecasts | Drift | F |
The ETS method with automatic and ZZA parameter setting from the forecast statistical software R package [48], and the TBATS method, which includes Box–Cox transformation, ARMA errors, trend and seasonal components [49].
Respiratory disease death data: Criteria used to rank countries by data quality.
| Rank | Evaluation | Description by World Health Organization |
|---|---|---|
| 1 | Excellent quality | These countries may be compared, and time series may be used for priority setting and policy evaluation. |
| 2 | Moderate quality | Data have low completeness and/or issues with cause-of-death assignment, which likely affect estimated deaths by cause and time trends. Comparisons between countries should be interpreted with caution. |
| 3 | Low quality | Data have severe quality issues. Comparisons between countries should be interpreted with caution. |
| 4 | Unacceptable | Death registration data are unavailable or unusable due to quality issues. Estimates may be used for priority setting; however, they are not likely to be informative for policy evaluation or comparisons between countries. |
| 5 | Ignorable | Data should be ignored. |
Metadata of the code of the disease categorized as a respiratory disease.
| Code | Description by World Health Organization |
|---|---|
| 380 | Respiratory infections (This code is the aggregate of 390 and 400) |
| 390 | Lower respiratory infections |
| 400 | Upper respiratory infections |
| 410 | Otitis media: Acute otitis media (AOM) is a common complication of upper respiratory tract infection whose pathogenesis involves both viruses and bacteria. |
Ranking of the models and ensembles according to the accuracy measure.
(1) Fixed holdout column for the first row (BMA) shows the SMAPE for the Bayesian model averaging approach with fixed holdout. Rest of rows show individual models. (2) and (3) represent the methods proposed herein.
Fig. 3Comparing the accuracy of the models.
Results of Wilcoxon signed rank test.
| Compared models | Wilcoxon signed-rank statistic | |
|---|---|---|
| DELMS versus BMA(ho | 0.01548** |
** implies the -value is lower than .
Rate of contribution of each model in the DELMS.
| Models | Exclusion frequency of the models | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| from the selection layer for each holdout | Rank | ||||||||
| ho | ho | ho | Ave. | ||||||
| Freq. | Prop. (%) | Freq. | Prop. (%) | Freq. | Prop. (%) | Freq. | Prop. (%) | ||
| ETS | 10 | 4.61 | 8 | 3.56 | 8 | 4.30 | 9 | 4.31 | 1 |
| TBATS | 12 | 5.53 | 13 | 5.78 | 9 | 4.84 | 11 | 5.26 | 2 |
| STL | 13 | 5.99 | 11 | 4.89 | 11 | 5.91 | 12 | 5.74 | 3 |
| SARIMA | 13 | 5.99 | 13 | 5.78 | 14 | 7.53 | 13 | 6.22 | 4 |
| SNAIVE | 18 | 8.29 | 13 | 5.78 | 14 | 7.53 | 15 | 7.18 | 5 |
| HWA | 13 | 5.99 | 19 | 8.44 | 17 | 9.14 | 16 | 7.66 | 6 |
| HWM | 19 | 8.76 | 17 | 7.56 | 17 | 9.14 | 18 | 8.61 | 7 |
| NNAR | 23 | 10.60 | 21 | 9.33 | 13 | 6.99 | 19 | 9.09 | 8 |
| MLP | 22 | 10.14 | 24 | 10.67 | 14 | 7.53 | 20 | 9.57 | 9 |
| ELM | 17 | 7.83 | 28 | 12.44 | 18 | 9.68 | 21 | 10.05 | 10 |
| SSA | 27 | 12.44 | 21 | 9.33 | 18 | 9.68 | 22 | 10.53 | 11 |
| RWF | 30 | 13.82 | 37 | 16.44 | 33 | 17.74 | 33 | 15.79 | 12 |
Exclusion frequency of the models for the ensemble with dynamic holdouts.
| TBATS | STL | ETS | HWA | SARIMA | SNAIVE | HWM | ELM | MLP | SSA | NNAR | RWF | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Frequency | 13 | 15 | 17 | 17 | 18 | 19 | 19 | 21 | 23 | 25 | 29 | 37 |
| Proportion (%) | 5 | 6 | 7 | 7 | 7 | 8 | 8 | 8 | 9 | 10 | 11 | 14 |
| Rank | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
Fig. 4BMA model confidence set and estimated weights per country.
Effect of the methodology on run-time and computational efficiency.
| Models | Run-time analysis to obtain ensemble model (in mins) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Fixed holdout | Fixed holdout + Model selection | Dynamic holdouts + Model selection (DELMS) | ||||||||||||
| ho | ho | ho | Ave. | ho | ho | ho | Ave. | ho | ho | ho | Ave. | |||
| ART | 2.97 | 2.86 | 2.39 | 2.74 | 3.03 | 2.65 | 2.41 | 2.70 | 3.29 | 2.96 | 2.64 | 2.96 | ||
| STD | 0.72 | 0.72 | 0.52 | 0.65 | 0.70 | 0.60 | 0.54 | 0.61 | 0.84 | 0.71 | 0.70 | 0.75 | ||
| LCL | 2.79 | 2.68 | 2.26 | 2.58 | 2.85 | 2.50 | 2.27 | 2.54 | 3.08 | 2.78 | 2.46 | 2.77 | ||
| UCL | 3.15 | 3.04 | 2.52 | 2.90 | 3.21 | 2.80 | 2.55 | 2.85 | 3.50 | 3.14 | 2.82 | 3.15 | ||
Notes: ART: Average run-time, STD: Standard deviation, LCL: Lower confidence limit, UCL: Upper confidence limit.
Comparison between forecasting deaths for respiratory diseases and actual COVID19 deaths.
| Row | Country | Alpha-3 | Country No | Population | RD TD | COVID TD | Standardized RD TD | Standardized COVID TD |
|---|---|---|---|---|---|---|---|---|
| 1 | Armenia | ARM | 51 | 2957.728 | 83 | 2850 | −0.417 | −0.297 |
| 2 | Australia | AUS | 36 | 25203.2 | 16554 | 909 | 2.288 | −0.337 |
| 3 | Austria | AUT | 40 | 8955.108 | 234 | 6214 | −0.392 | −0.227 |
| 4 | Azerbaijan | AZE | 31 | 10047.719 | 294 | 2703 | −0.382 | −0.3 |
| 5 | Bahamas | BHS | 44 | 389.486 | 21 | 170 | −0.427 | −0.352 |
| 6 | Belarus | BLR | 112 | 9452.409 | 205 | 153 | −0.397 | −0.353 |
| 7 | Belgium | BEL | 56 | 11539.326 | 1571 | 19693 | −0.172 | 0.052 |
| 8 | Bulgaria | BGR | 100 | 7000.117 | 412 | 7644 | −0.363 | −0.198 |
| 9 | Canada | CAN | 124 | 37411.038 | 1766 | 15679 | −0.14 | −0.031 |
| 10 | Chile | CHL | 152 | 18952.035 | 992 | 16724 | −0.268 | −0.01 |
| 11 | Costa Rica | CRI | 188 | 5047.561 | 170 | 2185 | −0.403 | −0.311 |
| 12 | Croatia | HRV | 191 | 4130.299 | 68 | 4072 | −0.419 | −0.272 |
| 13 | Cuba | CUB | 192 | 11333.484 | 1689 | 146 | −0.153 | −0.353 |
| 14 | Cyprus | CYP | 196 | 1198.574 | 19 | 129 | −0.427 | −0.353 |
| 15 | Czechia | CZE | 203 | 10689.213 | 738 | 11960 | −0.309 | −0.108 |
| 16 | Denmark | DNK | 208 | 5771.877 | 595 | 1345 | −0.333 | −0.328 |
| 17 | Egypt | EGY | 818 | 100388.076 | 4626 | 7741 | 0.329 | −0.196 |
| 18 | El Salvador | SLV | 222 | 6453.55 | 452 | 1351 | −0.356 | −0.328 |
| 19 | Estonia | EST | 233 | 1325.649 | 68 | 244 | −0.419 | −0.351 |
| 20 | Finland | FIN | 246 | 5532.159 | 53 | 561 | −0.422 | −0.344 |
| 21 | France | FRA | 250 | 65129.731 | 4733 | 64543 | 0.347 | 0.98 |
| 22 | Germany | DEU | 276 | 83517.046 | 5815 | 34272 | 0.524 | 0.354 |
| 23 | Greece | GRC | 300 | 10473.452 | 2000 | 4921 | −0.102 | −0.254 |
| 24 | Guatemala | GTM | 320 | 17581.476 | 1726 | 4827 | −0.147 | −0.256 |
| 25 | Hungary | HUN | 348 | 9684.68 | 344 | 9884 | −0.374 | −0.151 |
| 26 | Iceland | ISL | 352 | 339.037 | 17 | 29 | −0.428 | −0.355 |
| 27 | Ireland | IRL | 372 | 4882.498 | 316 | 2252 | −0.379 | −0.309 |
| 28 | Italy | ITA | 380 | 60550.092 | 4792 | 74985 | 0.356 | 1.196 |
| 29 | Japan | JPN | 392 | 126860.299 | 39818 | 3548 | 6.107 | −0.282 |
| 30 | Kuwait | KWT | 414 | 4207.077 | 291 | 937 | −0.383 | −0.337 |
| 31 | Kyrgyzstan | KGZ | 417 | 6415.851 | 253 | 1359 | −0.389 | −0.328 |
| 32 | Latvia | LVA | 428 | 1906.74 | 103 | 668 | −0.414 | −0.342 |
| 33 | Lithuania | LTU | 440 | 2759.631 | 185 | 1644 | −0.4 | −0.322 |
| 34 | Maldives | MDV | 462 | 530.957 | 5 | 48 | −0.43 | −0.355 |
| 35 | Malta | MLT | 470 | 440.377 | 39 | 220 | −0.424 | −0.351 |
| 36 | Mauritius | MUS | 480 | 1269.67 | 82 | 10 | −0.417 | −0.356 |
| 37 | Mexico | MEX | 484 | 127575.529 | 5956 | 126507 | 0.547 | 2.263 |
| 38 | Montenegro | MNE | 499 | 627.988 | 12 | 690 | −0.428 | −0.342 |
| 39 | Netherlands | NLD | 528 | 17097.123 | 1206 | 11565 | −0.232 | −0.117 |
| 40 | New Zealand | NZL | 554 | 4783.062 | 232 | 25 | −0.392 | −0.355 |
| 41 | North Macedonia | MKD | 807 | 2083.458 | 36 | 2522 | −0.425 | −0.304 |
| 42 | Norway | NOR | 578 | 5378.859 | 528 | 436 | −0.344 | −0.347 |
| 43 | Philippines | PHL | 608 | 108116.622 | 15580 | 9253 | 2.128 | −0.164 |
| 44 | Poland | POL | 616 | 37887.771 | 5347 | 29119 | 0.448 | 0.247 |
| 45 | Portugal | PRT | 620 | 10226.178 | 2097 | 7045 | −0.086 | −0.21 |
| 46 | Qatar | QAT | 634 | 2832.071 | 12 | 245 | −0.428 | −0.351 |
| 47 | Republic of Korea | KOR | 410 | 51225.321 | 3712 | 962 | 0.179 | −0.336 |
| 48 | Rep. of Moldova | MDA | 498 | 4043.258 | 221 | 3020 | −0.394 | −0.293 |
| 49 | Romania | ROU | 642 | 19364.558 | 1484 | 15919 | −0.187 | −0.026 |
| 50 | Serbia | SRB | 688 | 8772.228 | 419 | 3288 | −0.362 | −0.288 |
| 51 | Singapore | SGP | 702 | 5804.343 | 906 | 29 | −0.282 | −0.355 |
| 52 | Slovakia | SVK | 703 | 5457.012 | 476 | 2317 | −0.352 | −0.308 |
| 53 | Slovenia | SVN | 705 | 2078.654 | 145 | 2889 | −0.407 | −0.296 |
| 54 | Spain | ESP | 724 | 46736.782 | 3042 | 50442 | 0.069 | 0.688 |
| 55 | Suriname | SUR | 740 | 581.363 | 39 | 123 | −0.424 | −0.353 |
| 56 | Sweden | SWE | 752 | 10036.391 | 665 | 8727 | −0.321 | −0.175 |
| 57 | Switzerland | CHE | 756 | 8591.361 | 428 | 7049 | −0.36 | −0.21 |
| 58 | The UK | GBR | 826 | 67530.161 | 6943 | 74570 | 0.71 | 1.188 |
| 59 | Turkey | TUR | 792 | 83429.607 | 1658 | 21295 | −0.158 | 0.085 |
| 60 | Ukraine | UKR | 804 | 43993.643 | 1089 | 18854 | −0.252 | 0.034 |
| 61 | US of America | USA | 840 | 329064.917 | 16554 | 345253 | 2.288 | 6.791 |
Comparison of number of deaths forecast for respiratory diseases and actual COVID-19 deaths.
| Row | Country | Country No | Population | |||||
|---|---|---|---|---|---|---|---|---|
| 1 | Austria | AUT | 40 | 8955.108 | 234 | 6214 | −0.392 | −0.227 |
| 2 | Belgium | BEL | 56 | 11539.326 | 1571 | 19693 | −0.172 | 0.052 |
| 3 | Bulgaria | BGR | 100 | 7000.117 | 412 | 7644 | −0.363 | −0.198 |
| 4 | Canada | CAN | 124 | 37411.038 | 1766 | 15679 | −0.14 | −0.031 |
| 5 | Denmark | DNK | 208 | 5771.877 | 595 | 1345 | −0.333 | −0.328 |
| 6 | Finland | FIN | 246 | 5532.159 | 53 | 561 | −0.422 | −0.344 |
| 7 | France | FRA | 250 | 65129.731 | 4733 | 64543 | 0.347 | 0.98 |
| 8 | Germany | DEU | 276 | 83517.046 | 5815 | 34272 | 0.524 | 0.354 |
| 9 | Greece | GRC | 300 | 10473.452 | 2000 | 4921 | −0.102 | −0.254 |
| 10 | Hungary | HUN | 348 | 9684.68 | 344 | 9884 | −0.374 | −0.151 |
| 11 | Iceland | ISL | 352 | 339.037 | 17 | 29 | −0.428 | −0.355 |
| 12 | Ireland | IRL | 372 | 4882.498 | 316 | 2252 | −0.379 | −0.309 |
| 13 | Italy | ITA | 380 | 60550.092 | 4792 | 74985 | 0.356 | 1.196 |
| 14 | Netherlands | NLD | 528 | 17097.123 | 1206 | 11565 | −0.232 | −0.117 |
| 15 | Norway | NOR | 578 | 5378.859 | 528 | 436 | −0.344 | −0.347 |
| 16 | Poland | POL | 616 | 37887.771 | 5347 | 29119 | 0.448 | 0.247 |
| 17 | Portugal | PRT | 620 | 10226.178 | 2097 | 7045 | −0.086 | −0.21 |
| 18 | Romania | ROU | 642 | 19364.558 | 1484 | 15919 | −0.187 | −0.026 |
| 19 | Serbia | SRB | 688 | 8772.228 | 419 | 3288 | −0.362 | −0.288 |
| 20 | Slovakia | SVK | 703 | 5457.012 | 476 | 2317 | −0.352 | −0.308 |
| 21 | Slovenia | SVN | 705 | 2078.654 | 145 | 2889 | −0.407 | −0.296 |
| 22 | Spain | ESP | 724 | 46736.782 | 3042 | 50442 | 0.069 | 0.688 |
| 23 | Sweden | SWE | 752 | 10036.391 | 665 | 8727 | −0.321 | −0.175 |
| 24 | Switzerland | CHE | 756 | 8591.361 | 428 | 7049 | −0.36 | −0.21 |
| 25 | The UK | GBR | 826 | 67530.161 | 6943 | 74570 | 0.71 | 1.188 |
| 26 | Ukraine | UKR | 804 | 43993.643 | 1089 | 18854 | −0.252 | 0.034 |
| 27 | United States | USA | 840 | 329064.917 | 16554 | 345253 | 2.288 | 6.791 |
Notes: (1) Abbreviated country code (three letters); (2) Respiratory Diseases Total Deaths; (3) WHO COVID-19 Total Deaths; (4) (Country Respiratory Disease Deaths — All Countries’ Respiratory Disease Death Average)/All Countries Respiratory Disease Deaths STDEV; (5) (Country WHO COVID-19 Deaths — All Countries’ COVID-19 Death Average)/All countries COVID-19 Deaths STDEV.
Fig. 5Respiratory disease deaths and COVID-19 deaths for Europe and North America in 2020.
Fig. 6Respiratory diseases deaths and COVID-19 deaths for Each Country in 2020.