[R-SIG-Finance] copula with rmgarch

Alex Fei alec.fei at gmail.com
Wed May 9 17:47:58 CEST 2012


Thank you Alexios for always prompt and patient reply!

Yes, you are right. It does not make sense to look at the simulated cov for
1-ahead. I was trying to do a portfolio allocation exercise. 

1) If the mean-variance approach is adopted, basically what I need is the
1-day-ahead return of each assets and their cov. I suppose the former should
come from the margin parts (e.g. ARMA(1,1)-GARCH(1,1)-ghst) given the
estimated marginal parameters and the latter should come from the copula
part (e.g. DCC(1,1)-t-copula) given the estimated copula parameters. In R,
*what shall I do?* for example I have the following:
> library(rmgarch)
> data(dji30ret)
> Dat = dji30ret[, 1:3, drop = FALSE]
> uspec = ugarchspec(mean.model = list(armaOrder = c(1,1)), variance.model =
> list(garchOrder = c(1,1), model = "sGARCH"), 
+                    distribution.model = "jsu")
> spec1 = cgarchspec(uspec = multispec( replicate(3, uspec) ), VAR = FALSE,
> robust = FALSE, lag = 2, lag.max = NULL, 
+                    lag.criterion = c("AIC", "HQ", "SC", "FPE"),
external.regressors = NULL,
+                    robust.control = list("gamma" = 0.25, "delta" = 0.01,
"nc" = 10, "ns" = 500), 
+                    dccOrder = c(1,1), asymmetric = FALSE,
distribution.model = list(copula = c("mvnorm", "mvt")[2], 
+                                                                                    
method = c("Kendall", "ML")[2], time.varying = TRUE, 
+                                                                                    
transformation = c("parametric", "empirical", "spd")[1]))
> fit1 = cgarchfit(spec1, data = Dat, parallel = parallel, parallel.control
> = parallel.control,
+                  fit.control = list(eval.se=TRUE))
> show(fit1)

*-------------------------------------------------*
*                  Copula GARCH Fit               *
*-------------------------------------------------*

Distribution		:  mvt
DCC Order			:  1 1
Asymmetric			:  FALSE
No. of Parameters	:  30
[VAR GARCH DCC UncQ]: [0+24+3+3]
No. of Series		:  3
No. of Observations	:  5521
Log-Likelihood		:  43676.18
Av.Log-Likelihood	:  7.911 

Optimal Parameters
---------------------------------------------------
               Estimate  Std. Error    t value Pr(>|t|)
[AA].mu        0.000531    0.000252   2.106962 0.035121
[AA].ar1      -0.582146    0.075357  -7.725139 0.000000
[AA].ma1       0.638169    0.069877   9.132792 0.000000
[AA].omega     0.000003    0.000001   2.046048 0.040752
[AA].alpha1    0.045806    0.008897   5.148264 0.000000
[AA].beta1     0.948470    0.012120  78.255127 0.000000
[AA].skew      0.141182    0.069022   2.045450 0.040810
[AA].shape     1.902134    0.111488  17.061336 0.000000
[AXP].mu       0.000627    0.000168   3.732932 0.000189
[AXP].ar1      0.730182    0.072262  10.104678 0.000000
[AXP].ma1     -0.784923    0.065556 -11.973334 0.000000
[AXP].omega    0.000001    0.000001   1.893198 0.058332
[AXP].alpha1   0.058253    0.012840   4.536872 0.000006
[AXP].beta1    0.940747    0.014063  66.893758 0.000000
[AXP].skew     0.131492    0.048365   2.718777 0.006552
[AXP].shape    1.868931    0.097636  19.141771 0.000000
[BA].mu        0.000586    0.001033   0.567440 0.570415
[BA].ar1      -0.385522    5.202037  -0.074110 0.940923
[BA].ma1       0.394759    5.336133   0.073978 0.941028
[BA].omega     0.000004    0.000005   0.729471 0.465714
[BA].alpha1    0.046706    0.056782   0.822551 0.410764
[BA].beta1     0.942283    0.066474  14.175183 0.000000
[BA].skew      0.072497    0.522772   0.138678 0.889705
[BA].shape     1.710008    0.085270  20.054081 0.000000
[Joint]dcca1   0.008234    0.001330   6.190368 0.000000
[Joint]dccb1   0.989416    0.002026 488.351900 0.000000
[Joint]mshape 13.574529    1.569377   8.649627 0.000000

Information Criteria
---------------------
                    
Akaike       -15.812
Bayes        -15.780
Shibata      -15.812
Hannan-Quinn -15.801


Elapsed time : 1.85734

ps. seems I can't use ghst for GH skew-t but use jsu instead. When I use
ghst in ugarchspec, the cgarchfit will report the following error message:
Error in if (!any(distribution == valid.distribution))
stop("\nugarchspec-->error: the cond.distribution does not appear to be a
valid choice.") : 
  missing value where TRUE/FALSE needed

2) If the mean-CVaR approach is adopted, I suppose to have a large number
(say, 10000) of 1-day-ahead return of each assets at different scenarios. I
think it can be done with sim1 = cgarchsim(fit1, n.sim = 1, m.sim = 10000,
startMethod = "sample"). *Am I right?*

3) for other exercises, i.e. fitting Archimedean copulas (seems like the
rmgarch package only support gaussian and t copula), I need transform the
standardised residuals to uniform via CDF or ecdf. I suppose the residuals
is standardised (*Am I right?*) by using rugarch, again assume
ARMA(1,1)-GARCG(1,1)-ghst, then *how can I do this transformation* to obtain
uniform pseudo-observations to start a fitting using copula package? Btw, do
you have any suggestion to do this exercise? 

--
View this message in context: http://r.789695.n4.nabble.com/copula-with-rmgarch-tp4616138p4620878.html
Sent from the Rmetrics mailing list archive at Nabble.com.



More information about the R-SIG-Finance mailing list