RVinePDF: PDF of an R-Vine Copula Model

View source: R/RVineLogLik.R

RVinePDFR Documentation

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, verbose = TRUE)

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.

verbose

In case something goes wrong, additional output will be plotted.

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)}(F(u_{j(e)}|u_{D(e)}),F(u_{k(e)}|u_{D(e)})|\theta_{j(e),k(e)|D(e)}),

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}) = d C_{uv_j|v_{-j}}(F(u|v_{-j}),F(v_j|v_{-j}))/d F(v_j|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().

Author(s)

Thomas Nagler

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


# 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)


tnagler/VineCopula documentation built on March 6, 2024, 5 a.m.