derCOP | R Documentation |
Compute the numerical partial derivative of a copula, which is a conditional distribution function, according to Nelsen (2006, pp. 13, 40–41) with respect to u
:
0 \le \frac{\delta}{\delta u} \mathbf{C}(u,v) \le 1\mbox{,}
or
\mathrm{Pr}[V \le v\mid U=u] = \mathbf{C}_{2 \mid 1}(v \mid u) = \lim_{\Delta u \rightarrow 0}\frac{\mathbf{C}(u+\Delta u, v) - \mathbf{C}(u,v)}{\Delta u}\mbox{,}
which is to read as the probability that V \le v
given that U = u
and corresponds to the
derdir="left"
mode of the function. For derdir="right"
, we have
\mathrm{Pr}[V \le v\mid U=u] = \lim_{\Delta u \rightarrow 0}\frac{\mathbf{C}(u,v) - \mathbf{C}(u-\Delta u, v)}{\Delta u}\mbox{,}
and for derdir="center"
(the usual method of computing a derivative), the following results
\mathrm{Pr}[V \le v\mid U=u] = \lim_{\Delta u \rightarrow 0}\frac{\mathbf{C}(u+\Delta u,v) - \mathbf{C}(u-\Delta u, v)}{2 \Delta u}\mbox{.}
The “with respect to V
” versions are available under derCOP2
.
Copula derivatives (\delta \mathbf{C}/\delta u
or say \delta \mathbf{C}/\delta v
derCOP2
) are non-decreasing functions meaning that if v_1 \le v_2
, then \mathbf{C}(u, v_2) - \mathbf{C}(u,v_1)
is a non-decreasing function in u
, thus
\frac{\delta\bigl(\mathbf{C}(u, v_2) - \mathbf{C}(u,v_1)\bigr)}{\delta u}
is non-negative, which means
\frac{\delta\mathbf{C}(u, v_2)}{\delta u} \ge \frac{\delta\mathbf{C}(u, v_1)}{\delta u}\mbox{\ for\ } v_2 \ge v_1\mbox{.}
derCOP(cop=NULL, u, v, delu=.Machine$double.eps^0.50,
derdir=c("left", "right", "center"), ...)
cop |
A copula function; |
u |
Nonexceedance probability |
v |
Nonexceedance probability |
delu |
The |
derdir |
The direction of the derivative as described above. Default is |
... |
Additional arguments to pass such as the parameters often described in |
Value(s) for the partial derivative are returned.
A known caveat of the current implementation of the copula derivative is that there is a chance that the \Delta u
will span a singularity or discontinuous (or nearly so) portion of a copula should it have a property of singularity (or nearly so). The delu
is chosen small so the chance is mitigated to be a small change and certainly appear to work throughout the examples herein. It is not decided whether a derivative from the positive side (dir="left"
), when failing should switch over to a computation from the negative side (dir="right"
). The distinction is important for the computation of the inverse of the derivative derCOPinv
because the solution finder needs a sign reversal to work.
W.H. Asquith
Nelsen, R.B., 2006, An introduction to copulas: New York, Springer, 269 p.
derCOPinv
, derCOP2
derCOP(cop=W, 0.4, 0.6); derCOP(cop=P, 0.4, 0.6); derCOP(cop=M, 0.4, 0.6)
lft <- derCOP(cop=PSP, 0.4, 0.6, derdir="left" )
rgt <- derCOP(cop=PSP, 0.4, 0.6, derdir="right" )
cnt <- derCOP(cop=PSP, 0.4, 0.6, derdir="center")
cat(c(lft,rgt,cnt,"\n"))
#stopifnot(all.equal(lft,rgt), all.equal(lft,cnt))
# Let us contrive a singularity through this NOT A COPULA in the function "afunc".
"afunc" <- function(u,v, ...) return(ifelse(u <= 0.5, sqrt(u^2+v^2), P(u,v,...)))
lft <- derCOP(cop=afunc, 0.5, 0.67, derdir="left" )
rgt <- derCOP(cop=afunc, 0.5, 0.67, derdir="right" )
cnt <- derCOP(cop=afunc, 0.5, 0.67, derdir="center")
cat(c(lft,rgt,cnt,"\n")) # The "right" version is correct.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.