REQUEST A DEMO

Understanding time series forecasting: 10 models and tools

In previous articles, I discussed how to prepare data and assess predictions. Now, it's time to return to machine learning and time series forecasting methods. There are many different techniques available. Some are quite straightforward (like moving averages) while others are more advanced (such as neural networks).

In this article, I will provide an overview of selected forecasting models and discuss their relevance.

Popular time series forecasting models

Below are ten of the most popular time series forecasting models, along with their basic characteristics. I aim to present them in a way that highlights their most effective applications. Let’s break them down and learn how to use each model optimally:

Auto-Regressive Moving Average (abb. ARIMA)

This model is based on the concept of moving averages, which typically smooths out predictions. The basic version of the model does not account for seasonality, but the alternative model, SARIMA, does consider this factor. The SARIMAX variant allows for the inclusion of exogenous variables.

This model is effective for:

  • short-term forecasting,
  • data that exhibit autocorrelation.

Exponential Smoothing

This approach is based on weighted averages. The basic version does not account for trends or seasonality; however, its extensions do consider those factors:

  • Holt's method handles time series data with a trend,
  • Holt-Winters method addresses time series data with both trend and seasonality.

Similar to ARIMA, these methods are effective for short-term forecasting.

Prophet

This time series forecasting approach was developed by Meta. It includes the management of pervasive trends and seasonality, even when those factors change over time. It is an additive model that utilizes the decomposition of time series. First, it analyzes different components separately. Then, it adds their predictions to obtain the final one.

I recommend this model for two instances:

  • for time series with well-distinguished seasonal effects,
  • for short-term forecasting.

Theta

Similar to Prophet, Theta is a decomposition time series forecasting method. However, the former is much more sophisticated. Theta, despite its simple structure, performs very well on both seasonal and non-seasonal data.

Croston

This model is based on exponential smoothing and works on two components:

  • average values of time series,
  • average interval between occurrences.

By design, Croston applies the best to intermittent time series. In such a case, classical time series forecasting methods often fail because the high number of zero values disrupts the detection of stable trends and seasonality.

XGBoost

XGBoost belongs to the gradient boosting time series models that are based on decision trees. To grasp this idea, imagine a core, strong model resembling a trunk that connects many weaker models. A distinctive feature of this model is the way trees are constructed — they grow depth-wise, which means that at each level, all leaves are split, ultimately creating a complete, balanced tree.

This model is especially versatile and can handle most time series, apart from some sparse examples. It can also include external variables, which may enhance the model's accuracy.

Light gradient boosting machine (LGBM)

This time series forecasting model is another example of one based on gradient boosting. Its key distinction from XgBoost lies in its approach to growing decision trees leaf-wise. This means that it only splits the leaf with the highest gain, resulting in unbalanced trees that tend to be deeper. Consequently, the algorithm operates much faster and requires less memory, making it well-suited for large datasets.

Recurrent Neural Networks (RNN)

This type of neural network learns through backpropagation through time, meaning it takes the output of a neuron as an input for neurons at the next time step. This enables handling sequential data as a time series. It can also include exogenous variables.

However, the classic RNN is not the strongest suit in terms of time series prediction, mostly due to vanishing gradients.

This problem causes the model to "forget" information from the distant past because the signal used to update the weights becomes exponentially smaller over time. This makes it impossible for the network to learn long-term dependencies, which are crucial for accurate time series forecasting.

Therefore, the most suitable model for time series forecasting is LSTM (Long Short-Term Memory), which addresses this problem by ensuring the preservation of information throughout the layers.

Box-Cox, ARMA, Trend, and Seasonal Components (BATS)

This highly advanced model is capable of automated modeling of complex patterns in time series. Its name is an acronym that reflects its vital components:

  • the Box-Cox transformation to adjust the data to be closer to the normal distribution,
  • The ARMA components, along with exponential smoothing, effectively address both long-term and short-term data dependencies,
  • Trend and seasonality identify and model complex seasonal trends, including annual cycles.

N-BEATS

This deep learning-driven model utilizes a sophisticated architecture comprising multiple interconnected feed-forward neural networks, commonly referred to as multilayer perceptrons (MLPs). Its primary function is to decompose time series data into projections for various components, such as trends or seasonality. These components are then aggregated to produce the final output.

N-BEATS is also capable of incorporating exogenous variables, which contributes to its high accuracy rate. Additionally, this model is notable for its enhanced interpretability.

Understanding time series: Which time series model is the best?

Every forecasting method has specific features, but none is universal—that is, no method will consistently yield the best results for every time series. Each time series is unique, and a model with the same parameters can perform exceptionally well on one series and poorly on another. Relying on a single time series forecasting model can be risky.

While there are pre-trained models available, their performance can be unpredictable; they may sometimes perform better or worse depending on the context. These models can be useful, but they should not be regarded as a universal solution—rather, they should be considered as one option among many.

Time series and language learning models (LLMs): Can ChatGPT successfully predict?

This is a question I hear quite often, and to which I always answer, starting with a digression.

All the described models can be classified as based on machine learning algorithms – all of them predict based on what model was allowed to learn from the data. All machine learning models are artificial intelligence methods, even the simplest ones. We tend to forget about this fact.

AI is more often identified only with chats like GPT, which are built on LLMs – large language models. Such chats can also serve as a tool for time series forecasting.

However, their performance is poor. LLMs are not designed to build extensive tools by themselves. I cannot say in good faith that it is possible to do so with chat's help.

But – maybe both of the last two sentences should end with the word ‘yet’.

Analyzing prediction: What if the prediction is not accurate enough?

All of the methods mentioned above can be used for univariate forecasting, which focuses solely on the historical data of a single variable. This is the most basic type of forecasting. If the accuracy of this approach is not satisfactory, one can consider multivariate forecasting. Some of the models presented are suitable for this purpose.

In multivariate forecasting, both the primary variable and the exogenous variables—those that influence the primary variable—are predicted. The process of selecting appropriate exogenous variables and assessing their actual impact on the forecast is a topic for another article.

Another issue is lumpy demand, which refers to unpredictable (unforecastable) data. No model will yield accurate predictions in such cases. What can be done in such a case? One approach is to aggregate data, possibly within the framework of a business hierarchy or by identifying correlations between products. First, predict the overall total and then, reconcile that with individual products. This process is known as hierarchical forecasting..

The conclusion: Overview of time series forecasting

There is no such thing as an ultimate model that fits all existing time series. Every time series should be treated separately, and a model should be chosen individually. For some series, simple models will perform better than the more complicated ones.

Therefore, it is important to test many models on time series and not limit the solution to only 2 or 3 models. Chats can be included in this, as a method, but not as an individual tool.

Predictions made using BiModal Forecasting are reliable; each process step is clearly explained, and every decision is backed by statistical analysis or business insight.


Request a demo

Leave us your phone number. We will contact you shortly!

  • United States+1
  • United Kingdom+44
  • Afghanistan (‫افغانستان‬‎)+93
  • Albania (Shqipëri)+355
  • Algeria (‫الجزائر‬‎)+213
  • American Samoa+1
  • Andorra+376
  • Angola+244
  • Anguilla+1
  • Antigua and Barbuda+1
  • Argentina+54
  • Armenia (Հայաստան)+374
  • Aruba+297
  • Ascension Island+247
  • Australia+61
  • Austria (Österreich)+43
  • Azerbaijan (Azərbaycan)+994
  • Bahamas+1
  • Bahrain (‫البحرين‬‎)+973
  • Bangladesh (বাংলাদেশ)+880
  • Barbados+1
  • Belarus (Беларусь)+375
  • Belgium (België)+32
  • Belize+501
  • Benin (Bénin)+229
  • Bermuda+1
  • Bhutan (འབྲུག)+975
  • Bolivia+591
  • Bosnia and Herzegovina (Босна и Херцеговина)+387
  • Botswana+267
  • Brazil (Brasil)+55
  • British Indian Ocean Territory+246
  • British Virgin Islands+1
  • Brunei+673
  • Bulgaria (България)+359
  • Burkina Faso+226
  • Burundi (Uburundi)+257
  • Cambodia (កម្ពុជា)+855
  • Cameroon (Cameroun)+237
  • Canada+1
  • Cape Verde (Kabu Verdi)+238
  • Caribbean Netherlands+599
  • Cayman Islands+1
  • Central African Republic (République centrafricaine)+236
  • Chad (Tchad)+235
  • Chile+56
  • China (中国)+86
  • Christmas Island+61
  • Cocos (Keeling) Islands+61
  • Colombia+57
  • Comoros (‫جزر القمر‬‎)+269
  • Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)+243
  • Congo (Republic) (Congo-Brazzaville)+242
  • Cook Islands+682
  • Costa Rica+506
  • Côte d’Ivoire+225
  • Croatia (Hrvatska)+385
  • Cuba+53
  • Curaçao+599
  • Cyprus (Κύπρος)+357
  • Czech Republic (Česká republika)+420
  • Denmark (Danmark)+45
  • Djibouti+253
  • Dominica+1
  • Dominican Republic (República Dominicana)+1
  • Ecuador+593
  • Egypt (‫مصر‬‎)+20
  • El Salvador+503
  • Equatorial Guinea (Guinea Ecuatorial)+240
  • Eritrea+291
  • Estonia (Eesti)+372
  • Eswatini+268
  • Ethiopia+251
  • Falkland Islands (Islas Malvinas)+500
  • Faroe Islands (Føroyar)+298
  • Fiji+679
  • Finland (Suomi)+358
  • France+33
  • French Guiana (Guyane française)+594
  • French Polynesia (Polynésie française)+689
  • Gabon+241
  • Gambia+220
  • Georgia (საქართველო)+995
  • Germany (Deutschland)+49
  • Ghana (Gaana)+233
  • Gibraltar+350
  • Greece (Ελλάδα)+30
  • Greenland (Kalaallit Nunaat)+299
  • Grenada+1
  • Guadeloupe+590
  • Guam+1
  • Guatemala+502
  • Guernsey+44
  • Guinea (Guinée)+224
  • Guinea-Bissau (Guiné Bissau)+245
  • Guyana+592
  • Haiti+509
  • Honduras+504
  • Hong Kong (香港)+852
  • Hungary (Magyarország)+36
  • Iceland (Ísland)+354
  • India (भारत)+91
  • Indonesia+62
  • Iran (‫ایران‬‎)+98
  • Iraq (‫العراق‬‎)+964
  • Ireland+353
  • Isle of Man+44
  • Israel (‫ישראל‬‎)+972
  • Italy (Italia)+39
  • Jamaica+1
  • Japan (日本)+81
  • Jersey+44
  • Jordan (‫الأردن‬‎)+962
  • Kazakhstan (Казахстан)+7
  • Kenya+254
  • Kiribati+686
  • Kosovo+383
  • Kuwait (‫الكويت‬‎)+965
  • Kyrgyzstan (Кыргызстан)+996
  • Laos (ລາວ)+856
  • Latvia (Latvija)+371
  • Lebanon (‫لبنان‬‎)+961
  • Lesotho+266
  • Liberia+231
  • Libya (‫ليبيا‬‎)+218
  • Liechtenstein+423
  • Lithuania (Lietuva)+370
  • Luxembourg+352
  • Macau (澳門)+853
  • North Macedonia (Македонија)+389
  • Madagascar (Madagasikara)+261
  • Malawi+265
  • Malaysia+60
  • Maldives+960
  • Mali+223
  • Malta+356
  • Marshall Islands+692
  • Martinique+596
  • Mauritania (‫موريتانيا‬‎)+222
  • Mauritius (Moris)+230
  • Mayotte+262
  • Mexico (México)+52
  • Micronesia+691
  • Moldova (Republica Moldova)+373
  • Monaco+377
  • Mongolia (Монгол)+976
  • Montenegro (Crna Gora)+382
  • Montserrat+1
  • Morocco (‫المغرب‬‎)+212
  • Mozambique (Moçambique)+258
  • Myanmar (Burma) (မြန်မာ)+95
  • Namibia (Namibië)+264
  • Nauru+674
  • Nepal (नेपाल)+977
  • Netherlands (Nederland)+31
  • New Caledonia (Nouvelle-Calédonie)+687
  • New Zealand+64
  • Nicaragua+505
  • Niger (Nijar)+227
  • Nigeria+234
  • Niue+683
  • Norfolk Island+672
  • North Korea (조선 민주주의 인민 공화국)+850
  • Northern Mariana Islands+1
  • Norway (Norge)+47
  • Oman (‫عُمان‬‎)+968
  • Pakistan (‫پاکستان‬‎)+92
  • Palau+680
  • Palestine (‫فلسطين‬‎)+970
  • Panama (Panamá)+507
  • Papua New Guinea+675
  • Paraguay+595
  • Peru (Perú)+51
  • Philippines+63
  • Poland (Polska)+48
  • Portugal+351
  • Puerto Rico+1
  • Qatar (‫قطر‬‎)+974
  • Réunion (La Réunion)+262
  • Romania (România)+40
  • Russia (Россия)+7
  • Rwanda+250
  • Saint Barthélemy+590
  • Saint Helena+290
  • Saint Kitts and Nevis+1
  • Saint Lucia+1
  • Saint Martin (Saint-Martin (partie française))+590
  • Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)+508
  • Saint Vincent and the Grenadines+1
  • Samoa+685
  • San Marino+378
  • São Tomé and Príncipe (São Tomé e Príncipe)+239
  • Saudi Arabia (‫المملكة العربية السعودية‬‎)+966
  • Senegal (Sénégal)+221
  • Serbia (Србија)+381
  • Seychelles+248
  • Sierra Leone+232
  • Singapore+65
  • Sint Maarten+1
  • Slovakia (Slovensko)+421
  • Slovenia (Slovenija)+386
  • Solomon Islands+677
  • Somalia (Soomaaliya)+252
  • South Africa+27
  • South Korea (대한민국)+82
  • South Sudan (‫جنوب السودان‬‎)+211
  • Spain (España)+34
  • Sri Lanka (ශ්‍රී ලංකාව)+94
  • Sudan (‫السودان‬‎)+249
  • Suriname+597
  • Svalbard and Jan Mayen+47
  • Sweden (Sverige)+46
  • Switzerland (Schweiz)+41
  • Syria (‫سوريا‬‎)+963
  • Taiwan (台灣)+886
  • Tajikistan+992
  • Tanzania+255
  • Thailand (ไทย)+66
  • Timor-Leste+670
  • Togo+228
  • Tokelau+690
  • Tonga+676
  • Trinidad and Tobago+1
  • Tunisia (‫تونس‬‎)+216
  • Turkey (Türkiye)+90
  • Turkmenistan+993
  • Turks and Caicos Islands+1
  • Tuvalu+688
  • U.S. Virgin Islands+1
  • Uganda+256
  • Ukraine (Україна)+380
  • United Arab Emirates (‫الإمارات العربية المتحدة‬‎)+971
  • United Kingdom+44
  • United States+1
  • Uruguay+598
  • Uzbekistan (Oʻzbekiston)+998
  • Vanuatu+678
  • Vatican City (Città del Vaticano)+39
  • Venezuela+58
  • Vietnam (Việt Nam)+84
  • Wallis and Futuna (Wallis-et-Futuna)+681
  • Western Sahara (‫الصحراء الغربية‬‎)+212
  • Yemen (‫اليمن‬‎)+967
  • Zambia+260
  • Zimbabwe+263
  • Åland Islands+358
Thank you! Your message has been sent.
Unable to send your message. Please fix errors then try again.