Filtered Historical Simulation

Interactive exploration of Filtered Historical Simulation (FHS), combining GARCH volatility dynamics with the empirical distribution of standardized shocks

Filtered Historical Simulation (FHS) is a semi-parametric method for computing Value-at-Risk and Expected Shortfall. It combines the best of two worlds: GARCH-type models for capturing time-varying volatility, and the empirical distribution of standardized shocks for capturing fat tails and skewness without distributional assumptions (Christoffersen 2012, chap. 6; Barone-Adesi et al. 1999).

Recall that GARCH models decompose daily returns as

\[ R_{PF,t+1} = \sigma_{PF,t+1}\, z_{t+1}, \quad z_{t+1} \sim \text{i.i.d.}\;D(0,1) \]

where \(\sigma_{PF,t+1}\) is the conditional standard deviation and \(z_{t+1}\) is the standardized innovation. Parametric approaches assume a specific distribution \(D\) (e.g., normal or Student-t), while standard Historical Simulation ignores the time-varying volatility altogether. FHS takes a different path:

  1. Estimate a GARCH model to obtain the conditional volatility series \(\{\hat{\sigma}_t\}\)
  2. Filter the returns to extract standardized residuals \(\hat{z}_t = R_t / \hat{\sigma}_t\), which should be approximately i.i.d.
  3. Compute risk measures using the empirical distribution of the \(\hat{z}_t\), scaled by the current volatility forecast \(\hat{\sigma}_{t+1}\)

The FHS VaR at tail probability \(p\) is

\[ \text{VaR}_{t+1}^{p} = -\hat{\sigma}_{PF,t+1} \cdot \text{Percentile}\left(\{\hat{z}_{t+1-\tau}\}_{\tau=1}^{m},\; 100p\right) \]

and the Expected Shortfall is

\[ \text{ES}_{t+1}^{p} = -\hat{\sigma}_{PF,t+1} \cdot \frac{1}{|\{i : \hat{z}_i < \hat{z}_{(p)}\}|} \sum_{\hat{z}_i < \hat{z}_{(p)}} \hat{z}_i \]

Note

A semi-parametric approach. FHS is parametric for the volatility dynamics (GARCH) but nonparametric for the shock distribution (empirical). This means it inherits the volatility responsiveness of GARCH and the distributional flexibility of Historical Simulation.

1. The filtering step

The key idea behind FHS is that while raw returns \(R_t\) exhibit volatility clustering (they are not i.i.d.), the standardized residuals

\[ \hat{z}_t = \frac{R_t}{\hat{\sigma}_t} \]

should be approximately i.i.d. if the GARCH model is correctly specified. This “filtering” step removes the time-varying volatility from the returns, leaving behind the pure shock component whose empirical distribution can be used for simulation.

Note

Using true parameters. In this simulation we use the true GARCH parameters (since we generated the data). In practice, the parameters would be estimated via maximum likelihood (see the MLE page and the GARCH models page).

Tip

How to experiment

Start with Normal shocks and observe that both raw returns and standardized residuals look similar in the QQ plot. Then switch to “Standardized t” and lower the degrees of freedom: the raw returns will show exaggerated fat tails (S-shaped QQ plot) due to the combination of fat-tailed shocks and volatility clustering, while the standardized residuals reveal only the true shock distribution. Check the ACF tab to confirm that filtering removes the autocorrelation from squared returns.

2. FHS VaR and ES

Once we have extracted the standardized shocks \(\hat{z}_t\), FHS computes risk measures by scaling the empirical quantile of those shocks by the current volatility forecast:

\[ \text{VaR}_{t+1}^{p} = \hat{\sigma}_{t+1} \cdot |\hat{z}_{(p)}| \]

Compare this with the Normal approach, which uses the same volatility but assumes the shock quantile equals \(\Phi^{-1}(p)\):

\[ \text{VaR}_{t+1}^{p,\text{Normal}} = \hat{\sigma}_{t+1} \cdot |\Phi^{-1}(p)| \]

And with standard Historical Simulation, which ignores \(\hat{\sigma}_{t+1}\) entirely and uses the percentile of raw returns:

\[ \text{VaR}_{t+1}^{p,\text{HS}} = |\text{Percentile}(\{R_{t+1-\tau}\}_{\tau=1}^{m},\; 100p)| \]

Note

How the return series is simulated. A GARCH(1,1) process is simulated with a fixed long-run daily volatility of 1.5%, using the \(\alpha\) and \(\beta\) sliders below and the chosen shock distribution. The standardized residuals are then extracted using the true GARCH parameters. The volatility forecast slider \(\hat{\sigma}_{t+1}\) is independent of the simulation: it controls only the scaling applied to the empirical shock quantile when computing VaR and ES, letting you explore how the same set of shocks translates into different risk measures at different volatility levels.

Tip

How to experiment

Switch to “Standardized t” with low degrees of freedom to see FHS capture fat tails. Then vary the volatility forecast \(\hat{\sigma}_{t+1}\): watch FHS VaR and Normal VaR scale linearly while Standard HS stays flat. In the “Exceeding history” tab, increase \(\hat{\sigma}_{t+1}\) to see FHS generate losses larger than any observed in the historical sample.

3. Method comparison: HS vs. GARCH-Normal vs. FHS

To see why FHS matters in practice, consider a volatility regime change: a calm period followed by a stress period. How quickly does each risk measure adapt?

  • Standard HS uses a rolling window of raw returns. After the regime shift, it takes many days for the high-volatility observations to dominate the window, so VaR adapts slowly.
  • GARCH-Normal captures volatility dynamics immediately through \(\hat{\sigma}_{t+1}\), but it uses the normal quantile, which underestimates tail risk if shocks are fat-tailed.
  • FHS adapts immediately (through \(\hat{\sigma}_{t+1}\)) and captures fat tails (through the empirical shock quantile).
Note

How the return series is simulated. A two-regime GARCH(1,1) process is simulated with fixed \(\alpha = 0.10\) and \(\beta = 0.85\) over \(N = 2000\) days. At the regime switch point, the GARCH intercept \(\omega\) changes from \(\omega_1 = V_{L,1}(1-\alpha-\beta)\) to \(\omega_2 = V_{L,2}(1-\alpha-\beta)\), shifting the long-run variance target. The conditional variance itself transitions gradually through the GARCH recursion \(\sigma^2_{t+1} = \omega + \alpha R^2_t + \beta \sigma^2_t\) (no discontinuous jump). Shocks are always drawn from a standardized Student-t distribution with degrees of freedom \(d\). All three methods use the true GARCH conditional volatility \(\sigma_t\) (known from the simulation), so the comparison isolates the effect of the shock distribution assumption (normal quantile vs. empirical quantile) and the volatility responsiveness (rolling window vs. GARCH forecast).

Note

In-sample illustration. This comparison is performed in-sample: the same data used to build the shock database is also used to evaluate exceedances. In practice, model performance should be assessed out-of-sample, applying VaR forecasts to future returns not used in estimation. In-sample results tend to be optimistic, particularly for FHS, which benefits from seeing the shocks it is evaluated against. The purpose here is to illustrate the qualitative differences between methods, not to provide a realistic backtesting exercise.

Tip

How to experiment

Set a large contrast between calm and stress volatilities (e.g., 1% vs. 4%). After the regime switch, watch how HS VaR lags behind while FHS and GARCH-Normal adapt quickly. Then check the “Exceedance rates” tab: HS will be too conservative before the switch and too lenient after, while FHS should maintain rates closer to the target \(p\). Lower the degrees of freedom to increase the gap between GARCH-Normal and FHS.

References

Barone-Adesi, Giovanni, Kostas Giannopoulos, and Les Vosper. 1999. “VaR Without Correlations for Portfolios of Derivative Securities.” Journal of Futures Markets 19 (5): 583–602.
Christoffersen, Peter F. 2012. Elements of Financial Risk Management. 2nd ed. Academic Press.