Computational Methods in Finance, Fall 1997

Assignment 6.

Given December 10, due December 31.

Objective: To explore numerical optimization and statistical estimation.

A very simple ARCH/GARCH type model is

σ_{k+1}^{2} = ασ_{k}^{2} + βZ_{k}^{2} ,  (1)
X_{k+1} = X_{k} + γσ_{k}Z_{k} ,  (2)

where the Z_{k} are independent standard normal ransom variables. This is a different approach to stochastic volatility that allows for bursts of high volatility.

First we want to construct maximum likelihood estimates of the parameters α, β, and γ. Assume that X_{0} = 0 and σ_{0} = 1. For given values of the parameters, the probability density for a specific sequence x⃗ = (x_{1}, …, x_{n}) is

f(x⃗, α, β, γ) = \frac{1}{(2π)^{n/2}γ^{n}σ_{0}σ_{1} ⋯ σ_{n−1}} exp (− ∑_{k=0}^{n−1} \frac{(x_{k+1} − x_{k})^{2}}{2γ^{2}σ_{k}^{2}} )  (3)

The numbers σ_{k} in (3) can be computed, given x⃗, from (1) and σ_{0} = 1. This is how f comes to depend on the parameter β. The maximum likelihood estimates α̂(x⃗), β̂(x⃗), and γ̂(x⃗), are found by maximizing f over α, β, and γ.

The simplest way to do this three dimensional optimization problem is to choose search directions using the gradient method and then use bisection search. This requires you to compute first derivatives of f with respect to the parameters. Make sure you program is modular: you should test the line search part separately, for example. It will probably work better if you optimize log(f) instead, the answer will be the same but the objective function will be less wild. Are there local maxima that are not the global maximum?

Second, we will make ad-hoc error bars for the estimated parameter values by a version of the jackknife process. Produce artificial data x⃗_{1}, …, x⃗_{M} by running the model (1), (2) using the estimated parameter values. Then use the optimization program on these artificial data sets to compute α̂(x⃗_{l}) for l = 1, …, l_{M}. The interval that includes 95% of these artificial α estimates is a poor man’s 95% confidence interval for α̂. If your computer is old or your optimization algorithm is slow, you will not be able to take large M.

The data set for this problem, consisting of 20 x values, is posted on the course web site.