derCOPinv2 function

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

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

Compute the inverse of a numerical partial derivative for UU with respect to VV of a copula, which is a conditional quantile function for nonexceedance probability tt, or [REMOVE_ME]t=cv(u)=C12(1)(uv)=δC(u,v)δv\mbox,[REMOVEME2] t = c_v(u) = \mathbf{C}^{(-1)}_{1 \mid 2}(u \mid v) = \frac{\delta \mathbf{C}(u,v)}{\delta v}\mbox{,} [REMOVE_ME_2]

and solving for uu. Nelsen (2006, pp. 13, 40--41) shows that this inverse is quite important for random variable generation using the conditional distribution method. This function is not vectorized and will not be so. utf8

Description

Compute the inverse of a numerical partial derivative for UU with respect to VV of a copula, which is a conditional quantile function for nonexceedance probability tt, or

t=cv(u)=C12(1)(uv)=δC(u,v)δv\mbox, t = c_v(u) = \mathbf{C}^{(-1)}_{1 \mid 2}(u \mid v) = \frac{\delta \mathbf{C}(u,v)}{\delta v}\mbox{,}

and solving for uu. Nelsen (2006, pp. 13, 40--41) shows that this inverse is quite important for random variable generation using the conditional distribution method. This function is not vectorized and will not be so.

derCOPinv2(cop=NULL, v, t, trace=FALSE, delv=.Machine$double.eps^0.50, para=NULL, ...)

Arguments

  • cop: A copula function;
  • v: A single nonexceedance probability vv in the YY direction;
  • t: A single nonexceedance probability level tt;
  • trace: A logical controlling a message on whether the signs on the uniroot are the same---this is helpful in exploring the numerical derivative limits of a given implementation of a copula.
  • delv: The Δv\Delta v interval for the derivative;
  • para: Vector of parameters or other data structure, if needed, to pass to cop; and
  • ...: Additional arguments to pass to the copula.

Returns

Value(s) for the derivative inverse are returned.

References

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

Author(s)

W.H. Asquith

See Also

derCOP2

Examples

u <- runif(1); t <- runif(1) derCOPinv2(u,t, cop=W) # perfect negative dependence derCOPinv2(u,t, cop=P) # independence derCOPinv2(u,t, cop=M) # perfect positive dependence derCOPinv2(u,t, cop=PSP) # a parameterless copula example ## Not run: # Simulate 500 values from product (independent) copula plot(NA,NA, type="n", xlim=c(0,1), ylim=c(0,1), xlab="U", ylab="V") for(i in 1:500) { v <- runif(1); t <- runif(1) points(derCOPinv2(cop=P, v, t),v, cex=0.5, pch=16) # black dots } # Simulate 500 of a Frechet Family copula and note crossing singularities. for(i in 1:500) { v <- runif(1); t <- runif(1) u <- derCOPinv2(v, t, cop=FRECHETcop, para=list(alpha=0.7, beta=0.169)) points(u,v, cex=2, pch=16, col=2) # red dots } # ## End(Not run)
  • Maintainer: William Asquith
  • License: GPL-2
  • Last published: 2024-10-08

Useful links