Learn R Programming

copBasic (version 2.0.1)

vuongCOP: Vuong's Procedure for Parametric Copula Comparison

Description

Perform Vuong's 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 Vuong's $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"), ...)

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 Rdata.frame;
cop1
A copula function corresponding to copula $f_1$ in Vuong's 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 Vuong's Procedure;
para2
Vector of parameters or other data structure, if needed, to pass to the copula $f_2$;
alpha
The $\alpha$ in Vuong's 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;
...
Additional arguments to pass to the densityCOP function.

Value

  • An Rlist is returned having the following components:
  • titleA descriptive title of the procedure;
  • methodA textual description of the method setting;
  • result.textA textual description of the result of Vuong's Procedure;
  • resultA 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.valueThe two-sided p-values of the Vuong's Procedure inclusive of $\mathrm{AIC}$ and $\mathrm{BIC}$;
  • D12A named vector of the lower and upper bounds of Vuong's $D$ at the respective confidence interval percentage along with $\hat{D}_{12}$ and $\sigma^2_{12}$;
  • AICA named vector of the lower and upper bounds of Vuong's $\mathrm{AIC}$ at the respective confidence interval percentage;
  • BICA named vector of the lower and upper bounds of Vuong's $\mathrm{BIC}$ at the respective confidence interval percentage; and
  • parametersA named vector of the alpha, sample size, value for the t-distribution quantile qt(1-alpha/2, df=n), and $\hat\sigma_{12}$.

encoding

utf8

concept

  • Vuong procedure
  • Akaike
  • AIC
  • BIC
  • Vuong
  • Kullback-Leibler
  • L-comoment copula inference
  • Lcomoment copula inference

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

Examples

Run this code
# See extended code listings and discussion in the Note section

Run the code above in your browser using DataLab