Why Establish Simple Forecast Benchmarks?
A complex time-series model is not useful merely because it fits the observed series closely. Its forecasts should be compared with sensible alternatives made from the same training period and at the same forecast origin. Drift, nonseasonal ARIMA, and seasonal-naive forecasts provide distinct reference points: a linear continuation of average change, a forecast from a fitted dynamic model, and a repetition of the most recent seasonal pattern.
These benchmarks answer different questions. Does the series continue to change at a roughly constant average rate? Does its nonseasonal dependence support a parsimonious ARIMA forecast? Does the seasonal pattern provide a strong baseline without estimating a more elaborate seasonal model? A fair comparison keeps the observed target and forecast horizon fixed while changing only the forecasting method.
Three Benchmarks and What They Assume
Let the training observations be \(y_1,\ldots,y_T\), with the forecast origin at time \(T\). The observations must be ordered at a regular frequency, such as monthly or quarterly, for horizon steps to have a consistent interpretation.
The drift forecast extends the average change per time interval between the first and last training observations. It is a straight-line benchmark; it does not estimate seasonal repetition.
Here \((y_T-y_1)/(T-1)\) is the average change over the \(T-1\) intervals in the training series. The drift forecast can rise or fall. It is not the same as a last-value forecast, which would use \(y_T\) for every future horizon.
A seasonal-naive forecast repeats the observation from the most recent matching seasonal position. If the seasonal period is \(m\) observations, its forecast is
For example, with quarterly data \(m=4\), the one-step forecast uses the observation from the same quarter in the previous year. At horizons beyond one seasonal cycle, the method repeats those last observed seasonal values. It does not estimate a trend; if the level has changed, the repeated values may be systematically high or low.
A nonseasonal ARIMA forecast uses a fitted autoregressive integrated moving-average model without seasonal terms. Its orders are written \((p,d,q)\): \(p\) autoregressive terms, \(d\) ordinary differences, and \(q\) moving-average terms. For instance, a stationary ARIMA(1,0,0) model with mean \(\mu\) is
where the innovations \(\varepsilon_t\) have mean zero, constant finite variance, and no serial correlation. The condition \(|\phi|<1\) gives a stationary autoregressive process. A fitted model's forecasts are conditional means based on the observed history and its specified parameters. Other ARIMA orders have different forecast recursions; do not apply the AR(1) formula to them. A nonseasonal ARIMA model does not automatically account for a repeating seasonal pattern.
Why the Drift Formula Is a Straight-Line Forecast
The drift method draws a line through the first and last training values. The slope of that line is the change in level divided by elapsed time intervals. To justify the forecast, set the line's slope to \(b=(y_T-y_1)/(T-1)\). Its value at the origin is \(y_T\), so advancing \(h\) intervals along that line gives \(y_T+hb\), which is exactly the drift formula.
This reasoning explains both the method's appeal and its limitation. It uses the net change over the entire training window, so intermediate ups and downs do not alter the slope directly. It is a transparent reference forecast, not a claim that every future change will equal that average.
Worked Example: Drift and Seasonal-Naive Forecasts
A hypothetical quarterly portfolio index has training values \(100,104,108,112,105,109,113,117\). The origin is the eighth quarter, and the seasonal period is \(m=4\). Calculate both benchmarks for horizons \(h=1,\ldots,6\).
Drift method. There are \(T=8\) observations and \(7\) intervals. The average change per interval is
Therefore the forecasts are \(117+h(17/7)\). At horizons 1 through 6 they are, before rounding, \(119.4286,\ 121.8571,\ 124.2857,\ 126.7143,\ 129.1429,\ 131.5714\). Rounded to two decimals, the drift forecasts are \(119.43,\ 121.86,\ 124.29,\ 126.71,\ 129.14,\ 131.57\).
Seasonal-naive method. With \(m=4\), the forecast at \(h=1\) is \(y_{8+1-4}=y_5=105\). At \(h=2\), it is \(y_6=109\); at \(h=3\), \(y_7=113\); and at \(h=4\), \(y_8=117\). The seasonal pattern then repeats: \(h=5\) uses \(y_5=105\), and \(h=6\) uses \(y_6=109\).
Thus the seasonal-naive forecasts are \(105,109,113,117,105,109\). The two methods differ substantially because drift extrapolates an average overall increase, while seasonal naive repeats the observed within-year pattern without adjusting its level. The calculations use the same origin and training values, as required for a meaningful benchmark comparison. A common mistake would be to use \(y_8=117\) at every seasonal-naive horizon; that would be a last-value forecast, not a seasonal-naive forecast.
Forecasting from a Fitted Nonseasonal ARIMA Model
Once an ARIMA specification has been fitted using the training period, calculate its forecasts using that model's recursion. For a stationary ARIMA(1,0,0), define the forecast at each step as the conditional mean given observations available at the origin. The one-step forecast replaces the next innovation by its conditional expectation, zero. At later steps, the previous forecast is used because the future observation is not yet known.
Worked Example: Multi-Step Forecasts from an AR(1) Model
A hypothetical monthly exposure index is modeled by a fitted stationary ARIMA(1,0,0) model with estimated mean \(\hat{\mu}=50\) and estimated autoregressive coefficient \(\hat{\phi}=0.6\). The last observed value is \(y_T=55\). Find forecasts for the next three months.
Model and method. Use the fitted conditional-mean recursion
with the actual \(y_T\) in place of the preceding forecast for the first step. The coefficient satisfies \(|0.6|<1\), as required for this stationary AR(1) specification.
Month 1. Use the observed final value:
Month 2. Use the month-1 forecast:
Month 3. Use the month-2 forecast:
The forecasts are \(53,\ 51.8,\ 51.08\). Each step moves the forecasted deviation from the mean toward zero by a factor of \(0.6\). The method avoids a common error: repeatedly substituting the last observed value \(55\) at every horizon would give three copies of the one-step forecast and ignore the model's multi-step recursion. The stated forecasts are checked by noting that their deviations from 50 are \(3,\ 1.8,\ 1.08\), each \(0.6\) times the preceding deviation.
Compare Methods on a Common Forecast Origin
To compare benchmark accuracy, make each forecast using the same training observations and origin, then compare forecasts with the same observed future targets. A simple scale-dependent summary is the mean absolute error (MAE), the average of the absolute forecast errors, and the root mean squared error (RMSE), the square root of the average squared forecast errors. Lower values indicate smaller errors on the chosen comparison set; neither measure makes an unfair comparison fair if the forecasts use different targets or origins.
Worked Example: Comparing Three Forecasts Against the Same Targets
Continue with training values \(16,17,18,19,20,21,22,24\), a quarterly seasonal period \(m=4\), and origin \(T=8\). For comparison, suppose the next three observed values are \(23,22,21\). A nonseasonal ARIMA(1,0,0) model has already been fitted on these same eight training observations, with \(\hat{\mu}=20\) and \(\hat{\phi}=0.5\). Calculate the three methods' forecasts and their errors on the common three-quarter comparison set.
Drift. The average change is \((24-16)/7=8/7\). The three forecasts are
Seasonal naive. The forecasts use \(y_5,y_6,y_7\), respectively, so they are \(20,21,22\).
ARIMA(1,0,0). Applying the recursion gives
The actual values are \(23,22,21\). The absolute errors are therefore:
| Method | Forecasts | Absolute errors | MAE | RMSE |
|---|---|---|---|---|
| Drift | 25.1429, 26.2857, 27.4286 | 2.1429, 4.2857, 6.4286 | 4.2857 | 4.628 |
| Seasonal naive | 20, 21, 22 | 3, 1, 1 | 1.6667 | 1.915 |
| ARIMA(1,0,0) | 22, 21, 20.5 | 1, 1, 0.5 | 0.8333 | 0.866 |
For example, the drift MAE is \((2.1429+4.2857+6.4286)/3=4.2857\), and its RMSE is \(\sqrt{(2.1429^2+4.2857^2+6.4286^2)/3}\approx4.628\). The seasonal-naive RMSE is \(\sqrt{(3^2+1^2+1^2)/3}=\sqrt{11/3}\approx1.915\). The ARIMA MAE is \((1+1+0.5)/3=0.8333\), and its RMSE is \(\sqrt{(1^2+1^2+0.5^2)/3}=\sqrt{0.75}\approx0.866\). Rounded values are shown to four decimals for MAE and three decimals for RMSE. On this comparison set, ARIMA has the smallest errors, but three targets alone are limited evidence; they do not establish that it will always forecast best.
This comparison avoids a common mistake: using the drift and seasonal-naive forecasts from one origin but evaluating the ARIMA forecasts on a different set of dates. The models are being judged against identical actual values, so the error summaries describe a genuine like-for-like comparison.
Practical Checks Before Choosing a More Complex Model
A benchmark is useful only when its construction is clear. Before comparing models, check the observation frequency, the seasonal period if relevant, the training endpoint, the forecast horizon, and the scale of the target. In particular, a quarterly series normally has \(m=4\), while a monthly series with annual seasonality normally has \(m=12\). A wrong seasonal period selects the wrong historical observation even when the formula is applied correctly.
Also keep estimation separate from evaluation. Parameters for an ARIMA benchmark must be fitted using the designated training observations, not future values that would be unavailable at the forecast origin. Comparing fitted values within the training sample is not the same as comparing forecasts for unobserved future targets. If a complex candidate cannot improve on reasonable simple benchmarks under a fair comparison, its added complexity needs justification.
- Drift is a linear continuation of net average change, not a seasonal forecast.
- Seasonal naive repeats the latest observation in the matching seasonal position, not the latest observation at every horizon.
- Nonseasonal ARIMA uses the fitted nonseasonal dependence structure; it does not automatically reproduce seasonal behavior.
- Fair comparison requires the same training window, origin, target dates, and error calculation.
Check Your Understanding
For each problem, use the stated training information and forecast origin. Answers are provided for checking.
- A series has six equally spaced training values \(12,13,14,15,16,17\). Use the drift method to forecast three steps ahead. (Answer: average change \(=1\); the three-step forecast is \(20\).)
- A quarterly series has its last eight observations \(5,7,9,11,6,8,10,12\). With seasonal period \(m=4\), give the seasonal-naive forecasts for horizons 1, 2, and 5. (Answer: \(6,8,6\).)
- A fitted stationary ARIMA(1,0,0) has \(\hat{\mu}=10\), \(\hat{\phi}=0.5\), and final observation \(y_T=14\). Find its two-step forecast. (Answer: \(12\) and \(11\).)
- Two methods forecast the same two targets, \(30\) and \(34\). Method A forecasts \(29\) and \(38\); method B forecasts \(32\) and \(33\). Calculate each method's MAE and RMSE and identify which is smaller on both measures. (Answer: A has MAE \(2.5\) and RMSE \(\sqrt{8.5}\approx2.915\); B has MAE \(1.5\) and RMSE \(\sqrt{2.5}\approx1.581\); method B is smaller on both.)
- A quarterly training series is \(20,22,24,26,21,23,25,27\). At the next quarter the actual value is \(25\). Compare the one-step drift and seasonal-naive forecasts by absolute error. (Answer: drift slope \(=1\), so its forecast is \(28\) and absolute error is \(3\); seasonal naive forecasts \(21\), with absolute error \(4\); drift is closer for this target.)