densityCOP {copBasic} | R Documentation |
Density of a Copula
Description
Numerically estimate the copula density for a sequence of and
probabilities for which each sequence has equal steps that are equal to
. The density
of a copula
is numerically estimated by
where (see Nelsen, 2006, p. 10;
densityCOPplot
). The joint density can be defined by the coupla density for continuous variables and is the ratio of the joint density funcion for random variables
and
to the product of the marginal densities (
and
):
where and
are the respective cumulative distribution functions of
and
, and lastly
and
.
Usage
densityCOP(u,v, cop=NULL, para=NULL, deluv=.Machine$double.eps^0.25,
truncate.at.zero=TRUE, the.zero=0, sumlogs=FALSE, ...)
Arguments
u |
Nonexceedance probability |
v |
Nonexceedance probability |
cop |
A copula function; |
para |
Vector of parameters or other data structure, if needed, to pass to the copula; |
deluv |
The change in the sequences |
truncate.at.zero |
A density must be |
the.zero |
The value for “the zero” where a small number might be useful for pseudo-maximum likelihood estimation using |
sumlogs |
Return the |
... |
Additional arguments to pass to the copula function. |
Value
Value(s) for are returned.
Note
The copBasic package does not currently have copula densities as analytical solutions implemented. This is because initial design decisions were entirely on cumulative distribution function (CDF) representations of the copula.
Author(s)
W.H. Asquith
References
Joe, H., 2014, Dependence modeling with copulas: Boca Raton, CRC Press, 462 p.
Nelsen, R.B., 2006, An introduction to copulas: New York, Springer, 269 p.
See Also
simCOP
, densityCOPplot
, kullCOP
, mleCOP
Examples
## Not run:
# Joe (2014, p. 164) shows the closed form copula density for the Plackett.
"dPLACKETTcop" <- function(u,v,para) {
uv <- u*v; upv <- u + v; eta <- para - 1
A <- para*(1+eta*(upv - 2*uv)); B <- ((1+eta*upv)^2 - 4*para*eta*uv)^(3/2)
return(A/B)
}
dPLACKETTcop(0.32, 0.74, para=1.3) # 0.9557124
densityCOP( 0.32, 0.74, cop=PLcop, para=1.3) # 0.9557153
## End(Not run)
## Not run:
# Joe (2014, p. 165) shows the corner densities of the Plackett as Theta.
# copBasic uses numerical density estimation and not analytical formula.
eps <- .Machine$double.eps
densityCOP(0,0, cop=PLcop, para=4) # 3.997073 (default eps^0.25)
densityCOP(1,1, cop=PLcop, para=4) # 3.997073 (default eps^0.25)
densityCOP(1,1, cop=PLcop, para=4, deluv=eps) # 0 (silent failure)
densityCOP(1,1, cop=PLcop, para=4, deluv=eps^0.5) # 4.5
densityCOP(1,1, cop=PLcop, para=4, deluv=eps^0.4) # 4.002069
densityCOP(1,1, cop=PLcop, para=4, deluv=eps^0.3) # 3.999513
# So, we see that the small slicing does have an effect, the default of 0.25 is
# intented for general application by being away enough from machine limits.
## End(Not run)
## Not run:
# Joe (2014, p. 170) shows the closed form copula density for "Bivariate Joe/B5" copula
"dJOEB5cop" <- function(u, v, para) {
up <- (1-u)^para; vp <- (1-v)^para; eta <- para - 1
A <- (up + vp - up*vp); B <- (1-u)^eta * (1-v)^eta; C <- (eta + A)
return(A^(-2 + 1/para) * B * C)
}
densityCOP(0.32, 0.74, cop=JOcopB5, para=1.3) # 0.9410653
dJOEB5cop( 0.32, 0.74, para=1.3) # 0.9410973
## End(Not run)