# 11.2 Generating Realizations Directly From

Historical Market Data

Historical simulation requires that historical data {^{–}^{α}** r**, …,

^{–2}

**,**

*r*^{–1}

**,**

*r*^{0}

**} be converted into a realization {**

*r*^{1}

*r*^{[1]},

^{1}

*r*^{[2]}, … ,

^{1}

*r*^{[m]}} of

^{1}

**for use in a crude Monte Carlo analysis. Simplistically, historical values**

*R**might be directly used as values*

^{t}**r**^{1}

*r*^{[k]}of the realization. Let

*m*= α + 1, and set

[11.1]

for all *k*.

But this would lead to a host of problems. The most obvious is that the resulting realization {^{1}*r*^{[1]}, ^{1}*r*^{[2]}, … , ^{1}*r*^{[m]}} may be inconsistent with current market prices, interest rates, spreads, implied volatilities, etc.

For example, suppose a key factor ^{1}*R*_{1} represents a stock price whose current value ^{0}*r*_{1} is EUR 120. If most of our historical data for the stock is from a period when it was trading near EUR 70, values for the realization would cluster around that EUR 70 price rather than the current EUR 120 price.

Our goal is to construct a realization {^{1}*r*^{[1]}, ^{1}*r*^{[2]}, … , ^{1}*r*^{[m]}} from historical data {^{–}^{α}** r**, …,

^{–2}

**,**

*r*^{–1}

**,**

*r*^{0}

**} in a manner that captures the market dynamics reflected in the individual historical data points, but calibrated to current values**

*r*^{0}

*r*

_{i}of key factors.

Various approaches are possible. In practice, we employ a two-step process:

- Apply a linear polynomial to convert the time series of historical data {
^{–α}, … ,*r*^{–2},*r*^{–1},*r*^{0}} into a new time series {, … ,*r*^{–2},^{–1},^{0}} consistent with a realization of a white noise process . Intuitively, this retains the market dynamics of the original data, abstracted from the actual values^{t}*r*_{i}of key factors when the data was captured. - Use another linear polynomial to convert that new time series {, … ,
^{–2},^{–1},^{0}} into a realization {^{1}*r*^{[1]},^{1}*r*^{[2]}, … ,^{1}*r*^{[m]}} by adjusting each data point to be consistent with current values^{0}*r*_{i}of key factors

Construction of the linear polynomial for the first step parallels that of the white noise risk factor mapping we constructed in Section 7.3.3. The linear polynomial takes the form

[11.2]

where * ^{t}b* is a diagonal

*n×*

*n*matrix, and

*is a vector. We construct [11.2] component by component, depending upon what each component*

^{t}**a**

*R**of*

_{i}**represents.**

*R*If a component *R** _{i}* represents a return with 0 conditional mean, we might consider it already a white noises and set

[11.3]

so

[11.4]

^{t}

*b*

_{i,i}= 1

[11.5]

^{t}

*a*

_{i}= 0

If *R** _{i}* represents a return or spread that can be assumed to have a nonzero conditional mean, it is often reasonable to treat the value

^{t–1}

*from the previous period as the conditional mean and subtract it:*

**r**_{i}[11.6]

so

[11.7]

^{t}

*b*

_{i,i}= 1

[11.8]

^{t}

*a*

_{i}=

^{t –1}

*r*

_{i}

If *R** _{i}* represents a price, interest rate, exchange rate, or implied volatility, it is most often reasonable to set

[11.9]

which is a simple return, so

[11.10]

[11.11]

^{t}

*a*

_{i}= 1

In the vast majority of cases, all components of * R* can be addressed in one of the above three manners, so we may consider mapping [11.2] specified.

The polynomial for the second step is the inverse of [11.2] but with one change: for each element ^{k}, it is applied as of time 0.

[11.12]

This gives us a realization {^{1}*r*^{[1]}, ^{1}*r*^{[2]}, … , ^{1}*r*^{[m]}} constructed directly from historical data, but consistent with current market conditions.

By composing the two steps [11.2] and [11.12], we combine them into a single step:

[11.13]

###### 11.2.1 Example

Today is January 11, 2002. Let *R*_{1} represent the value of 3-month CHF Libor. Exhibit 7.7 indicates 30 days of data, which you used for Exercise 7.2. Let’s use the data to construct an historical realization of a sample for ^{1}*R*_{1}.

It would be unreasonable to treat *R*_{1} as white noise. Its unconditional mean is not 0. Assume ^{t | t–1}μ_{1} = ^{t –1}*r*_{1} for all *t*, and transform *R*_{1} to white noise _{1} with

[11.14]

Applying the transformation to the data of Exhibit 7.7, we obtain white noise data shown in Exhibit 11.1.

We apply the inverse transform for time *t* = 0,

[11.15]

to obtain the historical realization indicated in Exhibit 11.2. A histogram of the historical realization is indicated in Exhibit 11.3.

^{1}

*R*

_{1}for use in a historical simulation. Interest rates are expressed as percentages.

###### 11.2.2 Mirror Values

Histogram 11.3 highlights a common problem with historical simulation. In the example, we assumed that the expected value of ^{1}*R*_{1} equals the current value ^{0}*r*_{1}, which is 1.673%. However, this is not the sample mean of the historical realization. In the histogram, most values fall to the left of 1.673%. This results from the fact that the historical data from which we derived the realization was from a period during which CHF Libor fell. It started the period at 2.130% and ended the period at the current value of 1.673%. On an average day during that period, Libor fell, and this is reflected in our historical realization.

Holton (1998) describes a solution to this problem whereby “mirror” values are added to the historical realization. For each value of the realization, add another value:

[11.8]

This doubles the size of the sample and ensures a sample mean ^{1 | 0}μ_{1}. The solution assumes that the conditional distribution of ^{1}*R*_{1} is symmetric.

We add mirror values to the historical realization of our example. A histogram of the new realization is indicated in Exhibit 11.4.

# 11.3 Calculating Value-at-Risk With Historical

Simulation

Historical simulation dispenses with an inference procedure. Or you could say that construction of a realization {^{1}*r*^{[1]}, ^{1}*r*^{[2]}, … , ^{1}*r*^{[m]}} from historical data *is* the inference procedure—it characterizes a distribution for ^{1}* R*, not with some standard joint distribution—or perhaps a mean vector and covariance matrix—but with a realization of a sample. As with any value-at-risk measure, a mapping procedure is required. This may include one or more remappings. The Monte Carlo analysis is performed as in Section 10.2. The only difference is that the realization {

^{1}

*r*^{[1]},

^{1}

*r*^{[2]}, … ,

^{1}

*r*^{[m]}} is constructed as in Section 11.2 above, rather than with standard methods for constructing pseudorandom vectors, as described in Section 5.8.3. A crude Monte Carlo estimator is used because techniques of variance reduction and the method of selective valuation of realizations—both described in Section 10.5—are incompatible with historical simulation.