Code: Select all
cal(m) 1998:1
all 2011:12
open data C:\Users\rmvoller.COUGARNET\Desktop\Forcasting Project\ED.xlsx
data(format=xlsx,org=obs) / ED
graph 1
#ed
set y * 2010:12 = ed
set yf = ed
set ly = log(y)
set lyf = log(yf)
diff(sdiffs=1) ly / dly
graph 1
#dly
set trend = t
seasonal season12
set season1 = season12{-11}
set season2 = season12{-10}
set season3 = season12{-9}
set season4 = season12{-8}
set season5 = season12{-7}
set season6 = season12{-6}
set season7 = season12{-5}
set season8 = season12{-4}
set season9 = season12{-3}
set season10 = season12{-2}
set season11 = season12{-1}
linreg ly
#constant trend season12{-11 to -1}
exclude
#season12{-11 to -1}
linreg dly
#constant trend season12{-11 to -1}
exclude
#season12{-11 to -1}
*ADF test*
linreg dly
#constant ly{1} dly{1 to 8}
linreg dly
#constant ly{1} dly{1 to 7}
linreg dly
#constant ly{1} dly{1 to 6}
linreg dly
#constant ly{1} dly{1 to 5}
linreg dly
#constant ly{1} dly{1 to 4}
linreg dly
#constant ly{1} dly{1 to 3}
linreg dly
#constant ly{1} dly{1 to 2}
linreg dly
#constant ly{1} dly{1 to 1}
linreg dly
#constant ly{1}
@DFUNIT(DET=TREND,LAGS=3) ly
graph
# ly
@bjident(diffs=1,sdiffs=1) ly
* Searching for a minimum of SBC (also called, SIC)
com sbcmin = 100000000., sbcp = 0, sbcq = 0
com aicmin = 100000000., aicp = 0, aicq = 0
do i=0,4
do j=0,4
boxjenk(diff=1,sdiff=1,ar=i,ma=j,constant,noprint) ly / resids
compute sbc = log(%rss/%nobs) + %nreg*log(%nobs)/(%nobs)
compute aic = log(%rss/%nobs) + 2*(%nreg)/%nobs
*compute aic = %nobs*log(%rss) + 2*%nreg
*compute sbc = %nobs*log(%rss) + %nreg*log(%nobs)
display 'p =' i ' q =' j ' AIC = ' aic ' SBC = ' sbc
if sbc < sbcmin
{
compute sbcp = i
compute sbcq = j
compute sbcmin = sbc
}
if aic < aicmin
{
compute aicp = i
compute aicq = j
compute aicmin = aic
}
endo j
endo i
disp
disp 'Selected values of p and q using SBC = ' sbcp sbcq
disp 'Selected values of p and q using AIC = ' aicp aicq
disp
boxjenk(constant,diff=1,sdiff=1,ar=sbcp,ma=sbcq,define=eq1) ly / U
cor(partial=pacf,qstats,number=36,span=12,dfc=4) U 1998:01 2010:12
set u2 = u*u
UFORECAST(STEPS=12,EQUATION=EQ1,STDERRS=LY_FORE,PRINT) lY_FOR
graph 2
#lyf
#ly_for
* Testing for arch effects
linreg u2 1998:01 2010:12
# constant u2{1 to 5}
compute trsq = %nobs*%rsquared
cdf chisq trsq 5
source(noecho) c:/garch1.src
@GARCH dly 1998:01 2010:12 nresids cvar