Learn R Programming

CDVine (version 1.1-5)

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
# compare 6-dimensional C-vine copula models
# with Gaussian and with Student t pair-copulas
d = 6
dd = d*(d-1)/2
fam1 = rep(1,dd)
par1 = c(0.2,0.69,0.73,0.22,-0.09,0.51,0.32,0.01,0.82,0.01,
         -0.2,-0.32,-0.19,-0.17,-0.06)

fam2 = rep(2,dd)
par2 = par1
nu2 = rep(4,dd)

# simulate a sample of size 300 from the first C-vine copula model
simdata = CDVineSim(300,fam1,par1,type=1)

# compare the two models based on this sample
clarke = CDVineClarkeTest(simdata,1:d,1:d,fam1,fam2,par1,par2,
                          Model2.par2=nu2,Model1.type=1,Model2.type=1)
clarke$statistic
clarke$statistic.Schwarz
clarke$p.value
clarke$p.value.Schwarz

Run the code above in your browser using DataLab