Estimating and Simulating a Model for Mean Reversion (in format)

advertisement
Estimating and Simulating a Model for Mean Reversion
As indicated in class, most commodity prices and some interest rates follow a mean
reverting process in the sense that if the price is above the long run mean supply increases
and demand declines bringing the price down, while if the price is below the long run
mean, supply decreases and demand increases raising the price. The simple standard
discrete time model of a mean reverting process is
X t 1  X t      X t   t 1 ,
(1)
where X t is the current value of the process (at date t ),  is the long run mean value of
the process,  is the speed of adjustment coefficient, and  t 1 is the value of a random
shock that is independent of X t . The amount    X t  is the correction toward the long
run mean. The random shocks
,  t ,  t 1 ,
are independent, normally distributed, mean
zero, constant variance (square of the standard deviation).
As a consequence of this simple model, the major disadvantage is that the prices
X t can be negative. This can be avoided while preserving the mean reverting behavior,
but involves complicating the model beyond the scope of what we want to do here. We
will just note that the extent to which prices are negative is something to keep in the back
of our minds.
One thing we want to do is estimate a version of one using historical data. There
are three parameters that need to be estimated, the long run mean  , the speed of
adjustment  , and the standard deviation of the random shock  . This is easy to do in
Excel using the regression function. Subtracting X t from both sides of (1) we get
X t 1  X t     X t   t 1 .
(2)
This is just like a regression with dependent variable X t 1  X t and independent variable
X t with intercept =  and slope =  . So in Excel regressing the price changes
X t 1  X t on the price level X t will produce estimates of the intercept and slope
coefficients. If the estimated slope coefficient ˆ is positive, there is no mean reversion
and we need to change the specification. If the slope coefficient ˆ is negative, then ˆ
is positive indicating the presence of mean reversion. Test for the statistical significance
of this coefficient by looking at its t-statistic. The rule of thumb is that if the absolute
value of this t-statistic is greater than 2, then it is statistically significant(ly different from
zero). For a large enough sample size, if the absolute value exceeds 1.645, the statistic is
significant.
Finally, if the estimate of ˆ is statistically significantly positive and if the
intercept coefficient is statistically significant, we then estimate the long run mean by
solving ̂ = intercept/ ˆ , and we estimate the standard deviation as ˆ = standard error of
the regression. Hence the simple use of the regression function in Excel gives us an
estimate of the simple model of mean reversion.
We turn now to simulating the estimated model of mean reversion
X t 1  X t  ˆ  ˆ  X t   t 1 ,
(3)
where the error term of random shock  t 1 is normally distributed with mean zero and
standard deviation ˆ . To do this we need a starting value for the price level X and a
way to generate independent normally distributed error values for the possible values of
the  t 1 . Typically the starting value of the price level is some (latest) historical
observation.
The way to generate independent error values is as described in class for the
spreadsheet Copy of Arith Asian.xls. In Excel the function RAND( ) generates (pseudo)
random numbers uniformly distributed between 0 and 1. These numbers can be converted
to numbers that are normally distributed with mean zero and standard deviations one by
using the function NORMSINV. If RAND( ) is uniformly distributed between 0 and 1,
then NORMSINV(RAND( )) is normally distributed with mean zero and standard
deviation one. To obtain a number that is normally distributed with mean  and standard
deviation  , simply multiply by  and add  . In our case we simply multiply
NORMSINV(RAND( )) by our estimate ˆ .
Assume that we have decided on an initial value of X 0 . Assume also we wish to
simulate a price path of 100 observations. Select 101 columns (or rows) and two rows (or
columns) in an Excel spreadsheet. Enter the number X 0 in the first column second row.
In the first row columns 2 through 100 enter = NORMSINV(RAND( )). In the second
column, second row enter = same row previous column + ˆ ( ̂ - same row previous
column) + ˆ (same column previous row). This is the formula (3). Fill across to column
101. Each time you recalculate a different price path is determined.
Here is a numerical example. X 0 = 100, ̂ = 85, ˆ = .90, and ˆ = .50. See the
spreadsheet Simulating Mean Reversion.xls at the course website. This example has a
simulated price path of only 25 observations.
Download