Learn R Programming

copBasic (version 2.2.6)

vuongCOP: The Vuong Procedure for Parametric Copula Comparison

Description

Perform the Vuong Procedure following Joe (2014, pp. 257--258). Consider two copula densities \(f_1 = c_1(u,v; \Theta_1)\) and \(f_2 = c_2(u,v; \Theta_2)\) for two different bivariate copulas \(\mathbf{C}_1(\Theta_1)\) and \(\mathbf{C}_2(\Theta_2)\) having respective parameters \(\Theta_1\) and \(\Theta_2\) that provide the “closest” Kullback--Leibler Divergence from the true copula density \(g(u,v)\).

The difference of the Kullback--Leibler Divergence (kullCOP) of the two copulas from the true copula density can be measured for a sample of size \(n\) and bivariate sample realizations \(\{u_i, v_i\}\) by $$\hat{D}_{12} = n^{-1}\sum_{i=1}^n D_i\mbox{,}$$ where \(\hat{D}_{12}\) is referred to in the copBasic package as the “Vuong \(D\)” and \(D_i\) is defined as $$D_i = \log\biggl[\frac{f_1(u_i, v_i; \Theta_2)}{f_2(u_i, v_i; \Theta_1)}\biggr]\mbox{.}$$ The variance of \(\hat{D}_{12}\) can be estimated by $$\hat\sigma^2_{12} = (n-1)^{-1}\sum_{i=1}^n (D_i - \hat{D}_{12})^2\mbox{.}$$ The sample estimate and variance are readily turned into the \(100{{\times}}(1 - \alpha)\) confidence interval by $$\hat{D}^{(\mathrm{lo})}_{12} < \hat{D}_{12} < \hat{D}^{(\mathrm{hi})}_{12}\mbox{,}$$ where, using the quantile (inverse) function of the t-distribution \(\sim\) \(\mathcal{T}^{(-1)}(F; \mathrm{df}{=}(n-2))\) for nonexceedance probability \(F\) and \(n-2\) degrees of freedom for \(n\) being the sample size, the confidence interval is $$\hat{D}_{12}-\mathcal{T}^{(-1)}(1-\alpha/2){\times}\hat\sigma_{12}/\sqrt{n} < \hat{D}_{12} < \hat{D}_{12}+\mathcal{T}^{(-1)}(1-\alpha/2){\times}\hat\sigma_{12}/\sqrt{n}\mbox{.}$$ Joe (2014, p. 258) reports other interval forms based (1) on the Akaike (AIC) correction and (2) on the Schwarz (BIC) correction, which are defined for AIC as $$\mathrm{AIC} = \hat{D}_{12} - (2n)^{-1}\log(n)\biggl[\mathrm{dim}(\Theta_2) - \mathrm{dim}(\Theta_1)\biggr]\pm \mathcal{T}^{(-1)}(1-\alpha/2){\times}\hat\sigma_{12}/\sqrt{n}\mbox{,}$$ and for BIC as $$\mathrm{BIC} = \hat{D}_{12} - (2n)^{-1}\log(n)\biggl[\mathrm{dim}(\Theta_2) - \mathrm{dim}(\Theta_1)\biggr]\pm \mathcal{T}^{(-1)}(1-\alpha/2){\times}\hat\sigma_{12}/\sqrt{n}\mbox{.}$$ The AIC and BIC corrections incorporate the number of parameters in the copula and for all else being equal the copula with the fewer parameters is preferable. If the two copulas being compared have equal number of parameters than the AIC and BIC equate to \(\hat{D}_{12}\) and the same confidence interval because the difference \([\mathrm{dim}(\Theta_2) - \mathrm{dim}(\Theta_1)]\) is zero.

Joe (2014, p. 258) reports that these three intervals can be used for diagnostic inference as follows. If an interval contains 0 (zero), then copulas \(\mathbf{C}_1(\Theta_1)\) and \(\mathbf{C}_2(\Theta_2)\) are not considered significantly different. If the interval does not contain 0, then copula \(\mathbf{C}_1(\Theta_1)\) or \(\mathbf{C}_2(\Theta_2)\) is the better fit depending on whether the interval is completely below 0 (thus \(\mathbf{C}_1(\Theta_1)\) better fit) or above 0 (thus \(\mathbf{C}_2(\Theta_2)\) better fit), respectively. Joe (2014) goes on the emphasize that “the procedure compares different [copulas] and assesses whether they provide similar fits to the data. [The procedure] does not assess whether [either copula] is a good enough fit.”

Usage

vuongCOP(u, v=NULL, cop1=NULL, cop2=NULL, para1=NULL, para2=NULL,
                    alpha=0.05, method=c("D12", "AIC", "BIC"),
                    the.zero=.Machine$double.eps^0.25, ...)

Value

An R

list is returned having the following components:

title

A descriptive title of the procedure;

method

A textual description of the method setting;

result.text

A textual description of the result of the Vuong Procedure;

result

A value 1 if \(\mathbf{C}_1(\Theta_1)\) is better fit, 2 if copula \(\mathbf{C}_2(\Theta_2)\) is better fit, and 0 if neither is better (\(\hat{D}_{12} = 0\)), and NA including the likely(?) erroneous situation of \(\mathbf{C}_1(\Theta_1) \equiv \mathbf{C}_2(\Theta_2)\);

p.value

The two-sided p-values of the Vuong Procedure inclusive of \(\mathrm{AIC}\) and \(\mathrm{BIC}\);

D12

A named vector of the lower and upper bounds of Vuong \(D\) at the respective confidence interval percentage along with \(\hat{D}_{12}\) and \(\sigma^2_{12}\);

AIC

A named vector of the lower and upper bounds of Vuong \(\mathrm{AIC}\) at the respective confidence interval percentage;

BIC

A named vector of the lower and upper bounds of Vuong \(\mathrm{BIC}\) at the respective confidence interval percentage; and

parameters

A named vector of the alpha, sample size, value for the t-distribution quantile qt(1-alpha/2, df=n), and \(\hat\sigma_{12}\).

Arguments

u

Nonexceedance probability \(u\) in the \(X\) direction;

v

Nonexceedance probability \(v\) in the \(Y\) direction and if NULL then u is treated as a two column R data.frame;

cop1

A copula function corresponding to copula \(f_1\) in the Vuong Procedure;

para1

Vector of parameters or other data structure, if needed, to pass to the copula \(f_1\);

cop2

A copula function corresponding to copula \(f_2\) in the the Vuong Procedure;

para2

Vector of parameters or other data structure, if needed, to pass to the copula \(f_2\);

alpha

The \(\alpha\) in the Vuong Procedure, which results in the \(100{\times}(1 - \alpha)\) confidence interval (two sided);

method

The interval to evaluate as to position of the respective statistic form the comparison of the two copulas;

the.zero

The value for “the zero” of the copula density function. This argument is the argument of the same name for densityCOP. The default here is intended to suggest that a tiny nonzero value for density will trap the numerical zero densities; and

...

Additional arguments to pass to the densityCOP function.

Author

W.H. Asquith

References

Joe, H., 2014, Dependence modeling with copulas: Boca Raton, CRC Press, 462 p.

Nelsen, R.B., 2006, An introduction to copulas: New York, Springer, 269 p.

Salvadori, G., De Michele, C., Kottegoda, N.T., and Rosso, R., 2007, Extremes in Nature---An approach using copulas: Springer, 289 p.

See Also

densityCOP, kullCOP, simCOP, statTn, mleCOP

Examples

Run this code
# See extended code listings and discussion in the Note section
# See Examples in mleCOP() (Last example therein might suggest a problem in the
# implied 95th percentile associated with n_fg above.

Run the code above in your browser using DataLab