Learn R Programming

copBasic (version 1.7.1)

derCOPinv: Numerical Derivative Inverse of a Copula for V with respect to U

Description

Compute the inverse of a numerical partial derivative for $V$ with respect to $U$ of a copula or $$t = c_u(v) = \frac{\delta \mathbf{C}(u,v)}{\delta u}\mbox{,}$$ and solving for $v$. Nelsen (2006, pp. 13, 40--41) shows that this inverse is quite important for random variable generation. This function is not vectorized.

Usage

derCOPinv(cop=NULL, u, t, delu=.Machine$double.eps^0.50, para=NULL, ...)

Arguments

cop
A copula function;
u
A single nonexceedance probability $u$ in the $X$ direction;
t
A single nonexceedance probability level $t$;
delu
The $\Delta u$ interval for the derivative;
para
Vector of parameters or other data structures, if needed, to pass to cop; and
...
Additional arguments to pass to the copula.

Value

  • Value(s) for the derivative inverse are returned.

References

Nelsen, R.B., 2006, An introduction to copulas: New York, Springer, 269 p.

See Also

derCOP

Examples

Run this code
u <- runif(1); t <- runif(1)
derCOPinv(cop=W,u,t); derCOPinv(cop=P,u,t); derCOPinv(cop=M,u,t)
derCOPinv(cop=PSP,u,t)

# Simulate 1000 values from product (independent) copula
plot(c(0,1),c(0,1), type="n")
for(i in 1:1000) {
   u <- runif(1); t <- runif(1); v <- derCOPinv(cop=P,u,t)
   points(u,v, cex=0.5, pch=16) # black dots
}
# Now simulate 1000 from the PSP copula and note the lower tail
# dependence, but absence of upper tail dependence.
for(i in 1:1000) {
   u <- runif(1); t <- runif(1); v <- derCOPinv(cop=PSP,u,t)
   points(u,v, cex=0.5, pch=16, col=2) # red dots
}

Run the code above in your browser using DataLab