CFA Level II · CFA Level II Exam
Time-Series Analysis: formula sheet
Key formulas
- Linear trend model
- y(t) = b0 + b1t + e(t)
- b1 is the constant change in y per period. t = 1, 2, ..., T.
- Log-linear trend model
- ln y(t) = b0 + b1t + e(t)
- b1 is the constant continuously compounded growth rate per period. y must be positive.
- Forecast from log-linear model
- ŷ(t) = exp(b0 + b1t)
- Compute the ln forecast first, then take the exponential. Do not forget this last step.
- Durbin-Watson statistic
- DW ≈ 2(1 − r)
- r is the correlation between residuals and lagged residuals. DW near 2 means no serial correlation. DW below 2 suggests positive serial correlation. DW above 2 suggests negative.
- Durbin-Watson decision rule
- Reject H0 (no positive serial correlation) if DW < dl; inconclusive if dl ≤ DW ≤ du; do not reject if DW > du
- dl and du come from a table given in the exam. They depend on sample size and number of independent variables.
- Trend model limitation
- Serial correlation → biased standard errors; t-tests unreliable
- The Durbin-Watson test is not valid for autoregressive models with a lagged dependent variable. For those, test residual autocorrelations with a t-test.
- AR(p) model
- x(t) = b0 + b1·x(t−1) + b2·x(t−2) + … + bp·x(t−p) + ε(t)
- AR(1) is the special case with only b1. Estimated by ordinary least squares on the lagged values.
- Covariance stationarity conditions
- E[x(t)] constant; Var[x(t)] constant; Cov[x(t), x(t−k)] depends only on k
- All three must hold for the AR model to be valid.
- Mean-reverting level (AR(1))
- x* = b0 ÷ (1 − b1)
- Exists only when b1 ≠ 1, and the series is stationary only if |b1| < 1.
- Chain-rule forecast (AR(1))
- x̂(t+1) = b0 + b1·x(t); x̂(t+2) = b0 + b1·x̂(t+1)
- Use the previous forecast as the input for the next period.
- Direction of mean reversion
- If x(t) > x*, next value is expected to fall; if x(t) < x*, it is expected to rise
- Holds for an AR(1) with 0 < b1 < 1 and finite x*.
- AR(1) model
- x(t) = b0 + b1·x(t−1) + ε(t)
- Forecast the next value from the current one.
- t-statistic for residual autocorrelation
- t = ρ(k) ÷ (1 ÷ √T) = ρ(k) × √T
- ρ(k) is the residual autocorrelation at lag k. T is the number of observations.
- Degrees of freedom for the test
- df = T − 2
- Compare |t| with the critical value. About 2 for large samples at 5%.
- Mean-reverting level (AR(1))
- x* = b0 ÷ (1 − b1)
- Valid when b1 ≠ 1. Needs |b1| < 1 for covariance stationarity.
- Mean-reverting level (AR(2))
- x* = b0 ÷ (1 − b1 − b2)
- Valid when b1 + b2 ≠ 1.
- Correct specification rule
- No significant residual autocorrelation at any lag
- If any lag is significant, the model is misspecified.
- Random walk without drift
- x_t = x_{t-1} + ε_t
- E(ε_t) = 0, constant variance, no serial correlation. Best forecast of x_{t+1} is x_t. Has a unit root.
- Random walk with drift
- x_t = b0 + x_{t-1} + ε_t, b0 ≠ 0
- Series trends by b0 per period on average. Still has a unit root, so still non-stationary.
- Mean-reverting level (AR(1))
- x = b0 ÷ (1 − b1)
- Exists only if |b1| < 1. For b1 = 1 it is undefined.
- Dickey-Fuller regression
- x_t − x_{t-1} = b0 + g1 x_{t-1} + ε_t, g1 = b1 − 1
- H0: g1 = 0 (unit root). Ha: g1 < 0 (no unit root). Use Dickey-Fuller critical values.
- First difference
- y_t = x_t − x_{t-1} = ε_t
- For a random walk, y_t is covariance stationary with mean 0 (mean b0 with drift).
- 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.
Quick revision
- Linear trend: yt = b0 + b1t + εt. Log-linear trend: ln(yt) = b0 + b1t + εt, used when growth is a constant rate.
- A trend model with serially correlated errors is misspecified, so consider an AR model instead.
- Covariance stationarity needs a constant mean, a constant variance and constant covariance with lagged values.
- AR(1): xt = b0 + b1xt−1 + εt. Multi-step forecasts use earlier forecasts as inputs.
- Mean-reverting level of AR(1) = b0 ÷ (1 − b1). It is defined only when b1 ≠ 1.
- To test for serial correlation, compare each residual autocorrelation's t-statistic with the critical value. Use t = autocorrelation ÷ (1/√T), where T is the number of observations.
- The Durbin-Watson test is not valid for AR models, so use residual autocorrelations.
- A random walk has b0 = 0 and b1 = 1 (without drift) and has a unit root. A random walk with drift has b0 ≠ 0 and b1 = 1. Neither has a finite mean-reverting level.
- Fix a unit root by first differencing, then fit an AR model to the differenced series.
- Seasonality shows as a significant residual autocorrelation at the seasonal lag. Add the seasonal lag as a variable.
- ARCH exists if the coefficient a1 in the regression of squared residuals on their lagged value is significantly different from zero. If it does, correct it with generalized least squares or by modeling the variance with ARCH-type models.
- Compare models by out-of-sample root mean squared error, where lower is better.
Common mistakes
- Reading the log-linear slope as a change in the value of y. Fix: If the dependent variable is ln y, b1 is a growth rate. Multiply by 100 for a percentage.
- Forgetting to exponentiate a log-linear forecast. Fix: That number is ln y. Take e raised to it to get y.
- Using the actual latest value again in the two-period forecast instead of the first forecast. Fix: Always chain: x̂(t+2) = b0 + b1·x̂(t+1).
- Computing the mean-reverting level as b0 ÷ b1 or b0 × (1 − b1). Fix: Set x = b0 + b1·x and solve: x* = b0 ÷ (1 − b1).
- Using the Durbin-Watson test on an AR model. Fix: For AR models, test residual autocorrelations at each lag with the t-test above.
- Dividing by √T instead of multiplying, or forgetting the standard error is 1 ÷ √T. Fix: Remember t = autocorrelation × √T. The standard error shrinks as T grows.
- Using the ordinary t-test to test b1 = 1. Fix: Under a unit root the t-distribution does not apply. Use the Dickey-Fuller test and its critical values.
- Thinking a random walk with drift is stationary because it has a stable trend. Fix: Drift changes the mean over time. With b1 = 1 the series still has a unit root and is non-stationary.
- Testing the wrong lag for seasonality 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 Fix: Forecasting performance is judged out of sample. Use that RMSE when both are shown.
Exam tips
- Always read the left side of the equation first. ln y versus y changes the whole interpretation.
- Questions often give a Durbin-Watson statistic and dl and du. Practise the three-zone rule until it is automatic.
- When a vignette says residuals show a pattern, the answer is almost always serial correlation and a need for a different model, not a higher R-squared.
- For log-linear forecasts, calculate carefully with the exponential. Options are usually spaced so that forgetting to exponentiate gives an obviously wrong answer, but check.
- Remember that DW is for trend and standard regressions. For AR models, the exam expects the residual autocorrelation t-test.
- Write the AR equation in the margin first, then compute x* before anything else. Many questions ask for it or use it to check direction.
- In multistep forecasts, the trap answer uses the actual last value twice. Chain the forecasts.
- Whenever you see b1 = 1 or a unit root test result, think random walk and not covariance stationary. First differencing is the usual fix.