Helhac: Helhac

View source: R/Helhac.R

HelhacR Documentation

Helhac

Description

This function computes the Hellinger distance between all the child copulas of a hac object obtained by the function gethac, i.e., given a q-dimensional random vector \mathbf{X} = (\mathbf{X_{1}},...,\mathbf{X}_{k}) with \mathbf{X}_{i} a d_{i}-dimensional random vector, i.e., q = d_{1} + ... + d_{k}, where \mathbf{X}_{1},...,\mathbf{X}_{k} are connected via a hierarchical Archimedean copula with two nesting levels, Helhac computes the Hellinger distance between \mathbf{X}_{1},...,\mathbf{X}_{k}.

Usage

Helhac(cop, dim, M)

Arguments

cop

A hac object as provided by the function gethac.

dim

The vector of dimensions (d_{1},...,d_{k}).

M

The size of the Monte Carlo sample used for approximating the integral of the Hellinger distance.

Details

When \mathbf{X} has copula density c with marginal copula densities c_{i} of \mathbf{X}_{i} for i = 1, \dots, k, the \Phi-dependence between \mathbf{X}_{1}, \dots, \mathbf{X}_{k} equals

\mathcal{D}_{\Phi} \left (\mathbf{X}_{1}, \dots, \mathbf{X}_{k} \right ) = \int_{[0,1]^{q}} \prod_{i = 1}^{k} c_{i}(\mathbf{u}_{i}) \Phi \left (\frac{c(\mathbf{u})}{\prod_{i = 1}^{k}c_{i}(\mathbf{u}_{i})} \right ),

for a certain continuous, convex function \Phi : (0,\infty) \rightarrow \mathbb{R}. The Hellinger distance corresponds to \Phi(t) = (\sqrt{t}-1)^{2}, and \mathcal{D}_{(\sqrt{t}-1)^{2}} could be approximated by \widehat{\mathcal{D}}_{(\sqrt{t}-1)^{2}} as implemented in the function phihac. Yet, for this specific choice of \Phi, it is better to first simplify \mathcal{D}_{(\sqrt{t}-1)^{2}} to

\mathcal{D}_{(\sqrt{t}-1)^{2}} \left (\mathbf{X}_{1}, \dots, \mathbf{X}_{k} \right ) = 2 - 2 \int_{[0,1]^{q}} \sqrt{c(\mathbf{u}) \prod_{i = 1}^{k} c_{i}(\mathbf{u}_{i})} d \mathbf{u},

and then, by drawing a sample of size M from c, say \mathbf{U}^{(1)}, \dots, \mathbf{U}^{(M)}, with \mathbf{U}^{(\ell)} = (\mathbf{U}_{1}^{(\ell)}, \dots, \mathbf{U}_{k}^{(\ell)}), approximate it by

\widetilde{D}_{(\sqrt{t}-1)^{2}} = 2 - \frac{2}{M} \sum_{\ell = 1}^{M} \sqrt{\frac{\prod_{i = 1}^{k} c_{i} \left (\mathbf{U}_{i}^{(\ell)} \right )}{c \left ( \mathbf{U}^{(\ell)} \right )}}.

The function Helhac computes \widetilde{\mathcal{D}}_{(\sqrt{t}-1)^{2}} when c is a hierarchical Archimedean copula with two nesting levels, as produced by the function gethac.

Value

The Hellinger distance between \mathbf{X}_{1}, \dots, \mathbf{X}_{k} (i.e., between all the child copulas of the hac object).

References

De Keyser, S. & Gijbels, I. (2024). Parametric dependence between random vectors via copula-based divergence measures. Journal of Multivariate Analysis 203:105336.
doi: https://doi.org/10.1016/j.jmva.2024.105336.

See Also

gethac for creating a hac object with two nesting levels, phihac for computing the \Phi-dependence between all the child copulas of a hac object with two nesting levels, mlehac for maximum pseudo-likelihood estimation of the parameters of a hac object with two nesting levels.

Examples


dim = c(2,2)
thetas = c(2,3,4)

# 4 dimensional nested Gumbel copula with (theta_0,theta_1,theta_2) = (2,3,4)
HAC = gethac(dim,thetas,type = 1)

# Hellinger distance based on Monte Carlo sample of size 10000
Hel = Helhac(HAC,dim,10000)



VecDep documentation built on April 4, 2025, 5:14 a.m.