Evaluate the inverse conditional distribution function (inverse h-function) of a given parametric bivariate copula.
BiCopHinv(u1, u2, family, par, par2 = 0, obj = NULL, check.pars = TRUE)BiCopHinv1(u1, u2, family, par, par2 = 0, obj = NULL, check.pars = TRUE)
BiCopHinv2(u1, u2, family, par, par2 = 0, obj = NULL, check.pars = TRUE)
BiCopHinv
returns a list with
Numeric vector of the inverse conditional distribution function
(inverse h-function) of the copula family
with parameter(s)
par
, par2
evaluated at u2
given u1
, i.e.,
\(h_1^{-1}(u_2|u_1;\boldsymbol{\theta})\).
Numeric vector of the inverse conditional distribution function
(inverse h-function) of the copula family
with parameter(s) par
,
par2
evaluated at u1
given u2
, i.e.,
\(h_2^{-1}(u_1|u_2;\boldsymbol{\theta})\).
BiCopHinv1
is a faster version that only calculates hinv1
;
BiCopHinv2
only calculates hinv2
.
numeric vectors of equal length with values in \([0,1]\).
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'') \cr `14` = rotated Gumbel copula (180 degrees;
survival Gumbel'')
16
= rotated Joe copula (180 degrees; survival Joe'') \cr `17` = rotated BB1 copula (180 degrees;
survival BB1'')
18
= rotated BB6 copula (180 degrees; survival BB6'')\cr `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)
numeric; single number or vector of size length(u1)
;
copula parameter.
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
.
BiCop
object containing the family and parameter
specification.
logical; default is TRUE
; if FALSE
, checks
for family/parameter-consistency are omitted (should only be used with
care).
Ulf Schepsmeier, Thomas Nagler
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) \(\boldsymbol{\theta}\).
For more details see Aas et al. (2009).
If the family and parameter specification is stored in a BiCop()
object obj
, the alternative version
BiCopHinv(u1, u2, obj),
BiCopHinv1(u1, u2, obj),
BiCopHinv2(u1, u2, obj)
can be used.
Aas, K., C. Czado, A. Frigessi, and H. Bakken (2009). Pair-copula constructions of multiple dependence. Insurance: Mathematics and Economics 44 (2), 182-198.
BiCopHfunc()
, BiCopPDF()
, BiCopCDF()
,
RVineLogLik()
, RVineSeqEst()
, BiCop()
# inverse h-functions of the Gaussian copula
cop <- BiCop(1, 0.5)
hi <- BiCopHinv(0.1, 0.2, cop)
hi
# or using the fast versions
hi1 <- BiCopHinv1(0.1, 0.2, cop)
hi2 <- BiCopHinv2(0.1, 0.2, cop)
all.equal(hi$hinv1, hi1)
all.equal(hi$hinv2, hi2)
# check if it is actually the inverse
cop <- BiCop(3, 3)
all.equal(0.2, BiCopHfunc1(0.1, BiCopHinv1(0.1, 0.2, cop), cop))
all.equal(0.1, BiCopHfunc2(BiCopHinv2(0.1, 0.2, cop), 0.2, cop))
Run the code above in your browser using DataLab