We generate a Gaussian ARMA model.
A model spec can be fitted to data with the generic command
fit.
copspec <- armacopula(pars = list(ar =0.01, ma =0.01))
margspec <- margin("norm")
fullspec <- tscm(copspec, margspec)
modfit <- fit(fullspec, data1, method = "full")
modfit
#> object class: tscmfit
#> _______ 
#> MARGIN: 
#> name: gauss
#> parameters: 
#>        mu     sigma 
#> 0.5845416 2.1558708 
#> _______
#> COPULA: 
#> object class: armacopula
#> name: ARMA(1,1)
#> parameters: 
#>        ar1        ma1 
#>  0.9380637 -0.8255022 
#> _________________________
#> summary of all estimates:
#>       ar.ar1       ma.ma1    margin.mu margin.sigma 
#>    0.9380637   -0.8255022    0.5845416    2.1558708 
#> convergence status: 0 , log-likelihood: -2135.118copmod <- dvinecopula2(family = "joe",
                       kpacf = "kpacf_arma",
                       pars = list(ar = 0.9, ma = -0.8),
                       maxlag = 20)
vcopmod <- vtscopula(copmod,
                     Vtransform = V2p(delta = 0.5, kappa = 2))
margmod <- margin("slaplace",
                  pars = c(mu = 1, scale = 2, gamma = 0.7))
tscmmod <- tscm(vcopmod, margmod)
tscmmod
#> object class: tscm
#> _______ 
#> MARGIN: 
#> name: slaplace
#> parameters: 
#>    mu scale gamma 
#>   1.0   2.0   0.7 
#> _______
#> COPULA: 
#> object class: vtscopula
#> ____________ 
#> Base copula: 
#> object class: dvinecopula2
#> name: type2-d-vine
#> copula family: joe
#> KPACF: kpacf_arma with max lag 20
#> parameters: 
#> [1]  0.9 -0.8
#> ____________ 
#> V-transform: 
#> name: V2p
#> parameters: 
#> delta kappa 
#>   0.5   2.0First fit a marginal model only.
Now fit the time series copula model stepwise.
tscmfit_step <- fit(tscmmod, data2)
tscmfit_step
#> object class: tscmfit
#> _______ 
#> MARGIN: 
#> name: slaplace
#> parameters: 
#>        mu     scale     gamma 
#> 1.0136622 2.0855250 0.7108397 
#> _______
#> COPULA: 
#> object class: vtscopula
#> ____________ 
#> Base copula: 
#> object class: dvinecopula2
#> name: type2-d-vine
#> copula family: joe
#> KPACF: kpacf_arma with max lag 20
#> parameters: 
#> [1]  0.9045782 -0.7980417
#> ____________ 
#> V-transform: 
#> name: V2p
#> parameters: 
#>   delta   kappa 
#> 0.50000 1.98948 
#> _________________________
#> summary of all estimates:
#>           ar           ma     vt.kappa    margin.mu margin.scale margin.gamma 
#>    0.9045782   -0.7980417    1.9894803    1.0136622    2.0855250    0.7108397 
#> convergence status: 0 , log-likelihood: -4819.964
coef(tscmfit_step)
#>                            delta      kappa         mu      scale      gamma 
#>  0.9045782 -0.7980417  0.5000000  1.9894803  1.0136622  2.0855250  0.7108397
coef(tscmmod)
#>             delta kappa    mu scale gamma 
#>   0.9  -0.8   0.5   2.0   1.0   2.0   0.7Final optimization over all parameters.
tscmfit_full <- fit(tscmfit_step, data2, method = "full")
tscmfit_full
#> object class: tscmfit
#> _______ 
#> MARGIN: 
#> name: slaplace
#> parameters: 
#>        mu     scale     gamma 
#> 1.0132969 2.0839697 0.7119104 
#> _______
#> COPULA: 
#> object class: vtscopula
#> ____________ 
#> Base copula: 
#> object class: dvinecopula2
#> name: type2-d-vine
#> copula family: joe
#> KPACF: kpacf_arma with max lag 20
#> parameters: 
#> [1]  0.9043820 -0.7981071
#> ____________ 
#> V-transform: 
#> name: V2p
#> parameters: 
#>    delta    kappa 
#> 0.500000 1.979627 
#> _________________________
#> summary of all estimates:
#>           ar           ma     vt.kappa    margin.mu margin.scale margin.gamma 
#>    0.9043820   -0.7981071    1.9796267    1.0132969    2.0839697    0.7119104 
#> convergence status: 0 , log-likelihood: -4819.961Comparison of model.
We can plot the estimated v-transform and well as the goodness-of-fit
plots for the dvinecopula object based on Kendall rank
correlations.
The first plots relate to the fitted copula.
The next plot is the QQplot of the marginal fit.
The next two plots are the estimated v-transform and the estimated volatility profile function.
The final plot shows aspect of the fit of the v-transform to the data.