Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

absdpsiMC

Absolute Value of Generator Derivatives via Monte Carlo


Description

Computes the absolute values of the dth generator derivative psi^{(d)} via Monte Carlo simulation.

Usage

absdPsiMC(t, family, theta, degree = 1, n.MC,
          method = c("log", "direct", "pois.direct", "pois"),
          log = FALSE, is.log.t = FALSE)

Arguments

t

numeric vector of evaluation points.

family

Archimedean family (name or object).

theta

parameter value.

degree

order d of the derivative.

n.MC

Monte Carlo sample size.

method

different methods:

"log":

evaluates the logarithm of the sum involved in the Monte Carlo approximation in a numerically stable way;

"direct":

directly evaluates the sum;

"pois.direct":

interprets the sum in terms of the density of a Poisson distribution and evaluates this density directly;

"pois":

as for method="pois" but evaluates the logarithm of the Poisson density in a numerically stable way.

log

if TRUE the logarithm of absdPsi is returned.

is.log.t

if TRUE the argument t contains the logarithm of the “mathematical” t, i.e., conceptually, psi(t, *) == psi(log(t), *, is.log.t=TRUE), where the latter may potentially be numerically accurate, e.g., for t = 10^{500}, where as the former would just return psi(Inf, *) = 0.

Details

The absolute value of the dth derivative of the Laplace-Stieltjes transform psi=LS[F] can be approximated via

(-1)^d psi^{(d)}(t) = int_0^Inf x^d exp(-tx) dF(x) ~= (1/N) sum(k=1..N)V_k^d exp(-V_k t), t > 0,

where V_k ~ F, k in {1,...,N}. This approximation is used where d=degree and N=n.MC. Note that this is comparably fast even if t contains many evaluation points, since the random variates V_k ~ F, k in {1,...,N} only have to be generated once, not depending on t.

Value

numeric vector of the same length as t containing the absolute values of the generator derivatives.

References

Hofert, M., Mächler, M., and McNeil, A. J. (2013). Archimedean Copulas in High Dimensions: Estimators and Numerical Challenges Motivated by Financial Applications. Journal de la Société Française de Statistique 154(1), 25–63.

See Also

Examples

t <- c(0:100,Inf)
set.seed(1)
(ps <- absdPsiMC(t, family="Gumbel", theta=2, degree=10, n.MC=10000, log=TRUE))
## Note: The absolute value of the derivative at 0 should be Inf for
## Gumbel, however, it is always finite for the Monte Carlo approximation
set.seed(1)
ps2 <- absdPsiMC(log(t), family="Gumbel", theta=2, degree=10,
                 n.MC=10000, log=TRUE, is.log.t = TRUE)
stopifnot(all.equal(ps[-1], ps2[-1], tolerance=1e-14))
## Now is there an advantage of using "is.log.t" ?
sapply(eval(formals(absdPsiMC)$method), function(MM)
       absdPsiMC(780, family="Gumbel", method = MM,
                 theta=2, degree=10, n.MC=10000, log=TRUE, is.log.t = TRUE))
## not really better, yet...

copula

Multivariate Dependence with Copulas

v1.0-1
GPL (>= 3) | file LICENCE
Authors
Marius Hofert [aut] (<https://orcid.org/0000-0001-8009-4665>), Ivan Kojadinovic [aut] (<https://orcid.org/0000-0002-2903-1543>), Martin Maechler [aut, cre] (<https://orcid.org/0000-0002-8685-9910>), Jun Yan [aut] (<https://orcid.org/0000-0003-4401-7296>), Johanna G. Nešlehová [ctb] (evTestK(), <https://orcid.org/0000-0001-9634-4796>), Rebecca Morger [ctb] (fitCopula.ml(): code for free mixCopula weight parameters)
Initial release
2020-12-07

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.