Learn R Programming

VineCopula (version 2.1.1)

BiCopHfunc: Conditional Distribution Function of a Bivariate Copula

Description

Evaluate the conditional distribution function (h-function) of a given parametric bivariate copula.

Usage

BiCopHfunc(u1, u2, family, par, par2 = 0, obj = NULL, check.pars = TRUE)
BiCopHfunc1(u1, u2, family, par, par2 = 0, obj = NULL, check.pars = TRUE)
BiCopHfunc2(u1, u2, family, par, par2 = 0, obj = NULL, check.pars = TRUE)

Arguments

u1, u2
numeric vectors of equal length with values in [0,1].
family
integer; single number or vector of size length(u1); defines the bivariate copula family: 0 = independence copula 1 = Gaussian copula 2 = Student t copula (t-copula) 3 = Clayton copula 4 = Gumbel copula 5 = Frank copula 6 = Joe copula 7 = BB1 copula 8 = BB6 copula 9 = BB7 copula 10 = BB8 copula 13 = rotated Clayton copula (180 degrees; ``survival Clayton'') 14 = rotated Gumbel copula (180 degrees; ``survival Gumbel'') 16 = rotated Joe copula (180 degrees; ``survival Joe'') 17 = rotated BB1 copula (180 degrees; ``survival BB1'') 18 = rotated BB6 copula (180 degrees; ``survival BB6'') 19 = rotated BB7 copula (180 degrees; ``survival BB7'') 20 = rotated BB8 copula (180 degrees; ``survival BB8'') 23 = rotated Clayton copula (90 degrees) 24 = rotated Gumbel copula (90 degrees) 26 = rotated Joe copula (90 degrees) 27 = rotated BB1 copula (90 degrees) 28 = rotated BB6 copula (90 degrees) 29 = rotated BB7 copula (90 degrees) 30 = rotated BB8 copula (90 degrees) 33 = rotated Clayton copula (270 degrees) 34 = rotated Gumbel copula (270 degrees) 36 = rotated Joe copula (270 degrees) 37 = rotated BB1 copula (270 degrees) 38 = rotated BB6 copula (270 degrees) 39 = rotated BB7 copula (270 degrees) 40 = rotated BB8 copula (270 degrees) 104 = Tawn type 1 copula 114 = rotated Tawn type 1 copula (180 degrees) 124 = rotated Tawn type 1 copula (90 degrees) 134 = rotated Tawn type 1 copula (270 degrees) 204 = Tawn type 2 copula 214 = rotated Tawn type 2 copula (180 degrees) 224 = rotated Tawn type 2 copula (90 degrees) 234 = rotated Tawn type 2 copula (270 degrees)
par
numeric; single number or vector of size length(u1); copula parameter.
par2
numeric; single number or vector of size length(u1); second parameter for bivariate copulas with two parameters (t, BB1, BB6, BB7, BB8, Tawn type 1 and type 2; default: par2 = 0). par2 should be an positive integer for the Students's t copula family = 2.
obj
BiCop object containing the family and parameter specification.
check.pars
logical; default is TRUE; if FALSE, checks for family/parameter-consistency are ommited (should only be used with care).

Value

BiCopHfunc returns a list with returns a list withBiCopHfunc1 is a faster version that only calculates hfunc1; BiCopHfunc2 only calculates hfunc2.

Details

The h-function is defined as the conditional distribution function of a bivariate copula, i.e., $$h_1(u_2|u_1;\boldsymbol{\theta}) := P(U_2 \le u_2 | U_1 = u_1) = \frac{\partial C(u_1, u_2; \boldsymbol{\theta})}{\partial u_1}, $$ $$h_2(u_1|u_2;\boldsymbol{\theta}) := P(U_1 \le u_1 | U_2 = u_2) = \frac{\partial C(u_1, u_2; \boldsymbol{\theta})}{\partial u_2}, $$ where $(U_1, U_2) \sim C$, and $C$ is a bivariate copula distribution function with parameter(s) $\theta$. For more details see Aas et al. (2009).

If the family and parameter specification is stored in a BiCop object obj, the alternative versions

BiCopHfunc(u1, u2, obj)
BiCopHfunc1(u1, u2, obj)
BiCopHfunc2(u1, u2, obj)
can be used.

References

Aas, K., C. Czado, A. Frigessi, and H. Bakken (2009). Pair-copula constructions of multiple dependence. Insurance: Mathematics and Economics 44 (2), 182-198.

See Also

BiCopHinv, BiCopPDF, BiCopCDF, RVineLogLik, RVineSeqEst, BiCop

Examples

Run this code
data(daxreturns)

# h-functions of the Gaussian copula
cop <- BiCop(family = 1, par = 0.5)
h <- BiCopHfunc(daxreturns[, 2], daxreturns[, 1], cop)

# or using the fast versions
h1 <- BiCopHfunc1(daxreturns[, 2], daxreturns[, 1], cop)
h2 <- BiCopHfunc2(daxreturns[, 2], daxreturns[, 1], cop)
all.equal(h$hfunc1, h1)
all.equal(h$hfunc2, h2)

Run the code above in your browser using DataLab