Learn R Programming

CDVine (version 1.2)

CDVineClarkeTest: Clarke test comparing two vine copula models

Description

This function performs a Clarke test between two d-dimensional C- or D-vine copula models, respectively.

Usage

CDVineClarkeTest(data, Model1.order=1:dim(data)[2],
                 Model2.order=1:dim(data)[2], Model1.family,
                 Model2.family, Model1.par, Model2.par,
                 Model1.par2=rep(0,dim(data)[2]*(dim(data)[2]-1)/2),
                 Model2.par2=rep(0,dim(data)[2]*(dim(data)[2]-1)/2),
                 Model1.type, Model2.type)

Arguments

data
An N x d data matrix (with uniform margins).
Model1.order, Model2.order
Two numeric vectors giving the order of the variables in the first D-vine trees or of the C-vine root nodes in models 1 and 2 (default: Model1.order and Model2.order = 1:dim(data)[2], i.e., standard order).
Model1.family, Model2.family
Two d*(d-1)/2 numeric vectors of the pair-copula families of models 1 and 2, respectively, with values 0 = independence copula 1 = Gaussian copula 2 = Student t copula (t-copula) 3 = Clayton copula <
Model1.par, Model2.par
Two d*(d-1)/2 numeric vectors of the (first) copula parameters of models 1 and 2, respectively.
Model1.par2, Model2.par2
Two d*(d-1)/2 numeric vectors of the second copula parameters of models 1 and 2, respectively; necessary for t, BB1, BB6, BB7 and BB8 copulas. If no such families are included in Model1.family/Model2.family, these argum
Model1.type, Model2.type
Type of the respective vine model: 1 or "CVine" = C-vine 2 or "DVine" = D-vine

Value

  • statistic, statistic.Akaike, statistic.SchwarzTest statistics without correction, with Akaike correction and with Schwarz correction.
  • p.value, p.value.Akaike, p.value.SchwarzP-values of tests without correction, with Akaike correction and with Schwarz correction.

Details

The test proposed by Clarke (2007) allows to compare non-nested models. For this let $c_1$ and $c_2$ be two competing vine copulas in terms of their densities and with estimated parameter sets $\hat{\boldsymbol{\theta}}_1$ and $\hat{\boldsymbol{\theta}}_2$. The null hypothesis of statistical indistinguishability of the two models is $$H_0: P(m_i > 0) = 0.5\ \forall i=1,..,N,$$ where $m_i:=\log\left[\frac{c_1(\boldsymbol{u}_i|\hat{\boldsymbol{\theta}}_1)}{c_2(\boldsymbol{u}_i|\hat{\boldsymbol{\theta}}_2)}\right]$ for observations $\boldsymbol{u}_i,\ i=1,...,N$. Since under statistical equivalence of the two models the log likelihood ratios of the single observations are uniformly distributed around zero and in expectation $50%$ of the log likelihood ratios greater than zero, the tets statistic $$\texttt{statistic} := B = \sum_{i=1}^N \mathbf{1}_{(0,\infty)}(m_i),$$ where $\mathbf{1}$ is the indicator function, is distributed Binomial with parameters $N$ and $p=0.5$, and critical values can easily be obtained. Model 1 is interpreted as statistically equivalent to model 2 if $B$ is not significantly different from the expected value $Np = \frac{N}{2}$. Like AIC and BIC, the Clarke test statistic may be corrected for the number of parameters used in the models. There are two possible corrections; the Akaike and the Schwarz corrections, which correspond to the penalty terms in the AIC and the BIC, respectively.

References

Clarke, K. A. (2007). A Simple Distribution-Free Test for Nonnested Model Selection. Political Analysis, 15, 347-363.

See Also

CDVineVuongTest, CDVineAIC, CDVineBIC

Examples

Run this code
# load data set
data(worldindices)
d = dim(worldindices)[2]

# select the C-vine families and parameters
cvine = CDVineCopSelect(worldindices,c(1:6),type="CVine")

# select the D-vine families and parameters
dvine = CDVineCopSelect(worldindices,c(1:6),type="DVine")

# compare the two models based on the data
clarke = CDVineClarkeTest(worldindices,1:d,1:d,cvine$family,dvine$family,
                          cvine$par,dvine$par,cvine$par2,dvine$par2,
                          Model1.type=1,Model2.type=2)
clarke$statistic
clarke$statistic.Schwarz
clarke$p.value
clarke$p.value.Schwarz

Run the code above in your browser using DataLab