GOF Testing Transformation of Hering and Hofert
The transformation described in Hering and Hofert (2014), for Archimedean copulas.
htrafo(u, copula, include.K = TRUE, n.MC = 0, inverse = FALSE, method = eval(formals(qK)$method), u.grid, ...)
u |
n x d-matrix with values in [0,1]. If
|
copula |
an Archimedean copula specified as
|
include.K |
logical indicating whether the last component, involving the
Kendall distribution function |
n.MC |
parameter |
inverse |
logical indicating whether the inverse of the transformation is returned. |
method |
method to compute |
u.grid |
argument of |
... |
additional arguments passed to |
Given a d-dimensional random vector U following an Archimedean copula C with generator ψ, Hering and Hofert (2014) showed that U'~U[0,1]^d, where
U'_j = ((psi^{-1}(U_1) + ... + psi^{-1}(U_j)) / (psi^{-1}(U_1) + ... + psi^{-1}(U_{j+1})))^j, j in {1,..., d-1}, U'_d = K(C(U)).
htrafo
applies this transformation row-wise to
u
and thus returns either an n x d- or an
n x (d-1)-matrix, depending on whether the last
component U'_d which involves the (possibly
numerically challenging) Kendall distribution function K is used
(include.K=TRUE
) or not (include.K=FALSE
).
htrafo()
returns an
n x d- or n x (d-1)-matrix
(depending on whether include.K
is TRUE
or
FALSE
) containing the transformed input u
.
Hering, C. and Hofert, M. (2014). Goodness-of-fit tests for Archimedean copulas in high dimensions. Innovations in Quantitative Risk Management.
## 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
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.