Time Series · ML Systems Lab

When ARIMA Fails, When Prophet Fails, When LSTMs Fail: A Time Series Model Selection Guide

The most common time series mistake isn't using the wrong model — it's using any model before understanding the data. ARIMA, Prophet, and LSTMs each have specific failure modes. Most teams discover these failure modes in production, after the model is deployed, when a forecast catastrophically misses. Here's the framework that prevents that.

Time series model selection is backwards in most teams: pick the model first, tune it, evaluate it, deploy it. The correct order is the reverse: understand the data properties first, then select the model that fits those properties.

ARIMA, Prophet, and LSTMs are not interchangeable tools. Each assumes a different data generating process. When the data violates those assumptions, the model fails — often silently.

When ARIMA fails

ARIMA (AutoRegressive Integrated Moving Average) assumes: 1. The series is stationary after d differences 2. The autocorrelation structure is well-approximated by p AR terms and q MA terms 3. The errors are normally distributed

ARIMA fails when: the series has multiple seasonal periods (daily + weekly + yearly), when the relationship between lags is nonlinear, when there are structural breaks (a permanent level shift), or when you have too few data points to reliably estimate p, d, and q.

The diagnostic: if your ACF/PACF plots don't show clear cutoffs, ARIMA is misspecified. If your Ljung-Box test rejects (residuals are not white noise), you have unexplained structure.

ARIMA is still the right choice for: short univariate series (< 500 observations) with clear linear autocorrelation structure, no strong seasonality, and stable variance. It's interpretable, fast to train, and has well-understood uncertainty quantification.

When Prophet fails

Prophet (Facebook/Meta) decomposes the series into trend + seasonality + holidays. It uses a piecewise linear (or logistic) trend with automatic changepoint detection, and Fourier series for seasonality.

Prophet fails when: the series has complex interacting seasonality that isn't additive, when the trend is non-monotonic in a way that doesn't fit piecewise linear assumptions, when the series has long-range dependencies beyond the seasonality components, or when you need well-calibrated prediction intervals (Prophet's uncertainty intervals are often too wide or too narrow in practice).

The common mistake: using Prophet because it's easy to use. The default parameters (25 changepoints, additive seasonality) are not universally appropriate. A series with strong multiplicative seasonality (where seasonal amplitude scales with the trend level) needs `seasonality_mode='multiplicative'`. A series with few changepoints needs `n_changepoints=5`.

Prophet is the right choice for: business time series with strong weekly and annual seasonality, known holidays, and a monotonic trend. Retail, web traffic, and appointment volumes are good fits. Sub-daily series are not.

When LSTMs fail

LSTMs are the choice when you want the model to learn complex nonlinear temporal dependencies from the data, without specifying a functional form. They can theoretically model anything.

In practice, LSTMs fail on time series for specific reasons:

1. Data volume: An LSTM needs thousands of complete seasonality cycles to learn seasonal patterns. If you have 2 years of daily data (730 observations), an LSTM will overfit to noise rather than learn the annual cycle.

2. Stationarity: LSTMs learn from sequences. If the series has trend or non-stationarity, the training and test distributions are different by construction. You must detrend and difference before training, then un-transform predictions.

3. Uncertainty quantification: A standard LSTM produces a point forecast. Prediction intervals require Monte Carlo Dropout, deep ensembles, or conformal prediction wrapping — none of which are trivial to implement correctly.

4. Hyperparameter sensitivity: LSTM performance is highly sensitive to sequence length, hidden units, learning rate schedule, and dropout rate. Random search over this space with a small dataset produces misleading results.

LSTMs are the right choice when: you have thousands of related time series (demand forecasting across 10,000 SKUs — train one model across all), your series have complex nonlinear dependencies that domain knowledge suggests exist, and you have the data volume to support the model complexity.

The framework: data-first model selection

Before touching any model:

1. Plot the series. Trend? Seasonality? Structural breaks? Outliers? This takes 5 minutes and eliminates half your candidate models. 2. Test stationarity. ADF test. If non-stationary, difference until it is. The number of differences required is the d in ARIMA. 3. Count observations. < 200 → ARIMA or exponential smoothing. 200–2000 → Prophet or SARIMA. > 2000 with multiple series → consider neural methods. 4. Characterise seasonality. Single period, regular → Prophet. Multiple overlapping periods → Fourier terms. No clear pattern → ARIMA with no seasonal component, then test. 5. Check for structural breaks. Chow test or visual inspection. If breaks exist, either exclude pre-break data or add a regressor at the break point.

Then — and only then — select the model. Fit it. Check residuals for white noise (Ljung-Box). If residuals have structure, your model hasn't captured all the signal.

Continue interactively
Read this post inside ML Systems Lab — with Simplify toggle, interview Q&As, inline glossary, and the MLE Path forward pointer.
Open in MSL →