What kind of forecasting models are you using internally? This is a question frequently asked both by customers and partners of Lokad.
Addressing this question is tricky for us for two reasons:
- Our technology is a core asset. Thus, we have no plan to disclose all the details (although we aren’t utterly secretive either).
- Our technology is complex. We are using many models, and a cornerstone component is precisely the model selection.
Thus, rather than giving the exact list of models used by Lokad, I am going to list my own personal list of favorite models. I don’t claim that these models that represent the complete list of models used at Lokad nor that all these models are actually used in production at Lokad; yet it should give you some insights in what we are doing at Lokad.
First there are the plain old classics: autoregressive, moving average, (double, triple) exponential smoothing, Box-Jenkins, Holt-Winters, ARMA, ARIMA … Those models typically handle neither multi-series nor tags or events; yet simplicity is king is many situations. Don’t discard moving average just because it looks too simple to be good.
Then, for more advanced models, I’d rather speak of approaches than models. Indeed, the more complex the model, the more latitude is left to the mathematician to tweak in subtle ways the behavior of the forecasting model.
The Bayesian approach: establishing graphs of relationships is especially useful in the context of Lokad where we exploit correlations between time-series. It’s also useful in order to deal with tags and events.
The vast margin approach: Support Vector Machines (SVM) have become incredibly popular those days. Although, as far time-series are concerned, it’s rather Support Vector Regression (SVR) that is the most useful for us. As a minor drawback, SVM and SVR are typically quite expensive in terms of raw processing power.
The mixture / boosting approach: mixing loads of simple predictors in order in improve the overall forecast works well. The combination of large number of simple predictors can be used to reflect really complex behaviors.
The meta-heuristic approach: genetic algorithm, neural networks, genetic programming and other evolutive / adaptive approaches. Those approaches are powerful but also notoriously known for their intrinsic sensibility to many tuning parameters.
As final note, our technology is still going under a fast-paced evolution. New models get put in production every month or so. This list isn’t definitive and cloud computing is actually creating a lot of opportunities for us to push models that were just too expensive in the past.