<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archives extrapolation methods - Open Forecasting</title>
	<atom:link href="https://openforecast.org/tag/extrapolation/feed/" rel="self" type="application/rss+xml" />
	<link>https://openforecast.org/tag/extrapolation/</link>
	<description>How to look into the future</description>
	<lastBuildDate>Mon, 02 Mar 2026 22:48:08 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2015/08/cropped-usd-05-32x32.png&amp;nocache=1</url>
	<title>Archives extrapolation methods - Open Forecasting</title>
	<link>https://openforecast.org/tag/extrapolation/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>There&#8217;s no such thing as &#8220;deterministic forecast&#8221;</title>
		<link>https://openforecast.org/2026/03/02/there-s-no-such-thing-as-deterministic-forecast/</link>
					<comments>https://openforecast.org/2026/03/02/there-s-no-such-thing-as-deterministic-forecast/#respond</comments>
		
		<dc:creator><![CDATA[Ivan Svetunkov]]></dc:creator>
		<pubDate>Mon, 02 Mar 2026 22:45:31 +0000</pubDate>
				<category><![CDATA[Social media]]></category>
		<category><![CDATA[Theory of forecasting]]></category>
		<category><![CDATA[extrapolation methods]]></category>
		<category><![CDATA[statistics]]></category>
		<category><![CDATA[theory]]></category>
		<guid isPermaLink="false">https://openforecast.org/?p=4081</guid>

					<description><![CDATA[<p>Sometimes I see people referring to a &#8220;deterministic&#8221; forecast, and I have some personal issues with this. Because if you apply a model to data then there is nothing deterministic about your forecasts! In many contexts, &#8220;deterministic&#8221; has a precise meaning: no randomness, no uncertainty. A deterministic solution to an optimisation problem (e.g. linear programming) [&#8230;]</p>
<p>Message <a href="https://openforecast.org/2026/03/02/there-s-no-such-thing-as-deterministic-forecast/">There&#8217;s no such thing as &#8220;deterministic forecast&#8221;</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Sometimes I see people referring to a &#8220;deterministic&#8221; forecast, and I have some personal issues with this. Because if you apply a model to data then there is nothing deterministic about your forecasts!</p>
<p>In many contexts, &#8220;deterministic&#8221; has a precise meaning: no randomness, no uncertainty. A deterministic solution to an optimisation problem (e.g. linear programming) implies that there are no random inputs or outputs once the model and its parameters are fixed. Forecasting is different. As <a href="https://onlinelibrary.wiley.com/doi/10.1002/(SICI)1099-131X(199612)15:7%3C495::AID-FOR640%3E3.0.CO;2-O">Chatfield</a> and many others have pointed out, forecasting has multiple sources of uncertainty, and there is essentially zero chance that the future will unfold exactly as any single number suggests.</p>
<p>Yes, some people use &#8220;deterministic&#8221; as a synonym for &#8220;point forecast&#8221;. But that label is still misleading, because a point forecast is not uncertainty-free &#8211; it is just one summary of a predictive distribution (often the conditional mean, sometimes the median or another functional).</p>
<p>Here’s a quick reality check you can do yourself. Take a dataset, apply your model, and write down the point forecast for the next few observations. Now add one new observation, re-estimate, and forecast again (the image in this post depicts exactly that, but with 50 forecasts produced on different subsamples of data). The point forecast will change unless you are dealing with an exotic situation with non-random data (e.g. every day, you sell exactly 100 units). So, which of the two was the &#8220;deterministic&#8221; forecast? If forecasts were truly deterministic in the strict sense, you would not get multiple plausible values from small, reasonable changes in the sample.</p>
<p>This happens because any forecasting method (statistical or ML) depends on data and on modelling choices: parameter estimation, feature selection, splitting rules, tuning, even decisions like &#8220;use α=0.1&#8221;. Those choices can be fixed across samples of data, but fixing them does not remove uncertainty &#8211; it only hides it. The randomness is still there in the data and in the fact that we only observe a sample of it.</p>
<p>So when you see someone mentioning &#8220;deterministic forecast&#8221;, it&#8217;s worth translating it mentally to: &#8220;a point forecast, probably a conditional mean&#8221;. If you care about decisions and risk, you should know that there is an uncertainty associated with this so called &#8220;deterministic forecast&#8221;, and that it should not be ignored. But this is a topic for another discussion in another post.</p>
<p>Message <a href="https://openforecast.org/2026/03/02/there-s-no-such-thing-as-deterministic-forecast/">There&#8217;s no such thing as &#8220;deterministic forecast&#8221;</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openforecast.org/2026/03/02/there-s-no-such-thing-as-deterministic-forecast/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Risky business: how to select your model based on risk preferences</title>
		<link>https://openforecast.org/2026/01/19/risky-business-how-to-select-your-model-based-on-risk-preferences/</link>
					<comments>https://openforecast.org/2026/01/19/risky-business-how-to-select-your-model-based-on-risk-preferences/#respond</comments>
		
		<dc:creator><![CDATA[Ivan Svetunkov]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 11:28:04 +0000</pubDate>
				<category><![CDATA[Applied forecasting]]></category>
		<category><![CDATA[Papers]]></category>
		<category><![CDATA[Social media]]></category>
		<category><![CDATA[Theory of forecasting]]></category>
		<category><![CDATA[error measures]]></category>
		<category><![CDATA[extrapolation methods]]></category>
		<category><![CDATA[Information criteria]]></category>
		<category><![CDATA[model combination]]></category>
		<category><![CDATA[model selection]]></category>
		<category><![CDATA[papers]]></category>
		<category><![CDATA[theory]]></category>
		<guid isPermaLink="false">https://openforecast.org/?p=3950</guid>

					<description><![CDATA[<p>What do you use for model selection? Do you select the best model based on its cross-validated performance, or do you use in-sample measures like AIC? If so, there is a way to improve your selection process further. JORS recently published the paper of Nikos Kourentzes and I based on a simple but powerful idea: [&#8230;]</p>
<p>Message <a href="https://openforecast.org/2026/01/19/risky-business-how-to-select-your-model-based-on-risk-preferences/">Risky business: how to select your model based on risk preferences</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>What do you use for model selection? Do you select the best model based on its cross-validated performance, or do you use in-sample measures like AIC? If so, there is a way to improve your selection process further.</p>
<p>JORS recently published the paper of Nikos Kourentzes and I based on a simple but powerful idea: instead of using summary statistics (like the mean RMSE of cross-validated errors), you should consider the entire distribution and choose a specific quantile. This aligns with <a href="https://openforecast.org/2024/03/27/what-does-lower-error-measure-really-mean/">my previous post on error measures</a>, but here is the core intuition:</p>
<p>The distribution of error measures is almost always asymmetric. If you only look at the average, you end up with a &#8220;mean temperature in the hospital&#8221; statistic, which doesn&#8217;t reflect how models actually behave. Some models perform great on most series but fail miserably on a few.</p>
<p>What can we do in this case? We can look at quantiles of distribution.</p>
<p>For example, if we use 84th quantile, we compare the models based on their &#8220;bad&#8221; performance, situations where they fail and produce less accurate forecasts. If you choose the best performing model there, you will end up with something that does not fail as much. So your preferences for the model become risk-averse in this situation.</p>
<p>If you focus on the lower quantile (e.g. 16th), you are looking at models that do well on the well-behaved series and ignore how they do on the difficult ones. So, your model selection preferences can be described as risk-tolerant, because you are accept that the best performing model might fail on a difficult time series.</p>
<p>Furthermore, the median (50th quantile, the middle of sample), corresponds to the risk-neutral situation, because it ignores the tails of the distribution.</p>
<p>What about the mean? This is a risk-agnostic strategy, because it says nothing about the performance on the difficult or easy time series &#8211; it takes everything and nothing in it at the same time, hiding the true risk profile.</p>
<p>So what?</p>
<p>In the paper, we show that using a risk-averse strategy tends to improve overall forecasting accuracy in day-to-day situations. Conversely, a risk-tolerant strategy can be beneficial when disruptions are anticipated, as standard models are likely to fail anyway.</p>
<p>So, next time you select a model, think about the measure you are using. If it’s just the mean RMSE, keep in mind that you might be ignoring the inherent risks of that selection.</p>
<p>P.S. While the discussion above applies to the distribution of error measures, our paper specifically focused on point AIC (in-sample performance). But it is a distance measure as well, so the logic explained above holds.</p>
<p>P.P.S. Nikos wrote a <a href="https://www.linkedin.com/posts/nikos-kourentzes-3660515_forecasting-datascience-analytics-activity-7414687127269007360-pLAh">post about this paper here</a>.</p>
<p>P.P.P.S. And here is <a href="https://github.com/trnnick/working_papers/blob/fd1973624e97fc755a9c2401f05c78b056780e34/Kourentzes_2026_Incorporating%20risk%20preferences%20in%20forecast%20selectionk.pdf">the link to the paper</a>.</p>
<p>Message <a href="https://openforecast.org/2026/01/19/risky-business-how-to-select-your-model-based-on-risk-preferences/">Risky business: how to select your model based on risk preferences</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openforecast.org/2026/01/19/risky-business-how-to-select-your-model-based-on-risk-preferences/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Evolving seasonality</title>
		<link>https://openforecast.org/2025/09/22/evolving-seasonality/</link>
					<comments>https://openforecast.org/2025/09/22/evolving-seasonality/#respond</comments>
		
		<dc:creator><![CDATA[Ivan Svetunkov]]></dc:creator>
		<pubDate>Mon, 22 Sep 2025 19:21:09 +0000</pubDate>
				<category><![CDATA[Social media]]></category>
		<category><![CDATA[Theory of forecasting]]></category>
		<category><![CDATA[extrapolation methods]]></category>
		<category><![CDATA[Seasonality]]></category>
		<guid isPermaLink="false">https://openforecast.org/?p=3928</guid>

					<description><![CDATA[<p>Here is another fascinating aspect of the seasonal profile in your data: it can evolve over time due to changing consumer preferences. How so? Let me explain. I&#8217;ve worked with a couple of companies where there were some examples of data with drastically changing seasonal patterns over just a few years. For example, Before Covid [&#8230;]</p>
<p>Message <a href="https://openforecast.org/2025/09/22/evolving-seasonality/">Evolving seasonality</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Here is another fascinating aspect of the seasonal profile in your data: it can evolve over time due to changing consumer preferences. How so? Let me explain.</p>
<p>I&#8217;ve worked with a couple of companies where there were some examples of data with drastically changing seasonal patterns over just a few years. For example, Before Covid (BC), the consumer behaviour could be different than After the Disruption (AD): people started ordering online some products that they used to buy in shops. Some practitioners told me that the seasonal patterns in their data had changed so dramatically that historical data BC had become practically useless.</p>
<p>Why is this important?</p>
<p>If you don&#8217;t recognise that the seasonal patterns can change and simply use seasonal dummy variables (for example, in regression or decision trees), you&#8217;ll run into problems, as these approaches won&#8217;t capture the evolving profile. The same applies to classical decomposition (see <a href="/adam/ClassicalDecomposition.html">Section 3.2 of ADAM</a>), since it assumes a fixed seasonal structure. In fact, any model that assumes fixed seasonality would fail in this situation, and you may not even notice (see image in the post, where the model fails to capture the profile correctly because it assumes that it is fixed).</p>
<p>What can we do with that?</p>
<p>The solution is to use approaches that allow seasonality to evolve over time. ARIMA and ETS handle this via their parameters, while STL decomposition produces a dynamic seasonal profile. In regression or decision trees, you could incorporate lagged sales to partially account for this, or bring in the seasonal component from STL/ETS as an additional feature.</p>
<p>All good? Not quite, because there is a nasty small grey elephant hidden in this room.</p>
<p>Even if your chosen method allows seasonality to evolve, you must ensure that forecasting uncertainty reflects this properly. If the seasonal pattern in your training set changed drastically, what prevents it from shifting again in the test set? This is particularly critical if you need predictive distributions, such as for setting safety stock levels or generating prediction intervals. Ignoring the fact that the seasonality might change further could make your predictive distribution narrower than expected, leading to potential lost sales.</p>
<p>The good news: ARIMA and ETS handle this naturally, as components&#8217; uncertainty translates directly to the holdout variance. In ML, it is more complicated, because you would need to invest time in proper feature engineering to explicitly capture the potential seasonality changes. Unfortunately, I haven&#8217;t done much in the latter direction, so I cannot give you a good recipe. Any thoughts what to do here?</p>
<p>And what do you do in the situation like that?</p>
<p>Message <a href="https://openforecast.org/2025/09/22/evolving-seasonality/">Evolving seasonality</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openforecast.org/2025/09/22/evolving-seasonality/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Review of a paper on comparison of modern machine learning techniques in retail</title>
		<link>https://openforecast.org/2025/06/22/review-of-a-paper-comparative-analysis-of-modern-machine-learning-models-for-retail-sales-forecasting/</link>
					<comments>https://openforecast.org/2025/06/22/review-of-a-paper-comparative-analysis-of-modern-machine-learning-models-for-retail-sales-forecasting/#respond</comments>
		
		<dc:creator><![CDATA[Ivan Svetunkov]]></dc:creator>
		<pubDate>Sun, 22 Jun 2025 21:59:19 +0000</pubDate>
				<category><![CDATA[Applied forecasting]]></category>
		<category><![CDATA[Papers]]></category>
		<category><![CDATA[Theory of forecasting]]></category>
		<category><![CDATA[AI and ML]]></category>
		<category><![CDATA[extrapolation methods]]></category>
		<category><![CDATA[papers]]></category>
		<guid isPermaLink="false">https://openforecast.org/?p=3874</guid>

					<description><![CDATA[<p>A couple of days ago, I noticed a link to the following paper in a post by Jack Rodenberg: https://arxiv.org/abs/2506.05941v1. The topic seemed interesting and relevant to my work, so I read it, only to find that the paper contains several serious flaws that compromise its findings. Let me explain. Introduction But first, why am [&#8230;]</p>
<p>Message <a href="https://openforecast.org/2025/06/22/review-of-a-paper-comparative-analysis-of-modern-machine-learning-models-for-retail-sales-forecasting/">Review of a paper on comparison of modern machine learning techniques in retail</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>A couple of days ago, I noticed a link to the following paper in a post by Jack Rodenberg: <a href="https://arxiv.org/abs/2506.05941v1" target="_blank">https://arxiv.org/abs/2506.05941v1</a>. The topic seemed interesting and relevant to my work, so I read it, only to find that the paper contains several serious flaws that compromise its findings. Let me explain.</p>
<h2>Introduction</h2>
<p>But first, why am I writing this post?</p>
<p>There’s growing interest in forecasting among data scientists, data engineers, ML experts etc. Many of them assume that they can apply their existing knowledge directly to this new area without reading domain-specific literature. As a result, we get a lot of &#8220;hit-or-miss&#8221; work: sometimes having promising ideas, but executed in ways that violate basic forecasting principles. The main problem with that is that if your experiment is not done correctly, your results might be compromised, i.e. your claims might be simply wrong.</p>
<p>If you&#8217;re a researcher writing forecasting-related papers, then hopefully reading this post (and the posts and papers I refer to), will help you improve your papers. This might lead to a smoother peer-review process. Also, while I can’t speak for other reviewers, if I come across a paper with similar issues, I typically give it a hard time.</p>
<p>I should also say that I am not a reviewer of this paper (I would not publish a review), but I merely decided to demonstrate what issues I can see when I read papers like that. The authors are just unlucky that I picked their paper&#8230;</p>
<p>Let&#8217;s start.</p>
<p>The authors apply several ML methods to retail data, compare their forecasting accuracy, and conclude that XGBoost and LightGBM outperform N-BEATS, NHITS, and Temporal Fusion Transformer. While the finding isn’t groundbreaking, additional evidence on a new dataset is always welcome.</p>
<h2>Major issues</h2>
<p>So, what&#8217;s wrong? Here is a list of the major comments:</p>
<ol>
<li><strong>Forecast horizon vs. data frequency</strong>:</li>
<p>Daily data with a 365-day forecast horizon makes no practical sense (page 2, paragraph 3). I haven&#8217;t seen any company making daily-level decisions a year in advance. Stock decisions are typically made on much shorter horizons, and if you need a year ahead forecast, you definitely do not need it on the daily level. After all, there is no point in knowing that on 22nd December 2025 you will have the expected demand of 35.457 units &#8211; it is too far into the future to make any difference. Some references:</p>
<ul>
<li><a href="https://doi.org/10.1016/j.ijforecast.2022.08.003">Athanasopoulos and Kourentzes (2023)</a> paper discusses data frequency and some decisions related to them;</li>
<li>and there is <a href="/2024/09/24/how-to-choose-forecast-horizon/">a post on my website</a> on a related topic</li>
</ul>
<li><strong>Misuse of SBC classification</strong>:</li>
<p>Claiming that 70% of products are &#8220;intermittent&#8221; (page 2, last paragraph) based on SBC is incorrect. Furthermore, SBC classification does not make sense in this setting, and is not used in the paper anyway, so the authors should just drop it.</p>
<ul>
<li>Read more about it <a href="/2025/06/04/sbc-is-not-for-you/">here</a>.</li>
<li>And there is <a href="https://www.linkedin.com/posts/stephankolassa_on-the-categorization-of-demand-patterns-activity-7340669762894462978-Wjrb">a post of Stephan Kolassa</a> on exactly this point</li>
</ul>
<li><strong>Product elimination and introduction is unclear (page 3):</strong></li>
<p>The authors say &#8220;Around 30% of products were eliminated during training and 10% are newly introduced in validation&#8221;. It&#8217;s not clear why this was done and how specifically. This needs to be explained in more detail.</p>
<li><strong>&#8220;Missing values&#8221; undefined</strong>:</li>
<p>It is not clear what the authors mean by &#8220;missing values&#8221; (page 3, &#8220;Handling Missing Values&#8221;). How do they appear and why? Are they the same as stockouts, or were there some other issues in the data? This needs to be explained in more detail.</p>
<li><strong>Figure 1 is vague</strong>:</li>
<p>Figure 1 is supposed to explain how the missing values were treated. But the whole imputation process is questionable, because it is not clear how well it worked in comparison with alternatives and how reasonable it is to have an imputed series that look more erratic than the original one. The discussion of that needs to be expanded with some insights from the business problem.</p>
<li><strong>No stockout handling discussion</strong>:</li>
<p>The authors do not discuss whether the data has stockouts or not. This becomes especially important in retail, because if the stockouts are not treated correctly, you would end up forecasting sales instead of demand</p>
<ul>
<li>For example, <a href="/2025/04/11/svetunkov-sroginis-2025-model-based-demand-classification/">see this post</a>.</li>
</ul>
<li><strong>Feature engineering is opaque</strong>:</li>
<p>&#8220;Lag and rolling-window statistics for sales and promotional indicators were created&#8221; (page 3, &#8220;Feature Engineering&#8221;) &#8211; it is not clear, what specific lags, what length of rolling windows, and what statistics (anything besides mean?) were created. These need to be explained for transparency and so that a reader could better understand what specifically was done. Without this explanation, it is not clear whether the features are sensible at all.</p>
<li><strong>Training/validation setup not explained</strong>:</li>
<p>It is not clear how specifically the split into training and validation sets was done (page 3, last paragraph), and whether the authors used rolling origin (aka time series cross-validation). If they did random splits, that could cause some issues, because the first law of time series is not to break its structure!</p>
<li><strong>Variables transformation is unclear</strong>:</li>
<p>It is not clear whether any transformations of the response variable were done. For example, if the data is not stationary, taking differences might be necessary to capture the trend and to do extrapolation correctly. Normalisation of variables is also important for neural networks, unless this is built-in in the functions the authors used. This is not discussed in the paper.</p>
<li><strong>Forecast strategy not explained</strong>:</li>
<p>It is not clear whether the direct or recursive strategy was used for forecasting. If lags were not used in the model, that would not matter, but they are, so this becomes a potential issue. Also, if the authors used the lag of the actual value on observation 235 steps ahead to produce forecast for 236 steps ahead, then this is another fundamental issue, because that implies that the forecast horizon is just 1 step ahead, and not 365, as the authors claim. This needs to be explained in more detail.</p>
<ul>
<li>I&#8217;ve written <a href="/2024/05/25/recursive-vs-direct-forecasting-strategy/">a post</a> about the strategies.</li>
</ul>
<li><strong>No statistical benchmarks</strong>:</li>
<p>At the very least, the authors should use simple moving average and probably exponential smoothing. Even if they do not perform well, this gives an additional information about the performance of the other approaches. Without them, the claims about good performance of the used ML approaches are not supported by evidence. The authors claim that they used mean as a benchmark, but its performance is not discussed in the paper.</p>
<ul>
<li><a href="/2024/10/28/why-is-it-hard-to-beat-simple-moving-average/">A post on the Simple Moving Average</a></li>
<li><a href="/2024/01/10/why-you-should-care-about-exponential-smoothing/">Why you should care about the exponential smoothing</a></li>
</ul>
<li><strong>Issues with forecast evaluation</strong>:</li>
<p>The whole Table 3 with error measures is an example of what not to do. Here are some of major issues:</p>
<ol>
<li><a href="/2024/04/03/stop-reporting-several-error-measures-just-for-the-sake-of-them/">There is no point in reporting several error measures</a> &#8211; each one of them is minimised by their own statistics. The error measure should align with what approaches produce.</li>
<li>MSE, RMSE, MAE and ME should be dropped, because they are not scaled, so the authors are adding up error measures for bricks and nails. The result is meaningless.</li>
<li>MASE is not needed &#8211; it is minimised by median, which could be a serious issue on intermittent demand <a href="/2025/01/21/don-t-use-mae-based-error-measures-for-intermittent-demand/">see this post</a>. wMAPE has similar issues because it is also based on MAE.</li>
<li>If the point forecasts are produced in terms of medians (like in case of NBEATS), then RMSSE should be dropped, and MASE should be used instead.</li>
<li>But also, comparing means with medians is not a good idea. If you assume a symmetric distribution, the two should coincide, but in general this might not hold.</li>
<li>R2 is not a good measure of forecast accuracy. It makes some sense in regression context for linear models, but in this one, it is pointless, and only shows that the authors don&#8217;t fully understand what they are doing. Plus, it&#8217;s not clear how specifically it was calculated.</li>
<li>I don&#8217;t fully understand &#8220;demand error&#8221;, &#8220;demand bias&#8221; and other measures, and the authors do not explain them in necessary detail. This needs to be added to the paper.</li>
<li>The split into &#8220;Individual Groups&#8221; and &#8220;Whole Category&#8221; is not well explained either: it is not clear what this means, why, and how this was done.</li>
<li>And in general, I don&#8217;t understand what the authors want to do with Cases A &#8211; D in Table 3. It is not clear why they are needed, and what they want to show with them. This is not explained in the paper.</li>
</ol>
<ul>
<li>I have a series of posts on forecast evaluation <a href="/category/forecasting-theory/forecast-evaluation/">here</a>.</li>
</ul>
<li><strong>Invalid analysis of bias measures</strong>:</li>
<p>Analysis of bias measures is meaningless because they were not scaled.</p>
<li><strong>Disturbing bias of NBEATS in Figure 2</strong>:</li>
<p>The bias shown in Figure 2 is disturbing and should be dealt with prior to evaluation. It could have appeared due to the loss function used for training or because the data was not pre-processed correctly. Leaving it as is and blaming NBEATS for this does not sound reasonable to me.</p>
<li><strong>No inventory implications</strong>:</li>
<p>The authors mention inventory management, but stop on forecasting, not showing how the specific forecasts translate to inventory decisions. If this paper was to be submitted to any operations-related journal, the inventory implications would need to be added in the discussion.</p>
<li><strong>Underexplained performance gaps</strong>:</li>
<p>The paper also does not explain well why neural networks performed worse than gradient boosting methods. They mention that this could be due to the effect of missing values, but this is a speculation rather than an explanation, which I personally do not believe (I might be wrong). While the overall results make sense for me personally, if you want to publish a good paper, you need to provide a more detailed answer to the question &#8220;why?&#8221;.
</ol>
<h3>Minor issues</h3>
<p>I also have three minor comments:</p>
<ol>
<li>&#8220;many product series are censored&#8221; (page 2, last paragraph) is not what it sounds like. The authors imply that the histories are short, while the usual interpretation is that the sales are lower than the demand, so the values are censored. I would rewrite this.</li>
<li>Figure 2 has the legend saying &#8220;Poisson&#8221; three times, not providing any useful information. This is probably just a mistake, which can easily be fixed.</li>
<li>There are no references to Table 2 and Figure 3 in the paper. It is not clear why they are needed. Every table and figure should be referred to and explained.</li>
</ol>
<h2>Conclusions</h2>
<p>Overall, the paper has a sensible idea, but I feel that the authors need to learn more about forecasting principles and that they have not read forecasting literature carefully to understand how specifically the experiments should be designed, what to do, and not to do (stop using SBC!). Because they made several serious mistakes, I feel that the results of the paper are compromised and might not be correct.</p>
<p>P.S. If I were a reviewer of this paper, I would recommend either &#8220;reject and resubmit&#8221; or a &#8220;major revision&#8221; (if the former option was not available).</p>
<p>P.P.S. If the authors of the paper are reading this, I hope you find these comments useful. If you have not submitted the paper yet, I&#8217;d suggest to take some of them (if not all) into account. Hopefully, this will smooth the submission process for you.</p>
<p>Message <a href="https://openforecast.org/2025/06/22/review-of-a-paper-comparative-analysis-of-modern-machine-learning-models-for-retail-sales-forecasting/">Review of a paper on comparison of modern machine learning techniques in retail</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openforecast.org/2025/06/22/review-of-a-paper-comparative-analysis-of-modern-machine-learning-models-for-retail-sales-forecasting/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>NATCOR course on Forecasting and Predictive Analytics, September 2025</title>
		<link>https://openforecast.org/2025/06/22/natcor-course-on-forecasting-and-predictive-analytics-september-2025/</link>
					<comments>https://openforecast.org/2025/06/22/natcor-course-on-forecasting-and-predictive-analytics-september-2025/#respond</comments>
		
		<dc:creator><![CDATA[Ivan Svetunkov]]></dc:creator>
		<pubDate>Sun, 22 Jun 2025 13:24:00 +0000</pubDate>
				<category><![CDATA[Social media]]></category>
		<category><![CDATA[extrapolation methods]]></category>
		<guid isPermaLink="false">https://openforecast.org/?p=3868</guid>

					<description><![CDATA[<p>Are there any PhD students in the crowd who want to learn more about forecasting? What about academic supervisors who have such students? Show me your hands! This post is for you! This September, we (Lancaster Centre for Marketing Analytics and Forecasting members) will deliver the Natcor course on Forecasting and Predictive Analytics at Lancaster [&#8230;]</p>
<p>Message <a href="https://openforecast.org/2025/06/22/natcor-course-on-forecasting-and-predictive-analytics-september-2025/">NATCOR course on Forecasting and Predictive Analytics, September 2025</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Are there any PhD students in the crowd who want to learn more about forecasting? What about academic supervisors who have such students? Show me your hands! This post is for you!</p>
<p>This September, we (Lancaster Centre for Marketing Analytics and Forecasting members) will deliver the <a href="https://www.natcor.ac.uk/">Natcor course</a> on Forecasting and Predictive Analytics at Lancaster University, UK. I&#8217;ll be acting as the course leader and I&#8217;m currently working on the schedule, aiming to make it both engaging and useful for participants.</p>
<p>The current plan is for the course to be delivered by our team members: Dr. Sven F. Crone, Anna Sroginis, Kandrika Pritularga, Nicos Pavlidis, Anna-Lena Sachs, and myself. The course will run over 5 days.</p>
<p>As for the content, we&#8217;ll start by covering the fundamentals of forecasting and gradually move on to more advanced statistical and machine learning approaches for forecasting and predictive analytics. As this course is designed specifically for PhD students, we&#8217;ll dive deeper into the material than we typically do in our Master&#8217;s level and in executive training courses. It will also be supported by real-life cases, of which the centre has accumulated many over the years, and discuss how forecasts translate to specific decisions and can be connected to the other OR-related topics.</p>
<p>You can find more details about <a href="https://www.natcor.ac.uk/courses/">the course here</a>.</p>
<p>And <a href="https://www.natcor.ac.uk/register/">register here</a> (Note that NATCOR offers other excellent courses as well!).</p>
<p>Please share this post with your network if you know any PhD students or supervisors who might be interested.</p>
<p>P.S. Image in the post is partially related to what we will discuss, but is mainly here just to attract your attention 😝</p>
<p>Message <a href="https://openforecast.org/2025/06/22/natcor-course-on-forecasting-and-predictive-analytics-september-2025/">NATCOR course on Forecasting and Predictive Analytics, September 2025</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openforecast.org/2025/06/22/natcor-course-on-forecasting-and-predictive-analytics-september-2025/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Fundamental Flaw of the Box-Jenkins Methodology</title>
		<link>https://openforecast.org/2025/05/13/fundamental-flaw-of-the-box-jenkins-methodology/</link>
					<comments>https://openforecast.org/2025/05/13/fundamental-flaw-of-the-box-jenkins-methodology/#respond</comments>
		
		<dc:creator><![CDATA[Ivan Svetunkov]]></dc:creator>
		<pubDate>Tue, 13 May 2025 11:57:07 +0000</pubDate>
				<category><![CDATA[ARIMA]]></category>
		<category><![CDATA[Social media]]></category>
		<category><![CDATA[Univariate models]]></category>
		<category><![CDATA[extrapolation methods]]></category>
		<category><![CDATA[Information criteria]]></category>
		<guid isPermaLink="false">https://openforecast.org/?p=3838</guid>

					<description><![CDATA[<p>If you have taken a course on forecasting or time series analysis, you’ve probably heard of ARIMA and the Box–Jenkins methodology. In my opinion, this methodology has a fundamental flaw and should not be used in practice. Here&#8217;s why. When Box and Jenkins wrote their book back in the 1960s, it was a very different [&#8230;]</p>
<p>Message <a href="https://openforecast.org/2025/05/13/fundamental-flaw-of-the-box-jenkins-methodology/">Fundamental Flaw of the Box-Jenkins Methodology</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>If you have taken a course on forecasting or time series analysis, you’ve probably heard of ARIMA and the Box–Jenkins methodology. In my opinion, <strong>this methodology has a fundamental flaw</strong> and should not be used in practice. Here&#8217;s why.</p>
<p>When Box and Jenkins wrote their book back in the 1960s, it was a very different era: computers were massive, and people worked with punch cards. To make their approach viable, Box and Jenkins developed a methodology for selecting the appropriate orders of AR and MA based on the values of the autocorrelation and partial autocorrelation functions (ACF and PACF, respectively). Their idea was that if an ARMA process generates a specific ACF/PACF pattern, then it could be identified by analysing those functions in the data. At the time, it wasn’t feasible to do cross-validation or rolling origin evaluation, and even using information criteria for model selection was a challenge. So, the Box–Jenkins approach was a sensible option, producing adequate results with limited computational resources, and was considered state of the art.</p>
<p>Unfortunately, as the M1 competition later showed (see my <a href="/2024/03/14/the-role-of-m-competitions-in-forecasting/">earlier post</a>), the methodology didn’t work well in practice. Simpler methods that didn’t rely on rigorous model selection actually performed better. But in fact, the winning model in the competition was ARARMA by Emanuel Parzen (https://doi.org/10.1002/for.3980010108). His idea was to make the series stationary by applying a low-order, non-stationary AR to the data, then extract residuals and select appropriate ARMA orders using AIC. Parzen ignored the Box–Jenkins methodology entirely &#8211; he didn’t analyse ACF or PACF and instead relied fully on automated selection. And it worked!</p>
<p>So why didn’t the Box–Jenkins methodology perform as expected? In my monograph <a href="/adam">Forecasting and Analytics with ADAM</a>, I use the following example to explain the main issue: “All birds have wings. Sarah has wings. Thus, Sarah is a bird.” But Sarah, as shown in the image attached to this post, is a butterfly.</p>
<p>The fundamental issue with the Box–Jenkins methodology lies in its logic: if a process generates a specific ACF/PACF, that doesn’t mean that an observed ACF/PACF must come from that process. Many ARMA and even non-ARMA processes can generate exactly the same autocorrelation structure.</p>
<p>Further developments in ARIMA modelling have shown that ACF and PACF can only be used as general guidelines for order selection. To assess model performance properly, we need other tools. All modern approaches rely on information criteria for ARIMA order selection, and they consistently perform well in forecasting competitions. For example, <a href="https://doi.org/10.18637/jss.v027.i03">Hyndman &#038; Khandakar (2008)</a> use AIC for ARMA order selection, while <a href="https://doi.org/10.1080/00207543.2019.1600764">Svetunkov &#038; Boylan (2020)</a> apply AIC after reformulating ARIMA in a state space form. The former is implemented in the forecast package in R and the StatsForecast library in Python (thanks to Nixtla and Azul Garza); the latter is available in the smooth package in R. I also discuss another ARIMA order selection approach in <a href="/adam/ARIMASelection.html">Section 15.2 of my book</a>.</p>
<p>Long story short: don’t use the Box–Jenkins methodology for order selection. Use more modern tools, such as information criteria.</p>
<p>P.S. <a href="/2024/03/21/what-s-wrong-with-arima/">See also my early post on ARIMA</a>, discussing what is wrong with it.</p>
<p>Message <a href="https://openforecast.org/2025/05/13/fundamental-flaw-of-the-box-jenkins-methodology/">Fundamental Flaw of the Box-Jenkins Methodology</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openforecast.org/2025/05/13/fundamental-flaw-of-the-box-jenkins-methodology/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Svetunkov &#038; Sroginis (2025) &#8211; Model Based Demand Classification</title>
		<link>https://openforecast.org/2025/04/11/svetunkov-sroginis-2025-model-based-demand-classification/</link>
					<comments>https://openforecast.org/2025/04/11/svetunkov-sroginis-2025-model-based-demand-classification/#respond</comments>
		
		<dc:creator><![CDATA[Ivan Svetunkov]]></dc:creator>
		<pubDate>Fri, 11 Apr 2025 10:39:30 +0000</pubDate>
				<category><![CDATA[Papers]]></category>
		<category><![CDATA[Social media]]></category>
		<category><![CDATA[extrapolation methods]]></category>
		<category><![CDATA[intermittent demand]]></category>
		<category><![CDATA[papers]]></category>
		<guid isPermaLink="false">https://openforecast.org/?p=3821</guid>

					<description><![CDATA[<p>For the last year, Anna Sroginis and I have been working on a paper, trying to modernise demand classification schemes and make them useful in the brave new era of machine learning. We have finally wrapped it up and submitted it to a peer-reviewed journal. But the temptation to share was too strong, so we [&#8230;]</p>
<p>Message <a href="https://openforecast.org/2025/04/11/svetunkov-sroginis-2025-model-based-demand-classification/">Svetunkov &#038; Sroginis (2025) &#8211; Model Based Demand Classification</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>For the last year, Anna Sroginis and I have been working on a paper, trying to modernise demand classification schemes and make them useful in the brave new era of machine learning. We have finally wrapped it up and submitted it to a peer-reviewed journal. But the temptation to share was too strong, so we have also uploaded it to arXiv, and it is <a href="https://doi.org/10.48550/arXiv.2504.05894">now available here</a>.</p>
<p>What is this paper about?</p>
<p>Intermittent demand is a common challenge in sectors like supply chain and retail. But the key issue is that zeroes in sales can happen for two fundamentally different reasons (<a href="/2024/11/18/why-zeroes-happen/">see one of my previous posts</a>):</p>
<ul>
<li>Nobody wanted to buy the product (naturally occurring zeroes),</li>
<li>Nobody could buy the product (artificially occurring due to stockouts, etc).</li>
</ul>
<p>However, forecasting methods are typically unaware of this distinction and treat both types equally. This can lead to inaccurate forecasts and poor decisions. On top of that, existing classification schemes for intermittent demand (<a href="/2024/07/16/intermittent-demand-classifications-is-that-what-you-need/">such as SBC</a>) use arbitrary thresholds and rely on choosing between forecasting methods like Croston and SBA. There’s a clear need for smarter, more flexible tools that can distinguish between types of demand and make classifications practical.</p>
<p>In this paper, we introduce a two-stage, model-based framework called &#8220;Automatic Identification of Demand&#8221; (AID), designed to bring more clarity and accuracy to demand classification. The first stage uses a data-driven approach to detect artificially occurring zeroes. Once those are accounted for, the second stage classifies the demand into one of six categories based on key characteristics: whether the demand is regular or intermittent, whether it consists of count or fractional values, and whether intermittent demand is smooth or lumpy in nature. AID detects stockouts by analysing demand intervals using the Geometric distribution, then flags the demand as one of those six types based on several simple statistical models.</p>
<p>We applied AID to a retailer dataset covering over 31,000 products with weekly sales across three stores. Based on that, we generated several features and tested multiple approaches (local level, pooled regression, and LightGBM) to see whether their accuracy improved. We found that:</p>
<ol>
<li>Correcting for stockouts significantly improved the accuracy of all approaches;</li>
<li>Using a mixture approach (separating demand into sizes and occurrences) yielded large gains in accuracy, regardless of the forecasting method used;</li>
<li>Further splitting the data by demand categories (e.g., regular vs. intermittent, smooth vs. lumpy) provided additional, though more modest, benefits.</li>
</ol>
<p>We argue that these three principles are universally valuable for forecasting, no matter what approach you use. If you face intermittent demand, at a minimum, consider detecting stockouts and then using the mixture approach.</p>
<p>Hope you find this paper useful. Let me know what you think in the comments.</p>
<p>Message <a href="https://openforecast.org/2025/04/11/svetunkov-sroginis-2025-model-based-demand-classification/">Svetunkov &#038; Sroginis (2025) &#8211; Model Based Demand Classification</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openforecast.org/2025/04/11/svetunkov-sroginis-2025-model-based-demand-classification/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>A paper to read over the Xmas holiday: Wang et al. (2023) &#8211; Forecast combinations: An over 50-year review</title>
		<link>https://openforecast.org/2024/12/23/a-paper-to-read-over-the-xmas-holiday-2024/</link>
					<comments>https://openforecast.org/2024/12/23/a-paper-to-read-over-the-xmas-holiday-2024/#respond</comments>
		
		<dc:creator><![CDATA[Ivan Svetunkov]]></dc:creator>
		<pubDate>Mon, 23 Dec 2024 14:38:51 +0000</pubDate>
				<category><![CDATA[Social media]]></category>
		<category><![CDATA[Theory of forecasting]]></category>
		<category><![CDATA[combinations]]></category>
		<category><![CDATA[extrapolation methods]]></category>
		<category><![CDATA[theory]]></category>
		<guid isPermaLink="false">https://openforecast.org/?p=3755</guid>

					<description><![CDATA[<p>Christmas and the New Year are upon us, and I wanted to publish a celebratory post before taking a break. Instead of writing something educational, I decided to simply recommend a paper for you to read over the holidays &#8211; something you might have overlooked in the past couple of years. Here it is or [&#8230;]</p>
<p>Message <a href="https://openforecast.org/2024/12/23/a-paper-to-read-over-the-xmas-holiday-2024/">A paper to read over the Xmas holiday: Wang et al. (2023) &#8211; Forecast combinations: An over 50-year review</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Christmas and the New Year are upon us, and I wanted to publish a celebratory post before taking a break. Instead of writing something educational, I decided to simply recommend a paper for you to read over the holidays &#8211; something you might have overlooked in the past couple of years.</p>
<p><a href="https://doi.org/10.1016/j.ijforecast.2022.11.005">Here it is</a> or <a href="https://doi.org/10.48550/arXiv.2205.04216">here</a>.</p>
<p>This paper, written by Xiaoqian Wang, Rob Hyndman, Feng Li, and Yanfei Kang, is a 50-year literature review on the topic of forecast combinations. The authors conduct a thorough review of the literature in this area. They begin by discussing implications for point forecasts, covering different combination methods such as linear and non-linear approaches, learning-based combinations, pooling, and more. Then, they shift their focus to probabilistic forecast combinations, exploring what it means to combine quantiles and how to make them better calibrated. As expected, the paper ends with conclusions, but the authors go further, summarising some of the gaps in the literature &#8211; a helpful starting point for those interested in forecasting research.</p>
<p>I admit that this paper has nothing to do with Christmas, but I feel it’s a fitting way to say &#8220;Good bye&#8221; to the year 2024. While we’ve seen remarkable developments in machine learning over the past year, I feel that some people are starting to lose sight of basic forecasting principles. This paper discusses one of the important ones: combinations often produce more robust forecasts than individual models, explained here in great detail.</p>
<p>Merry Christmas, Happy New Year, and see you in 2025!</p>
<p>Message <a href="https://openforecast.org/2024/12/23/a-paper-to-read-over-the-xmas-holiday-2024/">A paper to read over the Xmas holiday: Wang et al. (2023) &#8211; Forecast combinations: An over 50-year review</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openforecast.org/2024/12/23/a-paper-to-read-over-the-xmas-holiday-2024/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Intermittent demand: don&#8217;t try to predict WHEN it will happen</title>
		<link>https://openforecast.org/2024/12/11/intermittent-demand-don-t-try-to-predict-when-it-will-happen/</link>
					<comments>https://openforecast.org/2024/12/11/intermittent-demand-don-t-try-to-predict-when-it-will-happen/#respond</comments>
		
		<dc:creator><![CDATA[Ivan Svetunkov]]></dc:creator>
		<pubDate>Wed, 11 Dec 2024 10:50:26 +0000</pubDate>
				<category><![CDATA[Social media]]></category>
		<category><![CDATA[Theory of forecasting]]></category>
		<category><![CDATA[extrapolation methods]]></category>
		<category><![CDATA[intermittent demand]]></category>
		<category><![CDATA[theory]]></category>
		<guid isPermaLink="false">https://openforecast.org/?p=3748</guid>

					<description><![CDATA[<p>I&#8217;ve seen several times ML experts applying principles of classification for intermittent demand forecasting. For example, they try predicting, WHEN the demand will happen. This is not a very sensible thing to do. The featured image in this post shows two forecasting approaches: one that tries to predict when demand happens (the yellow line), and [&#8230;]</p>
<p>Message <a href="https://openforecast.org/2024/12/11/intermittent-demand-don-t-try-to-predict-when-it-will-happen/">Intermittent demand: don&#8217;t try to predict WHEN it will happen</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve seen several times ML experts applying principles of classification for intermittent demand forecasting. For example, they try predicting, WHEN the demand will happen. This is not a very sensible thing to do.</p>
<p>The featured image in this post shows two forecasting approaches: one that tries to predict when demand happens (the yellow line), and the other one that tries capturing the structure of the demand and extrapolates it (the blue line). The green line shows the values in the holdout, and the RMSE indicates the error of the two approaches. Apparently, the straight line is better in this example. Let&#8217;s discuss why.</p>
<p>Just a reminder, intermittent demand is the demand that happens at irregular frequency. By definition, we cannot know when a person will come to our store and buy the product. We operate with probabilities in this case, and can say sometimes that the probability of purchase goes up or down due to some factors (seasonality, holidays, promotion etc). When a spherical ML expert in vacuum hears about probability, the first thing that pops to their mind is the &#8220;decision boundary&#8221; for classification task. Why not set some threshold and say that if the probability is higher than that, the product will be bought and in the other case it won&#8217;t?</p>
<p>Well, while this works in classification, it typically doesn&#8217;t make sense in demand forecasting.</p>
<p>First, there&#8217;s not much structure to capture in intermittent demand besides the basic level, external factors, such as promotions and calendar effects, and occasional trend. Yes, some of them might change the probability of occurrence, and, for example, show that a product will be bought on Monday with 90% probability. This still does not mean that the product will be indeed bought. Saying that it will is just informed guessing, not forecasting.</p>
<p>Second, point forecast is supposed to capture the structure and filter out the noise (see <a href="/2024/08/13/structure-vs-noise-a-fundamental-concept-in-forecasting/">this post</a>). In case of intermittent demand, the structure consists of two parts: expected occurrence (probability) and demand sizes. If we substitute the probability with zeroes and ones based on some threshold, we&#8217;ll end up overfitting the noise, but on a different level than usually: the future is uncertain and we can never say for sure what will happen and when, yet we would be playing a guessing game, hoping to be correct. It is like tossing a coin, trying to guess how it will land next time. If you want to have an expectation in that experiment, you should have probability, not a sequence of zeroes and ones.</p>
<p>Third and most important, working with intermittent demand, we typically want to solve a specific problem. The classical example is inventory management, in which case we don&#8217;t care whether customers will come and buy our product on Monday, instead of Tuesday. We care about having enough product on shelves to satisfy customers throughout a period of time, while our product is being delivered (lead time). So, the goal in this case is to identify the appropriate safety stock level based on the current stock and thus get an estimate of the demand over lead time, not to predict when people come and how much they will buy. Focusing on the point forecast in this setting is a futile task.</p>
<p>So, when working with intermittent demand, don&#8217;t waste your time on trying to forecast when the demand will happen. Focus instead on getting the structure correctly and then understanding what is needed by decision makers and how it will be used.</p>
<p>Message <a href="https://openforecast.org/2024/12/11/intermittent-demand-don-t-try-to-predict-when-it-will-happen/">Intermittent demand: don&#8217;t try to predict WHEN it will happen</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openforecast.org/2024/12/11/intermittent-demand-don-t-try-to-predict-when-it-will-happen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Why Naive is not a good benchmark for intermittent demand</title>
		<link>https://openforecast.org/2024/12/02/why-naive-is-not-a-good-benchmark-for-intermittent-demand/</link>
					<comments>https://openforecast.org/2024/12/02/why-naive-is-not-a-good-benchmark-for-intermittent-demand/#comments</comments>
		
		<dc:creator><![CDATA[Ivan Svetunkov]]></dc:creator>
		<pubDate>Mon, 02 Dec 2024 14:05:53 +0000</pubDate>
				<category><![CDATA[Forecast evaluation]]></category>
		<category><![CDATA[Social media]]></category>
		<category><![CDATA[Theory of forecasting]]></category>
		<category><![CDATA[extrapolation methods]]></category>
		<category><![CDATA[intermittent demand]]></category>
		<guid isPermaLink="false">https://openforecast.org/?p=3739</guid>

					<description><![CDATA[<p>While Naive is considered a standard benchmark in forecasting, there is a case where it might not be a good one: intermittent demand. And here is why I think so. Naive is a forecasting method that uses the last available observation as a forecast for the next ones. It does not have any parameters to [&#8230;]</p>
<p>Message <a href="https://openforecast.org/2024/12/02/why-naive-is-not-a-good-benchmark-for-intermittent-demand/">Why Naive is not a good benchmark for intermittent demand</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>While Naive is considered a standard benchmark in forecasting, there is a case where it might not be a good one: intermittent demand. And here is why I think so.</p>
<p>Naive is a forecasting method that uses the last available observation as a forecast for the next ones. It does not have any parameters to estimate, it does not require training, it can be applied to the sample of any data (even if you only have one observation). When you deal with a regular demand, it makes perfect sense to use Naive as a benchmark, because it costs nothing in terms of computational time, you get a forecast of demand, and if you cannot beat it, you should rethink your forecasting process.</p>
<p>However, in case of intermittent demand, the demand itself does not happen on every observation. As a result, when the Naive copies the last available value, it can either reproduce either a proper non-zero demand, or just the absence of demand. The latter implies that nobody bought our product today, and nobody will do in the next week or whatever the forecasting horizon we use. In the following image, Naive will be the most accurate forecasting method, because in the training set, the final observation was zero, and in the test set we did not have any sales:</p>
<div id="attachment_3741" style="width: 310px" class="wp-caption aligncenter"><a href="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2024/12/2024-11-01-Naive-Intermittent-01.png&amp;nocache=1"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-3741" src="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2024/12/2024-11-01-Naive-Intermittent-01-300x180.png&amp;nocache=1" alt="Naive forecast on intermittent demand" width="300" height="180" class="size-medium wp-image-3741" srcset="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2024/12/2024-11-01-Naive-Intermittent-01-300x180.png&amp;nocache=1 300w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2024/12/2024-11-01-Naive-Intermittent-01-768x461.png&amp;nocache=1 768w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2024/12/2024-11-01-Naive-Intermittent-01.png&amp;nocache=1 1000w" sizes="(max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-3741" class="wp-caption-text">Naive forecast on intermittent demand</p></div>
<p>But is this useful? To answer this question, we need to understand what specifically we are forecasting when we deal with demand with zeroes.</p>
<p>As discussed in a <a href="/2024/11/18/why-zeroes-happen/">previous post</a>, zeroes can occur for different reasons: some of them happen because nobody came to buy the product (naturally occurring zeroes), while the others appear because there was some sort of disruption (e.g. a stockout) or a product was discontinued (artificially occurring zeroes). The two situations are fundamentally different, but if we work with the sales data exclusively (no stock information), it can be hard to tell the difference between them. Naive might work perfectly in both cases, forecasting no sales for the next few observations, and it can be 100% right in some cases. But the problem is that this is not useful. If we indeed cannot beat Naive on the data with zeroes, it does not mean that we should use it, because there is a chance that we have stockouts in the holdout period. If that&#8217;s the case, we might be doing something fundamentally wrong. After all, &#8220;we will not sell anything&#8221; is in general a simple statement, but not ordering products based on that could be a mistake, because &#8220;no sales&#8221; is not the same as &#8220;no demand&#8221;. In fact, if Naive indeed performs very well on your series with zeroes, this might indicate that your evaluation is wrong and you need to clean the data, removing the discontinued and out of stock items from the evaluation.</p>
<p>There are three lessons here:</p>
<ol>
<li>we should forecast demand, not sales;</li>
<li>we should measure accuracy on the data with naturally occurring zeroes &#8211; do data cleaning before setting up your evaluation;</li>
<li>it&#8217;s better to use a benchmark that tries capturing demand, not the one that reproduces sales.</li>
</ol>
<p>Arguably, a more helpful benchmark forecast would be the one in the following image:</p>
<div id="attachment_3742" style="width: 310px" class="wp-caption aligncenter"><a href="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2024/12/2024-11-01-Naive-Intermittent-02.png&amp;nocache=1"><img decoding="async" aria-describedby="caption-attachment-3742" src="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2024/12/2024-11-01-Naive-Intermittent-02-300x180.png&amp;nocache=1" alt="Forecast for intermittent demand from the SMA" width="300" height="180" class="size-medium wp-image-3742" srcset="https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2024/12/2024-11-01-Naive-Intermittent-02-300x180.png&amp;nocache=1 300w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2024/12/2024-11-01-Naive-Intermittent-02-768x461.png&amp;nocache=1 768w, https://openforecast.org/wp-content/webpc-passthru.php?src=https://openforecast.org/wp-content/uploads/2024/12/2024-11-01-Naive-Intermittent-02.png&amp;nocache=1 1000w" sizes="(max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-3742" class="wp-caption-text">Forecast for intermittent demand from the SMA</p></div>
<p>The forecast above was generated using the <a href="/2024/10/28/why-is-it-hard-to-beat-simple-moving-average/">Simple Moving Average</a>, and it tells us that there is a demand for the product over the next 13 days. Yes, it is less accurate than Naive, but it gives an estimate of the expected demand, not the expected sales.</p>
<p>Message <a href="https://openforecast.org/2024/12/02/why-naive-is-not-a-good-benchmark-for-intermittent-demand/">Why Naive is not a good benchmark for intermittent demand</a> first appeared on <a href="https://openforecast.org">Open Forecasting</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://openforecast.org/2024/12/02/why-naive-is-not-a-good-benchmark-for-intermittent-demand/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
