My question is how to make code when I model GARCH volatility by adding explanatory variable.
For example, I would like to add variable X(short-term interest rate) in the conditional variance equation of stock market return (Y). This means that the volatility of stock market returns at time t is affected by short-term interest rate at time t. Please let me know the code sample, assuming simple GARCH(1,1) model.
Yes. The equivalent AUTOREG code for the MODEL code I supplied is:
proc autoreg data=drate;
model y = / garch=(p=1,q=1);
hetero x / coef=nonneg;
run;
Here's an example of a GARCH(1,1) model using PROC MODEL which includes a simple linear dependence of the volatility on interest rate. The data set 'drate' would contain an endogenous variable 'y' of stock market returns, and 'x' of interest rates.
proc model data=dratee;
/* Mean model */
y = sret;
/* Variance model ----------------*/
h.y = b*x
+ arch0 + arch1*xlag(resid.y**2, mse.y) + garch1*xlag(h.y, mse.y);
bounds b arch0 arch1 garch1 >= 0;
fit y / fiml;
quit;
Thanks a lot. Then can I also try PROC AUTOREG with HETERO option?
For example,
PROC AUTOREG DATA=RETURN;
MODEL Y=A B / GARCH=(P=1,Q=1);
HETERO TBOND;
RUN;
Yes. The equivalent AUTOREG code for the MODEL code I supplied is:
proc autoreg data=drate;
model y = / garch=(p=1,q=1);
hetero x / coef=nonneg;
run;
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.
Find more tutorials on the SAS Users YouTube channel.