N. Kourentzes, 2014, International Journal of Production Economics, 156: 180-190. http://dx.doi.org/10.1016/j.ijpe.2014.06.007

Intermittent demand time series involve items that are requested infrequently, resulting in sporadic demand. Croston’s method and its variants have been proposed in the literature to address this forecasting problem. Recently other novel methods have appeared. Although the literature provides guidance on the suggested range for model parameters, a consistent and valid optimisation methodology is lacking. Growing evidence in the literature points against the use of conventional accuracy error metrics for model evaluation for intermittent demand time series. Consequently these may be inappropriate for parameter or model selection. This paper contributes to the discussion by evaluating a series of conventional time series error metrics, along with two novel ones for parameter optimisation for intermittent demand methods. The proposed metrics are found to not only perform best, but also provide consistent parameters with the literature, in contrast to conventional metrics. Furthermore, this work validates that employing different parameters for smoothing the non-zero demand and the inter-demand intervals of Croston’s method and its variants is beneficial. The evaluated error metrics are considered for automatic model selection for each time series. Although they are found to perform similarly to theory driven model selection schemes, they fail to outperform single models substantially. These findings are validated using both out-of-sample forecast evaluation and inventory simulations.

Download paper.

R code available. An interactive demo of the various optimisation cost functions can be found here.

hi, I’ve recently started studying about forecasting the spare parts. I read some of your articles and they were very useful. I had data for 36 monthes and I forecasted the demand rate by Syntetos-Boylan method in R. this is my code in R :

> v t foo foo

now I have multiple values for frc.in (in sample demand rate) and a constant value as frc.out(out of sample demand rate).I want to calculate error by PIS method. I’ve already known the formula according to your paper,but I’ll appreciated if you explain this method according to my data.thanks. (sorry for my bad English, i’m not native)

I think some how my code is gone!!!so I write it here again :

> v t foo foo

Hi Freddy,

I still cannot see your code, but I think I understand your question. With PIS it is important to be clear about the span of periods you want to measure it. As it is a cumulative metric, it does not make much sense if measured for a single period.

So let

y.tstbe the actual values in the test period andfrc.outyour forecasts. To measure PIS over the complete test period you can write the following formula:`y.tst < - c(0,0,4,0,0,0,1,2) frc.out <- rep(0.8,8) PIS <- -sum(cumsum(y.tst-frc.out))`

If you wanted to calculate PIS over the first 5 periods only you would change it to:

`PIS < - -sum(cumsum(y.tst[1:5]-frc.out[1:5]))`

thanks, it was very helpful.

Pingback: Big Data Forecasting with R: Consumable Logistics for the Marine Corps - Enholm Heuristics

Thank you Mr. Nikolaos Kourentzes. It’s very nobal of you to help out complete strangers, selflessly.

I meant Nobel.

You are welcome! 🙂

Sir,

My output of TSB method remains constant through out the horizon period. As per my understanding it should be updating with time and decrease in cases of expected obsolescence and increases when expected values are above zero. Please let me know if my understanding is wrong and kindly help me

Thanks

Panchajanya

That is the correct output, TSB only updates in sample, which is one of the limitation of most intermittent demand methods.

What TSB does over Croston’s is that it updates for long stretches of zeros in-sample, so that the resulting forecast is lower when such periods occur. But the forecats itself is a flat line. Some of my more recent work maybe perhaps more helpful.