Appendix A: Some RATS Programs for Nonlinear Volatility Models

Program Used to Estimate an AR(2)–TAR–GARCH(1,1) Model for Daily Log Returns of IBM Stock

Assume that the data file is d-ibmln03.txt.

all 0 10446:1

open data d-ibmln03.txt

data(org=obs) / rt

set h = 0.0

nonlin mu p2 a0 a1 b1 a2 b2

frml at = rt(t)-mu-p2*rt(t-2)

frml gvar = a0 + a1*at(t-1)**2+b1*h(t-1) $

            + % if(at(t-1) < 0,a2*at(t-1)**2+b2*h(t-1),0)

frml garchln = -0.5*log(h(t)=gvar(t))-0.5*at(t)**2/h(t)

smpl 4 10446

compute mu = 0.03, p2 = -0.03

compute a0 = 0.07, a1 = 0.05, a2 = 0.05, b1 = 0.85, b2 = 0.05

maximize(method=simplex,iterations=10) garchln

smpl 4  10446

maximize(method=bhhh,recursive,iterations=150) garchln

set fv = gvar(t)

set resid = at(t)/sqrt(fv(t))

set residsq = resid(t)*resid(t)

cor(qstats,number=20,span=10) resid

cor(qstats,number=20,span=10) residsq

Program Used to Estimate a Smooth TAR Model for the Monthly Simple Returns of 3M Stock

The data file is m-3m4608.txt.

all 0 755:1

open data m-3m4608.txt

data(org=obs) / date mmm

set h = 0.0

nonlin a0 a1 a2  a00 a11 mu

frml at = mmm(t) - mu

frml var1 =  a0+a1*at(t-1)**2+a2*at(t-2)**2

frml var2 = a00+a11*at(t-1)**2

frml gvar = var1(t)+var2(t)/(1.0+exp(-at(t-1)*1000.0))

frml garchlog = -0.5*log(h(t)=gvar(t))-0.5*at(t)**2/h(t)

smpl 3 623

compute a0 = .01, a1 = 0.2, a2 = 0.1

compute a00 = .01, a11 = -.2, mu = 0.02

maximize(method=bhhh,recursive,iterations=150) garchlog

set fv = gvar(t)

set resid = at(t)/sqrt(fv(t))

set residsq = resid(t)*resid(t)

cor(qstats,number=20,span=10) resid

cor(qstats,number=20,span=10) residsq

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset