I am fitting numerically an AR(1)/GARCH(1,1) process to index and stock log-returns, rt=log(Pt/Pt−1), where Pt is the price at time t, and thus far am not clear on where the observed log returns would be used in an algorithm. Several author groups have described (some in part) the components of the AR(1)/GARCH(1,1) approach, for example:
E. Zivot: rt=μ+ϕ(rt−1−μ)+ϵt
Rachev et al: rt=μ+ϕrt−1ϵt=σtδt(δt is an innovation)σt=√α0+α1ϵ2t−1+β1σ2t−1
Brummelhuis & Kaufman: Xt=μt+σtϵtμt=λXt−1σt=√α0+α1(Xt−1−μt−1)2+β1σ2t−1
Jalal & Rockinger: μt=ϕXt−1ϵt=Xt−μtσt=√α0+α1ϵ2t−1+β1σ2t−1
My approach:
μt=μ+ϕrt−1ϵt=rt−μtσt=√α0+α1ϵ2t−1+β1σ2t−1
Given the multiple descriptions above, my interpretation for an algorithm would be:
Algorithm for AR(1)/GARCH(1,1):
- Initialize μ=0, σ1=1, ϵ1=0, μ=ϕ=α0=α1=β1=U(0,1)∗0.01
- For t = 2 to T:
- μt=μ+ϕrt−1(Log-returns lag-1 input here)
- ϵt=rt−μt(Log-returns lag-0 input here)
σt=√α0+α1ϵ2t−1+β1σ2t−1
ˆrt=ϕμt−1+σtϵtOR:ˆrt=μ+ϕμt−1+σtϵt???
- Next t
- Calculate residual, et=rt−ˆrt
- Determine MSE=1T∑te2t
The algorithm proposed above is essentially the recursive part to calculate the predicted log-returns ˆrt from the input observed returns rt. Innovations or random quantiles from a probability distribution [such as N(0,1) or t(ν)] would not be employed here since we are fitting a model, not simulating. During each iteration, the goodness-of-fit based on proposed parameters for the objective function would be based on MSE=1T∑tet, which would be minimized via an optimization technique using non-linear regression, finite differencing, or MLE. Metaheuristics could be used as well where initialization of chromosome (particle) values for (μ,ϕ,α0,α1,β1) would occur at the first generation.
In terms of comparing results based R, MATLAB, SAS, etc. the parameterization would be:
mu=μ
ar1=ϕ
garch0=α0
garch1=α1
garch2=β1
I am not sure whether the unconditional mean μ would be needed in line 6 of the algorithm, however. Please comment on correctness of the algorithm, and possibly suggest coding changes. Again, the goal is to algorithmically use numerical methods to solve for the parameters, not R, MATLAB, or SAS, etc.
No comments:
Post a Comment