[R-SIG-Finance] Fitting a DCC-GARCH with more than one external regressor per single process using rmgarch

alexios ghalanos alexios at 4dscape.com
Tue Sep 3 19:06:41 CEST 2013


If I understand correctly, the DCC estimation fails when including 2
external regressors per univariate variance equation (but not 1), and
this does not happen when estimating them separately?

A quick solution is to supply the estimated "multifit" object to the DCC
estimation (via the 'fit' option).
#####################################################################
args(dccfit)

dccfit(spec, data, out.sample = 0, solver = "solnp", solver.control =
list(),  fit.control = list(eval.se = TRUE, stationarity = TRUE, scale =
FALSE), cluster = NULL, fit = NULL, VAR.fit = NULL, ...)
####################################################################
i.e. pass the multispec object to the multifit method and then the
resulting object to dccfit. The dccfit does the same thing, but you have
more control over the estimation and fine-tuning of solver/estimation
setup in the multifit case.

Otherwise convergence problems, particularly in the presence of external
regressors in the variance equation, are discussed in the FAQs of the
vignette and elsewhere in the archives of this mailing list.

You may also find the following paper of interest:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.158.1593&rep=rep1&type=pdf)

-Alexios

On 03/09/2013 16:52, leopoldo.catania wrote:
> Hi,
> 
> I'm trying to fit a dcc model using the rmgarch package, but when I put in
> the variance equation more than one external regressor the dccfit fails.
> 
> Estimating one by one the single process (is an eGARCH(1,1)) there are no
> problems using more than one external regressor.
> 
> I tryied also to use the "fit" parameter in the dccfit() command, but
> nothing change, the error still remain the same.
> 
> Estimating the DCC insering only one external regressor in each single
> process works great.
> 
> the dccfit() command reports:
> 
> Error in `rownames<-`(`*tmp*`, value = c("mu", "ar1", "ma", "arfima",  : 
>   length of 'dimnames' [1] not equal to array extent
> 
> 
> Best regards,
> 
> Leopoldo Catania.
> 
> 
> Below the complete dcc garch specification
> 
>> spec
> [[1]]
> 
> *---------------------------------*
> *       GARCH Model Spec          *
> *---------------------------------*
> 
> Conditional Variance Dynamics 	
> ------------------------------------
> GARCH Model		: eGARCH(1,1)
> Variance Targeting	: FALSE 
> Exogenous Regressor Dimension: 2
> 
> Conditional Mean Dynamics
> ------------------------------------
> Mean Model		: ARFIMA(1,0,0)
> Include Mean		: FALSE 
> GARCH-in-Mean		: FALSE 
> 
> Conditional Distribution
> ------------------------------------
> Distribution	:  std 
> Includes Skew	:  FALSE 
> Includes Shape	:  TRUE 
> Includes Lambda	:  FALSE 
> 
> 
> [[2]]
> 
> *---------------------------------*
> *       GARCH Model Spec          *
> *---------------------------------*
> 
> Conditional Variance Dynamics 	
> ------------------------------------
> GARCH Model		: eGARCH(1,1)
> Variance Targeting	: FALSE 
> Exogenous Regressor Dimension: 2
> 
> Conditional Mean Dynamics
> ------------------------------------
> Mean Model		: ARFIMA(1,0,0)
> Include Mean		: FALSE 
> GARCH-in-Mean		: FALSE 
> 
> Conditional Distribution
> ------------------------------------
> Distribution	:  std 
> Includes Skew	:  FALSE 
> Includes Shape	:  TRUE 
> Includes Lambda	:  FALSE 
> 
> 
>>   mspec = multispec( spec )
>>   mspec
> 
> *-----------------------------*
> *     GARCH Multi-Spec        *
> *-----------------------------*
> Multiple Specifications	: 2
> Multi-Spec Type			: equal
>>   multispec=dccspec(mspec,model="DCC")
>>   multispec
> 
> *------------------------------*
> *       DCC GARCH Spec         *
> *------------------------------*
> Model          :  DCC(1,1)
> Estimation     :  2-step
> Distribution   :  mvnorm
> No. Parameters :  19
> No. Series     :  2
> 
>>   a=as.xts(industry.tf.list[[tf]][,1:2])
>>   dccfit.industry.tf[[q]]=dccfit(multispec,a)
> Error in `rownames<-`(`*tmp*`, value = c("mu", "ar1", "ma", "arfima",  : 
>   length of 'dimnames' [1] not equal to array extent
> 
> 
> 
> --
> View this message in context: http://r.789695.n4.nabble.com/Fitting-a-DCC-GARCH-with-more-than-one-external-regressor-per-single-process-using-rmgarch-tp4675275.html
> Sent from the Rmetrics mailing list archive at Nabble.com.
> 
> _______________________________________________
> R-SIG-Finance at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> -- Subscriber-posting only. If you want to post, subscribe first.
> -- Also note that this is not the r-help list where general R questions should go.
> 
>



More information about the R-SIG-Finance mailing list