coeffG {copula}R Documentation

Coefficients of Polynomial used for Gumbel Copula

Description

Compute the coefficients a_{d,k}(\theta) involved in the generator (psi) derivatives and the copula density of Gumbel copulas.

For non-small dimensions d, these are numerically challenging to compute accurately.

Usage

coeffG(d, alpha,
       method = c("sort", "horner", "direct", "dsumSibuya",
                  paste("dsSib", eval(formals(dsumSibuya)$method), sep = ".")),
       log = FALSE, verbose = FALSE)

Arguments

d

number of coefficients, (the copula dimension), d >= 1.

alpha

parameter 1/\theta in (0,1]; you may use mpfr(alph, precBits = <n_prec>) for higher precision methods ("Rmpfr*") from package Rmpfr.

method

a character string, one of

"sort":

compute coefficients via exp(log()) pulling out the maximum, and sort.

"horner":

uses polynomial evaluation, our internal polynEval().

"direct":

brute force approach.

"dsSib.<FOO>":

uses dsumSibuya(..., method= "<FOO>").

log

logical determining if the logarithm (log) is to be returned.

verbose

logical indicating if some information should be shown, currently for method == "sort" only.

Value

a numeric vector of length d, of values

% latex a_k(\theta, d) = (-1)^{d-k}\sum_{j=k}^d \alpha^j * s(d,j) * S(j,k), k \in \{1,\ldots,d\}.

Note

There are still known numerical problems (with non-"Rmpfr" methods; and those are slow), e.g., for d=100, alpha=0.8 and sign(s(n,k)) = (-1)^{n-k}.

As a consequence, the methods and its defaults may change in the future, and so the exact implementation of coeffG() is still considered somewhat experimental.

Examples

a.k  <- coeffG(16, 0.55)
plot(a.k, xlab = quote(k), ylab = quote(a[k]),
     main = "coeffG(16, 0.55)", log = "y", type = "o", col = 2)
a.kH <- coeffG(16, 0.55, method = "horner")
stopifnot(all.equal(a.k, a.kH, tol = 1e-11))# 1.10e-13 (64-bit Lnx, nb-mm4)

[Package copula version 1.1-3 Index]