208. Naive
208.1. Naïve Forecast
The simplest possible forecast: next value equals last value.
For a -step-ahead forecast: — flat extrapolation of the last observation.
208.1.1. When it’s the right choice
The naïve forecast is optimal for a random walk — a series where each step is the previous value plus mean-zero noise:
Examples of approximate random walks:
- Daily stock prices (efficient-market hypothesis)
- Daily exchange rates
- High-frequency series with no seasonality or trend
For these, no model can beat naïve because there’s no exploitable structure. Naïve is the textbook baseline: any forecaster should outperform it on series with structure, and not outperforming it is a flag that the data is essentially a random walk.
208.1.2. Variants
| Variant | Formula |
| Naïve | |
| Seasonal naïve | — repeat the value from one period ago, where is the seasonal period |
| Drift | — naïve + average historical drift |
Seasonal naïve is the surprisingly-good baseline for highly seasonal series (retail, weather, energy demand). Drift is the equivalent baseline for series with a clear trend.
208.1.3. Naïve as a benchmark
Always evaluate forecasts relative to naïve. Define the MASE (mean absolute scaled error):
: the model beats naïve. : it doesn’t — try a different model or accept that the series is a random walk.
The same logic applies to seasonal series with seasonal naïve as the denominator.
Example: Naïve forecast and the random-walk test
Given (last 5 days of a series):
| 1 | 2 | 3 | 4 | 5 | |
| 100 | 102 | 101 | 104 | 103 |
Step 1 — naïve 1-step forecast at
Step 2 — naïve -step forecasts
Flat at 103 forever.
Step 3 — drift variant
Average historical step: .
Step 4 — interpret
Since the series wandered up and down between 100 and 104 with no clear trend, naïve’s flat 103 is probably about as good as you can do. If a forecaster predicts something fancy and gets MASE > 1, the series is essentially noise — switch to naïve, save the effort.