theta
. In both cases, analytical
expressions are available, but need alternatives in some cases.
tauAMH()
:theta
$=t$;
numerically, care has to be taken when $t -> 0$,
avoiding accuracy loss already, for example, for $t$ as
large as theta = 0.001
.
tauJoe()
:psigamma
) function terms.
tauAMH(theta)
tauJoe(theta, method = c("hybrid", "digamma", "sum"), noTerms=446)
tauJoe()
. Use the
default, unless for research about the method. Up to copula
version 0.999-0, the only (implicit) method was "sum"
."sum"
method; its default, 446
gives an absolute error smaller
than $10^{-5}$.theta
($= \theta$), with
$\tau$ valuesfor tauAMH
: in $[(5 - 8 log 2)/3, 1/3] ~= [-0.1817, 0.3333]$,
of $
tau.A(t) = 1 - 2*((1-t)*(1-t)*log(1-t) + t) / (3*t^2)$,
numerically accurately, to at least around 12 decimal digits.for tauJoe
: in [-1,1].
tauAMH()
:theta
($=\theta$), we use Taylor series
approximations of up to order 7,
tauJoe()
:"sum"
method simply replaces the infinite sum by a finite
sum (with noTerms
terms. The more accurate or faster methods,
use analytical summation formulas, using the digamma
aka $\psi$ function, see, e.g.,
http://en.wikipedia.org/wiki/Digamma_function#Series_formula.
The smallest sensible $\theta$ value, i.e., th
for which
tauJoe(th) == -1
is easily determined via
str(uniroot(function(th) tauJoe(th)-(-1), c(0.1, 0.3), tol = 1e-17), digits=12)
to be 0.2387339899
.
acopula-families
, and their class definition,
"acopula"
.
tauAMH(c(0, 2^-40, 2^-20))
curve(tauAMH, 0, 1)
curve(tauAMH, -1, 1)# negative taus as well
curve(tauAMH, 1e-12, 1, log="xy") # linear, tau ~= 2/9*theta in the limit
curve(tauJoe, 1, 10)
curve(tauJoe, 0.2387, 10)# negative taus (*not* valid for Joe: no 2-monotone psi()!)
Run the code above in your browser using DataLab