Learn R Programming

VineCopula (version 1.6-1)

RVinePDF: PDF of an R-Vine Copula Model

Description

This function calculates the probability density function of a d-dimensional R-vine copula.

Usage

RVinePDF(newdata, RVM)

Arguments

newdata
An N x d data matrix that specifies where the density shall be evaluated.
RVM
An RVineMatrix object including the structure and the pair-copula families and parameters.

Details

The density of a $d$-dimensional R-vine copula with $d-1$ trees and corresponding edge sets $E_1,...,E_{d-1}$ is given by $$\prod_{\ell=1}^{d-1} \prod_{e\in E_\ell} c_{j(e),k(e)|D(e)}\left(F(u_{j(e)}|\boldsymbol{u}_{D(e)}),F(u_{k(e)}|\boldsymbol{u}_{D(e)})|\boldsymbol{\theta}_{j(e),k(e)|D(e)}\right),$$ where $\boldsymbol{u}=(u_{1},...,u_{d})^\prime\in[0,1]^d$. Further $c_{j(e),k(e)|D(e)}$ denotes a bivariate copula density associated to an edge $e$ and with parameter(s) $\boldsymbol{\theta}_{j(e),k(e)|D(e)}$. Conditional distribution functions such as $F(u_{j(e)}|\boldsymbol{u}_{D(e)})$ are obtained recursively using the relationship $$h(u|\boldsymbol{v},\boldsymbol{\theta}) := F(u|\boldsymbol{v}) = \frac{\partial C_{uv_j|\boldsymbol{v}_{-j}}(F(u|\boldsymbol{v}_{-j}),F(v_j|\boldsymbol{v}_{-j}))}{\partial F(v_j|\boldsymbol{v}_{-j})},$$ where $C_{uv_j|\boldsymbol{v}_{-j}}$ is a bivariate copula distribution function with parameter(s) $\boldsymbol{\theta}$ and $\boldsymbol{v}_{-j}$ denotes a vector with the $j$-th component $v_j$ removed. The notation of h-functions is introduced for convenience. For more details see Dissmann et al. (2013). The function is actually just a wrapper to RVineLogLik.

References

Dissmann, J. F., E. C. Brechmann, C. Czado, and D. Kurowicka (2013). Selecting and estimating regular vine copulae and application to financial returns. Computational Statistics & Data Analysis, 59 (1), 52-69.

See Also

BiCopHfunc, RVineMatrix, RVineMLE, RVineAIC, RVineBIC

Examples

Run this code
# define 5-dimensional R-vine tree structure matrix
Matrix <- c(5, 2, 3, 1, 4,
            0, 2, 3, 4, 1,
            0, 0, 3, 4, 1,
            0, 0, 0, 4, 1,
            0, 0, 0, 0, 1)
Matrix <- matrix(Matrix, 5, 5)

# define R-vine pair-copula family matrix
family <- c(0, 1, 3, 4, 4,
            0, 0, 3, 4, 1,
            0, 0, 0, 4, 1,
            0, 0, 0, 0, 3,
            0, 0, 0, 0, 0)
family <- matrix(family, 5, 5)

# define R-vine pair-copula parameter matrix
par <- c(0, 0.2, 0.9, 1.5, 3.9,
         0, 0, 1.1, 1.6, 0.9,
         0, 0, 0, 1.9, 0.5,
         0, 0, 0, 0, 4.8,
         0, 0, 0, 0, 0)
par <- matrix(par, 5, 5)

# define second R-vine pair-copula parameter matrix
par2 <- matrix(0, 5, 5)

# define RVineMatrix object
RVM <- RVineMatrix(Matrix = Matrix, family = family,
                   par = par, par2 = par2,
                   names = c("V1", "V2", "V3", "V4", "V5"))
                  
# compute the density at (0.1, 0.2, 0.3, 0.4, 0.5)
RVinePDF(c(0.1, 0.2, 0.3, 0.4, 0.5), RVM)

Run the code above in your browser using DataLab