AMHcop {copBasic} | R Documentation |
The Ali–Mikhail–Haq Copula
Description
The Ali–Mikhail–Haq copula (Nelsen, 2006, p. 92–93, 172) is
where , where the right boundary,
, can sometimes be considered valid according to Mächler (2014). The copula
becomes the independence copula (
;
P
), and the parameter is readily computed from a Kendall Tau (
tauCOP
) by
and by Spearman Rho (rhoCOP
), through Mächler (2014), by
The support of is
and the
is
, which shows that this copula has a limited range of dependency. The infinite summation is easier to work with than
Nelsen (2006, p. 172) definition of
where the is the dilogarithm function defined by
The integral version has more nuances with approaches toward and
than the infinite sum version.
Usage
AMHcop(u, v, para=NULL, rho=NULL, tau=NULL, fit=c("rho", "tau"), ...)
Arguments
u |
Nonexceedance probability |
v |
Nonexceedance probability |
para |
A vector (single element) of parameters—the |
rho |
Optional Spearman Rho from which the parameter will be estimated and presence of |
tau |
Optional Kendall Tau from which the parameter will be estimated; |
fit |
If |
... |
Additional arguments to pass. |
Value
Value(s) for the copula are returned. Otherwise if tau
is given, then the is computed and a
list
having
para |
The parameter |
tau |
Kendall Tau. |
and if para=NULL
and tau=NULL
, then the values within u
and v
are used to compute Kendall Tau and then compute the parameter, and these are returned in the aforementioned list.
Note
Mächler (2014) reports on accurate computation of and
for this copula for conditions of
and in particular derives the following equation, which does not have
in the denominator:
The copula package provides a Taylor series expansion for for small
in the
copula::tauAMH()
. This is demonstrated here between the implementation of for parameter estimation in the copBasic package to that in the more sophisticated implementation in the copula package.
copula::tauAMH(AMHcop(tau=0)$para) # theta = -2.313076e-07
It is seen that the numerical approaches yield quite similar results for small , and finally, a comparison to the
is informative:
rhoCOP(AMHcop, para=1E-9) # 3.333333e-10 (two nested integrations) copula:::.rhoAmhCopula(1E-9) # 3.333333e-10 (cutoff based) theta <- seq(-1,1, by=.0001) RHOa <- sapply(theta, function(t) rhoCOP(AMHcop, para=t)) RHOb <- sapply(theta, function(t) copula:::.rhoAmhCopula(t)) plot(10^theta, RHOa-RHOb, type="l", col=2)
The plot shows that the apparent differences are less than 1 part in 100 million—The copBasic computation is radically slower though, but rhoCOP
was designed for generality of copula family.
Author(s)
W.H. Asquith
References
Joe, H., 2014, Dependence modeling with copulas: Boca Raton, CRC Press, 462 p.
Mächler, Martin, 2014, Spearman's Rho for the AMH copula—A beautiful formula: copula package vignette, accessed on April 7, 2018, at https://CRAN.R-project.org/package=copula under the vignette rhoAMH-dilog.pdf.
Nelsen, R.B., 2006, An introduction to copulas: New York, Springer, 269 p.
Pranesh, Kumar, 2010, Probability distributions and estimation of Ali–Mikhail–Haq copula: Applied Mathematical Sciences, v. 4, no. 14, p. 657–666.
See Also
Examples
## Not run:
t <- 0.9 # The Theta of the copula and we will compute Spearman Rho.
di <- integrate(function(t) log(t)/(1-t), lower=1, upper=(1-t))$value
A <- di*(1+t) - 2*log(1-t) + 2*t*log(1-t) - 3*t # Nelsen (2007, p. 172)
rho <- 12*A/t^2 - 3 # 0.4070369
rhoCOP(AMHcop, para=t) # 0.4070369
sum(sapply(1:100, function(k) 3*t^k/choose(k+2, 2)^2)) # Machler (2014)
# 0.4070369 (see Note section, very many tens of terms are needed)
## End(Not run)
## Not run:
layout(matrix(1:2, byrow=TRUE)) # Note: Kendall Tau is same on reversal.
s <- 2; set.seed(s); nsim <- 10000
UVn <- simCOP(nsim, cop=AMHcop, para=c(-0.9, "FALSE" ), col=4)
mtext("Normal definition [default]") # '2nd' parameter could be skipped
set.seed(s) # seed used to keep Rho/Tau inside attainable limits
UVr <- simCOP(nsim, cop=AMHcop, para=c(-0.9, "TRUE"), col=2)
mtext("Reversed definition")
AMHcop(UVn[,1], UVn[,2], fit="rho")$rho # -0.2581653
AMHcop(UVr[,1], UVr[,2], fit="rho")$rho # -0.2570689
rhoCOP(cop=AMHcop, para=-0.9) # -0.2483124
AMHcop(UVn[,1], UVn[,2], fit="tau")$tau # -0.1731904
AMHcop(UVr[,1], UVr[,2], fit="tau")$tau # -0.1724820
tauCOP(cop=AMHcop, para=-0.9) # -0.1663313
## End(Not run)