Learn R Programming

copula (version 0.999-19)

htrafo: GOF Testing Transformation of Hering and Hofert

Description

The transformation described in Hering and Hofert (2014), for Archimedean copulas.

Usage

htrafo(u, copula, include.K = TRUE, n.MC = 0, inverse = FALSE,
       method = eval(formals(qK)$method), u.grid, ...)

Arguments

u

\(n\times d\)-matrix with values in \([0,1]\). If inverse=FALSE (the default), u contains (pseudo-/copula-)observations from the copula copula based on which the transformation is carried out; consider applying the function pobs() first in order to obtain u. If inverse=TRUE, u contains \(U[0,1]^d\) distributed values which are transformed to copula-based (copula) ones.

copula

an Archimedean copula specified as "'>outer_nacopula" or "'>archmCopula".

include.K

logical indicating whether the last component, involving the Kendall distribution function K, is used in htrafo().

n.MC

parameter n.MC for K.

inverse

logical indicating whether the inverse of the transformation is returned.

method

method to compute qK().

u.grid

argument of qK() (for method="discrete").

additional arguments passed to qK() if inverse = TRUE.

Value

htrafo() returns an \(n\times d\)- or \(n\times (d-1)\)-matrix (depending on whether include.K is TRUE or FALSE) containing the transformed input u.

Details

Given a \(d\)-dimensional random vector \(\bm{U}\) following an Archimedean copula \(C\) with generator \(\psi\), Hering and Hofert (2014) showed that \(\bm{U}^\prime\sim\mathrm{U}[0,1]^d\), where $$U_{j}^\prime=\left(\frac{\sum_{k=1}^{j}\psi^{-1}(U_{k})}{ \sum_{k=1}^{j+1}\psi^{-1}(U_{k})}\right)^{j},\ j\in\{1,\dots,d-1\},\ U_{d}^\prime=K(C(\bm{U})).$$ htrafo applies this transformation row-wise to u and thus returns either an \(n\times d\)- or an \(n\times (d-1)\)-matrix, depending on whether the last component \(U^\prime_d\) which involves the (possibly numerically challenging) Kendall distribution function \(K\) is used (include.K=TRUE) or not (include.K=FALSE).

References

Hering, C. and Hofert, M. (2014). Goodness-of-fit tests for Archimedean copulas in high dimensions. Innovations in Quantitative Risk Management.

Examples

Run this code
# NOT RUN {
## Sample and build pseudo-observations (what we normally have available)
## of a Clayton copula
tau <- 0.5
theta <- iTau(claytonCopula(), tau = tau)
d <- 5
cc <- claytonCopula(theta, dim = d)
set.seed(271)
n <- 1000
U <- rCopula(n, copula = cc)
X <- qnorm(U) # X now follows a meta-Gumbel model with N(0,1) marginals
U <- pobs(X) # build pseudo-observations

## Graphically check if the data comes from a meta-Clayton model
## with the transformation of Hering and Hofert (2014):
U.H <- htrafo(U, copula = cc) # transform the data
splom2(U.H, cex = 0.2) # looks good

## The same for an 'outer_nacopula' object
cc. <- onacopulaL("Clayton", list(theta, 1:d))
U.H. <- htrafo(U, copula = cc.)
splom2(U.H., cex = 0.2) # looks good

## What about a meta-Gumbel model?
## The parameter is chosen such that Kendall's tau equals (the same) tau
gc <- gumbelCopula(iTau(gumbelCopula(), tau = tau), dim = d)

## Plot of the transformed data (Hering and Hofert (2014)) to see the
## deviations from uniformity
U.H.. <- htrafo(U, copula = gc)
splom2(U.H.., cex = 0.2) # deviations visible
# }

Run the code above in your browser using DataLab