BookmarkSubscribeRSS Feed
Calcite | Level 5

I have 5 sorted portfolio (time series) returns in first difference (for stationarity) - R1-R5. I have checked all 5 returns, first difference is stationary, only has some AR effect.

My first regression is garch(1,1) for all 5 separately:

proc autoreg data=combine_ret1;

model R1 = IST_R LR1 win loss fb bjk gs/ garch=(p=1,q=1);  


no problem at all.

My second regression is including explanatory variables in the variance equation for all 5 separately:

proc autoreg data=combine_ret1;

model R1 = IST_R LR1/ garch=(p=1, q=1);

hetero win loss;


only 20% converge and have nonzero coefficients. For the rest, either not converge, or the variance equation coefficients (win and loss) are zero or missing. Why does it happen? nonconvergence? like below:


My third regression is multivariate garch:

proc varmax data=combine_ret1;

model r1 r4= IST_R win loss fb bjk gs/ p=1;

q=1 form=ccc;


IST_R is market return, the rest are dummies. I'm using R1 and R4, not R1 and R5 (lowest and highest) because it doesn't converge. I actually want to do R1-R5. Of course, it doesn't converge. What can I do?


SAS Employee

Hi econfkw,

Thanks for the question.  The developer and I have chatted and think we have a couple ideas.

First, might it be possible that in your HET equation, you have perfectly collinear variables? I would think that in each state, there is either a win or a loss.  When you specify the HETERO option with a GARCH model the link function is linear. This might explain your issue. You could try to drop one of the vars in the HET equation.

The developer provides an alternative explanation.

"There is another general reason why introducing extra variables
in GARCH is not easy: there is no guarantee that h_t>0. For example,

h_t = omega + alpha* e_{t-1}^2 + gamma * h_{t-1} + het_1 * WIN +
het_2 * LOSS

When het_1 or het_2 is negative, h_t might be negative. More
severe, when some e_t is zero (no matter what’s the reason), the log-likelihood
on observation t, -(log(h_t) + e_t^2/h_t) = -log(h_t), could go to positive
infinity when h_t keeps positive but goes to 0!!! So far, to my knowledge,
there is no solution for this problem, no matter in theory or in practice. That
might be why GARCH converges, but GARCH with extra variables cannot converge."

As to your second question, perhaps you have perfect collinearity in those dichotomous regressors again. Try the following,

proc varmax

model r1 - r5 = /
noint p=

garch q=1 form=ccc;


And if you rule out a data problem, try playing with the convergence settings of the PROC.  Also, which version of SAS are you working with?

Hope this helps-Ken

Calcite | Level 5

The win and loss are not perfectly collinear. There is also a draw dummy(30% of totoal obs), which is omitted. The code provided at the bottom of last repl (multiariation GARCH without explanatory variables) do not converge. Thanks for your advice, I'll try to change the convergence criteria. BTW, the 5 portfolio returns only exhibit something like AR(1) process, it should be fine ha?

The dataset is not large. I'm attaching it and the codes that I tried. The choice of independent variables is changed a little to avoid singularity.

The first 2 codes work, not the last three.


Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.


Register now!

Multiple Linear Regression in SAS

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.

Discussion stats
  • 2 replies
  • 2 in conversation