[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 20:10:29 CEST 2013


Thanks. That's definitely a bug. Will upload a fix to r-forge later
today/tomorrow.

Regards,
Alexios

On 03/09/2013 18:52, leopoldo.catania wrote:
> Hi Alexios,
> 
> thanks for answering, yes the problem is the one you wrote.
> 
> I just tried to estimate the dcc using (in the sample) the two univariate
> estimates, I included in the "fit" command (dccfit(...fit=,...)) a list
> which contains the univariate estimated, and the error is the same.
> 
> Now, as you suggested, I tried to use a multifit object, so my code is:
> 
>> spec
> $`Electronic Technology`
> 
> *---------------------------------*
> *       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 
> 
> 
> $`Non-Energy Minerals`
> 
> *---------------------------------*
> *       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
>> r=as.xts(sector.tf.list[[tf]][a,1:2])
>> multi.fit=multifit(mspec,r)
>> multi.fit
> 
> *----------------------------*
> *     GARCH Multi-Fit        *
> *----------------------------*
> No. Assets :2
> GARCH Multi-Spec Type : Equal
> GARCH Model Spec
> --------------------------
> Model : eGARCH
> Exogenous Regressors in variance equation:  2 
> 
> Mean Equation :
> Include Mean :  0
> AR(FI)MA Model : (1,d,0)
> GARCH-in-Mean :  FALSE
> Exogenous Regressors in mean equation: none
> Conditional Distribution:  std 
> 
> GARCH Model Fit
> --------------------------
> Optimal Parameters:
>         Electronic Technology Non-Energy Minerals
> ar1                   0.05294             0.05204
> omega                -0.48544            -0.51636
> alpha1               -0.01188            -0.00150
> beta1                 0.96834             0.96459
> gamma1                0.16409             0.16298
> vxreg1               -0.00957             0.04071
> vxreg2                0.00126             0.01153
> shape                 3.66710             3.98666
> Log-Lik           81768.21938         76305.84698
> 
>> multispec=dccspec(mspec,model="DCC")
>> dccfit(multispec,fit=multi.fit,r)
> Error in `rownames<-`(`*tmp*`, value = c("mu", "ar1", "ma", "arfima",  : 
>   length of 'dimnames' [1] not equal to array extent
> 
> The error is the same.
> 
> You could try to run the code below, which reports the same error:
> 
> set.seed(422)
> 
> r=cbind(rnorm(1000),rnorm(1000))
> colnames(r)=c("1","2")
> 
> ext=list()
> ext[["1"]]=cbind(rnorm(1000),rnorm(1000))
> ext[["2"]]=cbind(rnorm(1000),rnorm(1000))
> 
> spec=list()
> 
> for(i in 1:length(ext)){
>   name=names(ext)[i]
>  
> spec[[name]]=ugarchspec(variance.model=list(model="eGARCH",garchOrder=c(1,1),external.regressors=ext[[name]]),
>                                               mean.model = list(armaOrder =
> c(1, 0),include.mean = F,external.regressors=NULL),
>                                               distribution.model="norm")
> }
> 
> 
> 
> mspec = multispec( spec )
> multi.fit=multifit(mspec,r)
> multispec=dccspec(mspec,model="DCC")
> 
> dccfit(multispec,fit=multi.fit,r)
> 
> 
> Best regards,
> Leopoldo Catania.
> 
> 
> 
> --
> 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-tp4675275p4675284.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