# Inference in Time Series: Prophet vs. ARIMA

I read through Prophet's white paper and they mention that their algorithm,

"gives up some important inferential advantages of a generative model such as an ARIMA." (page 7)

So now I'm curious, what advantages does an ARIMA have for inference?

In my opinion, the parameters/posterior from Prophet's Pystan implementation are relatively clear - are there any bold assumptions that Prophet's algorithm is making that may bias inference that I should be aware of?

ARIMA and similar models assume some sort of causal relationship between past values and past errors and future values of the time series: $$Y_{t+h}=f(Y_{t},Y_{t-1},Y_{t-2},....,\epsilon_{t},\epsilon_{t-1},\epsilon_{t-2},...)$$ e.g. the volatility of a stock today is causally driven by the volatility of that stock yesterday and two days ago, the population of a species this year is a direct function of the population of that same species last year, etc...

Facebook Prophet doesn't look for any such causal relationships between past and future. Instead, it simply tries to find the best curve to fit to the data, using a linear or logistic curve, and Fourier coefficients for the seasonal components. There is also a regression component, but that is for external regressors, not for the time series itself (The Prophet model is a special case of GAM - Generalized Additive Model).

Theoretically speaking, the assumptions underlying Prophet are indeed simplistic and weak - just fit the best curve to your historical data. Since fitting a curve to a limited data set over a specific time period doesn't impose any constraints on how the curve behaves outside of your historical data set, it is entirely possible that the best fitting curve will "go off the rails" outside of the historical time interval. For example, I have often noticed that Prophet can go negative in the future, even if the historical data set has only positive values, because the simplistic assumptions mean that it will naively perpetuate a downward trend forever.

This why prophet is recommended only for time series where the only informative signals are (relatively stable) trend and seasonality, and the residuals are just noise.

In theory, a more rigorous causal or structural approach is more likely to capture signals that will extrapolate into the future. More importantly, if the residuals are not just noise, then an ARIMA model or a Neural Network might be able to capture those relationships...in theory.

In practice, outside of the examples I mentioned above and a few others, the chances of finding a business time series where the underlying data generating process involves a causal relationship of the type $$Y_{t+h}=f(Y_{t},Y_{t-1},Y_{t-2},...)$$ are very slim. Think about it: why would sales for a grocery or fashion item ever be driven by a process of the form $$Y_t = a_1Y_{t-1}+...a_nY_{t-n}+c+\sigma(t)$$?

What causal mechanism would there be that says your sales of butter this week should be a linear combination of your butter sales last week and your butter sales from two weeks ago? Or that your web traffic today should be a linear combination of your web traffic from yesterday, two days ago, three days ago, and last week?

So at the end of the day, the assumptions of ARIMA and similar models end up being so strong and implausible that, for all of their mathematical rigor, they are just as add-hoc in practice as Prophet or Holt-Winters.

So the simplicity of Prophet's approach in practice makes sense for a lot of business time series. Moreover, the authors acknowledge this in their paper.

I played with Prophet a bit. They promise big. As I understood their claim was for the framework for massive forecasting. If you have 10,000 series to forecast, there's no way to do it manually. So, let's just run the thing on all of them automatically, and maybe we'll get a decent set of forecast on average.

In finance we also forecast massive numbers of series, e.g. loan loss forecasting may involve millions of loans in the portfolio. In this case we manually strat the portfolio, and manually build models for each strat then run the same model on all loans. Prophet would not need this, because it would estimate a separate model, potentially with its own variables for each loan.

However, I tried Prophet on a different problem. I had just a few series, and looked at the quality of the forecast. The problem that I saw was the "change point" detection. In essence, if I understood right what it's doing then Prophet adjusts the slope if it think it encountered a change point. That was a problem for me because we sometimes have temporary deviations from the mean, could be a different regime, then things get back to old way. In other words mean reversion is quite prevalent. Prophet would not be able to say what is a true change point. However, this is not a criticism of a framework. It's just difficult generally to detect a change point automatically or manually.

• Interesting insight about the forecasting of massive numbers of series, it is the same in retail demand forecasting, where millions of series (#products * #stores) are forecast on a weekly or daily basis. I'm curious though: Why do you see Prophet as providing an advantage in this case? In my field, highly scalable demand forecasting tools (SAP, Oracle, JDA, Manhattan Asscociates, etc...) predate Prophet by almost 2 decades. They are full fledged ERPs, built around sophisticated forecasting and model selection engines, not just elegant APIs that you would build custom code around.... Jun 17 '20 at 18:39
• (...continued) I always assumed Finance would have similar tools, but your answer (if I interpret it correctly) seems to imply that there are no such tools and FB Prophet is finally providing a solution to this. Is that indeed what you are implying? Or such tools in Finance do indeed exist? Do you mind sharing some names and links if that is the case? Jun 17 '20 at 18:42
• @SkanderH., no I'm not saying Prophet is such a tool. In finance, the products are quite common, e.g. Prime conforming 1st lien 15y mortgage etc. There are a lot of variations, of course. So a COTS solution would be to buy a model that covers many products you have, then you use that model. The models are hand tuned in many cases. You can build your own model any way you want, but practitioners tend to follow a similar approach by building strat models. That's why I'm saying building a model for an individual loan ground up would be an interesting approach if it was automated Jun 17 '20 at 18:46