The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
An R package that provides functionality to fit and simulate from stationary vine copula models for time series.
The package is build on top of rvinecopulib and univariateML.
Install the development version from Github.
# install.packages("remotes")
::install_github("tnagler/svines") remotes
For detailed documentation and examples, see the API documentation.
library(svines)
#> Loading required package: rvinecopulib
data(returns) # data set of stock returns
<- returns[1:500, 1:2] returns
<- svine(returns, p = 1) # Markov order 1
fit #> Warning in f(x, na.rm = na.rm): The iteration limit (iterlim = 100) was reached
#> before the relative tolerance requirement (rel.tol = 0.0001220703125).
#> Warning in f(x, na.rm = na.rm): The iteration limit (iterlim = 100) was reached
#> before the relative tolerance requirement (rel.tol = 0.0001220703125).
summary(fit)
#> $margins
#> # A data.frame: 2 x 5
#> margin name model parameters loglik
#> 1 Allianz Skew Student-t 0.00039, 0.01589, 5.45534, 0.91785 1382
#> 2 AXA Skew Student-t 0.00052, 0.02089, 4.35198, 0.90611 1260
#>
#> $copula
#> # A data.frame: 5 x 10
#> tree edge conditioned conditioning var_types family rotation parameters df
#> 1 1 3, 2 c,c t 0 0.037, 4.893 2
#> 1 2 2, 1 c,c t 0 0.86, 3.48 2
#> 2 1 4, 2 3 c,c joe 90 1.1 1
#> 2 2 3, 1 2 c,c indep 0 0
#> 3 1 4, 1 2, 3 c,c t 0 0.079, 8.994 2
#> tau
#> 0.023
#> 0.662
#> -0.033
#> 0.000
#> 0.051
contour(fit$copula)
svine_sim()
can be used in two different ways:
<- svine_sim(n = 500, rep = 1, model = fit)
sim pairs(sim)
pairs(returns)
<- svine_sim(n = 1, rep = 100, model = fit, past = returns)
sim pairs(t(sim[1, , ]))
To generate new bootstrapped models from the asymptotic distribution, use
<- svine_bootstrap_models(2, fit)
models summary(models[[1]])
#> $margins
#> # A data.frame: 2 x 5
#> margin name model parameters loglik
#> 1 Allianz Skew Student-t 0.0013, 0.0152, 6.6989, 0.9363 NA
#> 2 AXA Skew Student-t 0.0021, 0.0191, 5.8851, 0.9247 NA
#>
#> $copula
#> # A data.frame: 5 x 10
#> tree edge conditioned conditioning var_types family rotation parameters df
#> 1 1 3, 2 c,c t 0 0.018, 4.545 2
#> 1 2 2, 1 c,c t 0 0.87, 3.31 2
#> 2 1 4, 2 3 c,c joe 90 1.1 1
#> 2 2 3, 1 2 c,c indep 0 0
#> 3 1 4, 1 2, 3 c,c t 0 0.11, 9.70 2
#> tau
#> 0.012
#> 0.674
#> -0.059
#> 0.000
#> 0.070
summary(models[[1]])
#> $margins
#> # A data.frame: 2 x 5
#> margin name model parameters loglik
#> 1 Allianz Skew Student-t 0.0013, 0.0152, 6.6989, 0.9363 NA
#> 2 AXA Skew Student-t 0.0021, 0.0191, 5.8851, 0.9247 NA
#>
#> $copula
#> # A data.frame: 5 x 10
#> tree edge conditioned conditioning var_types family rotation parameters df
#> 1 1 3, 2 c,c t 0 0.018, 4.545 2
#> 1 2 2, 1 c,c t 0 0.87, 3.31 2
#> 2 1 4, 2 3 c,c joe 90 1.1 1
#> 2 2 3, 1 2 c,c indep 0 0
#> 3 1 4, 1 2, 3 c,c t 0 0.11, 9.70 2
#> tau
#> 0.012
#> 0.674
#> -0.059
#> 0.000
#> 0.070
Nagler, T., Krüger, D., Min, A. (2022). Stationary vine copula models for multivariate time series. Journal of Econometrics, 227(2), pp. 305-324 [pdf] [doi]
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.