Fluorite | Level 6

## Forecast standard deviations using GARCH

Hi, everyone

I used the following procedures to estimate "monthly" standard deviation using GARCH (1, 1).

The dataset SPX192803(04) contains daily returns of S&P 500 index for March(April), 1928.

```PROC SORT DATA = SPX192803; BY YM; RUN;

PROC AUTOREG DATA = SPX192803;
MODEL RT = / GARCH = (P=1, Q= 1) ;
OUTPUT OUT = VOUT CEV = V;
RUN;

DATA VOUT;
SET VOUT;
S = SQRT(V);
RUN; ```

The weird thing is when I used SPX192803 dataset, I obtained the "daily" standard deviations. However, when I used SPX192804 dataset, I got a "single" standard deviation (monthly?) through the whole month. The empirical results can be shown in the dataset VOUT if you run the above programs.

Could anyone tell me what it means? Did I use the wrong procedure or data? Thank you for your help in advance. Look forward to hearing from you.

Best,

Andy

3 REPLIES 3
SAS Employee

## Re: Forecast standard deviations using GARCH

The reason that you get the CEV all equal to the same value for the second data set is because the estimate for ARCH parameter is zero for the GARCH(1,1) model using the second data set. For GARCH(1,1) model, the conditional error variance h_t is:

h_t = arch0 + arch*e_(t-1)*e_(t-1) + garch*h_(t-1), since your estimate of arch parameter is zero, then the h_t will be equal to

h_t = arch0 +  garch*h_(t-1).

At t = 1, with arch parameter equal to 0,  h_(t-1) =h_0 is initialized at

h_0=arch0 /(1-garch).

This means that,

h_1 = arch0 + garch*h_0

= arch0+garch*arch0/(1-garch)

= arch0*(1+garch/(1-garch))

= arch0/(1-garch)

this is exactly equal to h_0.

Similarly, at t=2, you get

h_2 = arch0 + garch*h_1

=arch0 + garch*arch0/(1-garch)

=arch0/(1-garch)

and so on. So because the estimate of arch parameter is zero, the CEV will be always equal to the initialized value of h_t. In other words, h_t will be constant.

Hope this helps.

Fluorite | Level 6

## Re: Forecast standard deviations using GARCH

If that's the case, what should I do if I'd like to estimate the relation between "monthly" standard deviation (volatility) and my independent variables using GARCH (1,1) ? Do you have any suggestions for the programming? Any advice is welcome. I look forward to hearing from you.

Best,

James

SAS Employee

## Re: Forecast standard deviations using GARCH

Your PROC AUTOREG code below fits a GARCH(1,1) model to the variable RT:

PROC AUTOREG DATA = SPX192803;
MODEL RT = / GARCH = (P=1, Q= 1) ;
OUTPUT OUT = VOUT CEV = V;
RUN;

This specifies that the RT variable follows GARCH(1,1) process. The estimation results for all ARCH, GARCH parameters are either zero or insignificant or cannot be estimated properly for the two data sets. Considering these results, it might be helpful if you perform some diagnostics tests first before deciding on an appropriate model for your data, for example, the ARCHTEST =(ALL) option performs various tests to detect ARCH/GARCH effects in the model which may be helpful:

https://go.documentation.sas.com/?docsetId=etsug&docsetTarget=etsug_autoreg_syntax05.htm&docsetVersi...

I hope this helps.

Discussion stats
• 3 replies
• 902 views
• 0 likes
• 2 in conversation