Skip to content

CFA Level II Exam · Time-Series Analysis

Seasonality, ARCH Models and Forecast Accuracy (RMSE)

Updated 7 October 2026 · Fact-checked

Seasonality is a repeating pattern tied to the calendar, found when residual autocorrelation is significant at the seasonal lag and fixed by adding a seasonal lag to the AR model. ARCH tests whether error variance depends on past squared errors. Forecast accuracy is compared using out-of-sample RMSE; lower is better.

Understand Seasonality, ARCH and Forecast Accuracy

A time-series model can fail in three ways that the exam likes to test. The pattern may repeat each year or quarter and the model ignores it. The error variance may change over time. Or the model may fit the past well but forecast badly. This topic gives you a tool for each.

Seasonality is a regular pattern at the same point in each year, such as retail sales rising every fourth quarter. To detect it, fit your AR model and look at the autocorrelations of the residuals. If the autocorrelation at the seasonal lag is statistically significant (lag 4 for quarterly data, lag 12 for monthly data), the model has missed seasonality. You test each autocorrelation with a t-statistic: t = autocorrelation ÷ (1 ÷ √T), where T is the number of observations. Compare it with the critical t-value. The fix is to add the seasonal lag as an extra independent variable, for example x(t) = b0 + b1·x(t−1) + b2·x(t−4) + ε(t) for quarterly data. After the fix, the seasonal-lag residual autocorrelation should no longer be significant.

ARCH (autoregressive conditional heteroskedasticity) exists when the variance of the error in one period depends on the squared error in the previous period. Ordinary AR standard errors are then invalid, and so are the tests built on them. To test for ARCH(1), regress the squared residuals on their own lagged value: ε²(t) = a0 + a1·ε²(t−1) + u(t). If a1 is significantly different from zero, ARCH is present. If ARCH exists, you can predict next-period variance as a0 + a1·ε²(t). This is useful for option pricing and risk measurement. Alternatively, use generalized least squares or other methods that correct the standard errors.

Forecast accuracy is judged by root mean squared error (RMSE): square each forecast error, average the squares, then take the square root. The model with the lowest RMSE is the most accurate. In-sample forecast errors are the residuals within the data used to fit the model. Out-of-sample errors come from data the model has not seen, so they show how it would really perform. Always prefer out-of-sample RMSE when the question gives both. A model with a low in-sample RMSE can still forecast badly, so a simpler model sometimes wins out of sample.

When you regress one time series on another, the series must be handled with care. If neither has a unit root, ordinary regression is fine. If exactly one has a unit root, the regression is invalid. If both have unit roots, test for cointegration: the two series share a long-term economic link so that a linear combination of them is stationary. If they are cointegrated, the regression is valid and measures the long-term relation. If not, the regression is invalid. The Engle-Granger test applies a Dickey-Fuller test to the residuals of the regression, using special critical values.

Key formulas to remember

Seasonal AR model (quarterly)
x(t) = b0 + b1·x(t−1) + b2·x(t−4) + ε(t)
Add the seasonal lag (4 for quarterly, 12 for monthly) to the model.
t-test for residual autocorrelation
t = ρ(k) ÷ (1 ÷ √T), with T − 2 degrees of freedom
ρ(k) is the residual autocorrelation at lag k. Significant at the seasonal lag means seasonality is present.
ARCH(1) test regression
ε²(t) = a0 + a1·ε²(t−1) + u(t)
If a1 is significantly different from zero, ARCH(1) is present.
ARCH variance forecast
σ²(t+1) = a0 + a1·ε²(t)
Use the estimated a0 and a1 and the latest squared residual.
RMSE
RMSE = √[ Σ(forecast error)² ÷ n ]
Lower out-of-sample RMSE means a more accurate model.
Two-series regression rule
Neither has unit root: valid. One has unit root: invalid. Both have unit roots: valid only if cointegrated.
Test cointegration with the Engle-Granger test on the regression residuals.

How to solve Seasonality, ARCH and Forecast Accuracy questions

Start by naming which of the three problems the vignette describes. Then apply the matching test and read the result against the critical value.

  1. 1Read the question stem first and identify the issue: seasonality, ARCH, forecast accuracy, or two-series regression.
  2. 2For seasonality, find the residual autocorrelations in the exhibit and pick the one at the seasonal lag (4 or 12).
  3. 3Compute the t-statistic as autocorrelation × √T and compare it with the critical t-value given. If it exceeds it in absolute value, seasonality is present.
  4. 4For ARCH, look at the regression of squared residuals on lagged squared residuals. Test a1 with its t-statistic. If significant, ARCH is present, and you can forecast variance as a0 + a1·ε².
  5. 5For accuracy, use out-of-sample RMSE unless told otherwise. If errors are given, square them, average, and take the square root. Choose the lowest.
  6. 6For two series, check unit root results for each. Then apply the rule: both unit roots need a cointegration test; one unit root means invalid.
  7. 7State the conclusion in the form the options use, such as 'add a seasonal lag' or 'regression is valid'.

Quickest way: Three-second triage by exhibit type

When to use it: Use when the item set is long and you have little time per question.

  1. Residual autocorrelation table: go straight to the seasonal lag and ignore the others.
  2. Squared residual regression: check only whether the a1 t-statistic exceeds the critical value.
  3. Table of RMSEs: pick the out-of-sample column and choose the smallest number.
  4. Two series with unit root results: count the unit roots (0, 1, or 2) and apply the rule directly.

Common mistakes in Seasonality, ARCH and Forecast Accuracy

  • Testing the wrong lag for seasonality

    Exhibits show several lags and candidates look at lag 1 first.

    Fix: Quarterly data means lag 4, monthly data means lag 12. Only that lag signals seasonality.

  • Choosing the model with the lowest in-sample RMSE

    It looks like the best fit, so it seems the best model.

    Fix: Forecasting performance is judged out of sample. Use that RMSE when both are shown.

  • Treating a significant ARCH result as a problem with the mean equation

    Candidates confuse heteroskedasticity of errors with serial correlation of errors.

    Fix: ARCH concerns the variance of the errors, tested using squared residuals. Standard errors are unreliable, but it also lets you forecast variance.

  • Running a regression on two unit-root series without checking cointegration

    Candidates assume a high R² means the regression is valid.

    Fix: If both series have unit roots, the regression is valid only if they are cointegrated.

  • Forgetting the square root in RMSE

    Candidates stop after averaging the squared errors.

    Fix: RMSE is the square root of the mean squared error. Check units match the original errors.

Worked examples

Example 1

An analyst fits an AR(1) model to 64 quarterly observations of a company's sales growth. The residual autocorrelations are: lag 1 = 0.05, lag 2 = −0.10, lag 3 = 0.08, lag 4 = 0.36. The critical t-value at 5% is 2.00. (1) Is seasonality present? (2) What should the analyst do?

Show the solution
  1. The data are quarterly, so the seasonal lag is 4.
  2. Standard error of each autocorrelation = 1 ÷ √64 = 1 ÷ 8 = 0.125.
  3. t at lag 4 = 0.36 ÷ 0.125 = 2.88.
  4. 2.88 is greater than 2.00, so the lag-4 autocorrelation is significant.
  5. The model has missed seasonality. Add the fourth lag of the variable as an extra regressor.

Answer: Seasonality is present (t = 2.88 > 2.00). Add x(t−4) to the model.

Example 2

An analyst regresses squared residuals from a model on their own first lag and gets a0 = 0.40 and a1 = 0.30. The a1 t-statistic is 3.10 against a critical value of 2.00. The latest residual was 2.0. Another analyst compares two models. Model A: in-sample RMSE 1.2, out-of-sample RMSE 2.4. Model B: in-sample RMSE 1.8, out-of-sample RMSE 2.0. (1) Is ARCH(1) present? (2) Forecast next-period error variance. (3) Which model is preferred?

Show the solution
  1. a1 t-statistic of 3.10 exceeds 2.00, so a1 is significant and ARCH(1) is present.
  2. Latest squared residual = 2.0² = 4.
  3. Forecast variance = a0 + a1 × ε² = 0.40 + 0.30 × 4 = 0.40 + 1.20 = 1.60.
  4. Compare out-of-sample RMSE: Model B is 2.0 and Model A is 2.4.
  5. Model B has the lower out-of-sample RMSE, so it is preferred.

Answer: ARCH(1) is present; forecast variance is 1.60; Model B is preferred.

Exam tips

  • Look for the data frequency in the vignette. It tells you the seasonal lag before you read the exhibit.
  • When an exhibit gives both in-sample and out-of-sample RMSE, the question is almost always testing whether you pick the out-of-sample one.
  • For ARCH, the key signal is the coefficient on the lagged squared residual, not the original model's slope.
  • For two time series, write down the unit root result for each series first. The answer follows from the rule.
  • Use the critical value given in the exhibit. Do not substitute 1.96 from memory when a different value is stated.

Seasonality, ARCH and Forecast Accuracy in other exams

The same ground in other exams, if you are preparing for more than one or want another angle on it.

Seasonality, ARCH and Forecast Accuracy: frequently asked questions

How do I detect seasonality in an AR model?

Examine the autocorrelations of the model residuals. If the autocorrelation at the seasonal lag (4 for quarterly, 12 for monthly) is significantly different from zero, seasonality is present. Test it with t = autocorrelation × √T.

What does ARCH mean and why does it matter?

ARCH means the variance of the error depends on previous squared errors. It makes ordinary standard errors invalid. It also lets you forecast future variance, which helps in risk management and option pricing.

Why is out-of-sample RMSE better than in-sample RMSE?

In-sample errors come from the data used to estimate the model, so they can look good through over-fitting. Out-of-sample errors come from fresh data and show real forecasting ability. The model with the lowest out-of-sample RMSE is preferred.

When do I need a cointegration test?

You need it when both time series in a regression have unit roots. If they are cointegrated, the regression is valid for the long-term relation. If they are not, the regression is invalid.