I’m trying to fit an ECM-GARCH-DCC model for 2 time series, the whole 3 in the same time using log-likelihood estimation. It has 14 parameters to estimate:
- ECM has 2 gammas and 1 lambda per time series, this gives 4 gamma and 2 lambda for 2 TS.
- GARCH has 2 alpha, 2 betas, 2 omega for our 2 TS.
- DCC has only alpha and beta regardless of the number of TS (thanks to Engle 2002 variance targeting which gives a formula of conditional correlation given CCC matrix, getting rid of correlation omega)
To avoid problem of explosive GARCH or values out of bounds, I “crop” the tried params to their bounds in my loss function and add a huge penalty (proportional to the distance from closest bound ** 2) to the -log-likelihood loss to tell the optimizer not to cross the bounds or constraints (GARCH params positive and alpha+beta < 1)
I tested my fit function by feeding the optimizer with a random realisation (2 TS) of this model with known parameters. Its goal is to find these same parameters.
It looks like BFGS is having a hard time finding these 14 parameters in the same time : ECM params are retrieved pretty fast though, but GARCH and DCC keep being completely different from expected params (or maybe there are several solutions with low loss?).
So what I’d like is to “help” my fit function by setting initial param values with a smart initial guess, especially for the GARCH and DCC params that it struggles to retrieve.
Is there some well known smart initial guess for GARCH or DCC models ?
rugarch
andrmgarch
in R or some other packages in R or other programming languages. They should specify what the initial parameters are. If not, you can open the code and see for yourself. I think $(\alpha,\beta)=(0.10,0.85)$ or $(0.05,0.90)$ is reasonable for the GARCH part. Maybe try something similar for the two DCC parameters? $\endgroup$