Dear all, I was analyzing and implementing the DCC model (Dynamic Conditional Correlation) for the one-day forecast calculation of the variance-covariance matrix of a system consisting of, approximately, 30 stocks. For each title I consider a historical series of logarithmic daily returns of 250 samples. In particular, I was interested in the simulation of this model using the t-Student distribution. In this regard I was using the "rugarch" and "rmgarch" packages. According to the examples found in the literature, I run my analysis in the following way:
1) specification of the univariate garch model for each stock passing the number of degrees of freedom of the t-Student distribution as input (parameter mshape) 2) multifitting of the univariate garch models 3) specification of DCC model with a multivariate t-Student distribution (degrees of freedom are not passed as input, in this case) 4) fitting of the DCC model 5) variance-covariance matrix forecasting I give an example of the code I'm running (qxts is the time series data, mshape is the number of degrees of freedom): # GARCH(1,1) specification garch11.spec = ugarchspec(mean.model = list(armaOrder = c(0, 0)), variance.model = list(garchOrder = c(1, 1), model = "sGARCH"), distribution.model = "std", fixed.pars = list(shape = mshape)) # replicate Garch(1,1) spec for both time series uspec = multispec(replicate(ncol(qxts), garch11.spec)) # Fit Garch models: hybrid -> in case of non convergence, all solvers are used multf = multifit(uspec, qxts, solver = "hybrid", fit.control = list(scale = 1)) # Dcc model spec dcc.garch11.spec = dccspec(uspec = uspec, dccOrder = c(1, 1), distribution = "mvt", model = "DCC") # Fitting parameters of DCC dcc.fit = dccfit(dcc.garch11.spec, qxts, fit = multf, fit.control = list(scale = TRUE)) # dcc.fit = dccfit(dcc.garch11.spec, qxts, fit = multf, fit.control = list(scale = 1)) # Forecast dcc.fcst = dccforecast(dcc.fit, n.ahead = 1) varmat = rcov(dcc.fcst)[[dt_cov]][,, 1] However, using a number of degrees of freedom of 2.5, I get the following error: Error in solve.default(A) : system is computationally singular: reciprocal condition number = 1.19994e-18 If, for example, I change the degrees of freedom from 2.5 to 2.6, the error no longer appears. I would like to know if there is a way to allow the calculation to be performed even using a number of degrees of freedom equals to 2.5, as I cannot find any reference in the literature that addresses this problem. I also tried the following idea. I don't pass the number of degrees of freedom as input, but I make sure that, for each title, the number of degrees of freedom is calculated internally by the function multifit. Obviously, I get different degrees of freedom depending on the stock considered. In this case, however, passing the calculated parameters of the multifit to the dccfunction, leads to the following error: 'data' must be of a vector type, was 'NULL' even if the data sample I pass as input contains no null value. I would like to know if these problems are due solely to the numerical values of the data passed as input or if I am conceptually wrong in the implementation of the method. Thanks to all [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.