This function performs a Vuong test between two d-dimensional R-vine copula
models as specified by their RVineMatrix()
objects.
RVineVuongTest(data, RVM1, RVM2)
An N x d data matrix (with uniform margins).
RVineMatrix()
objects of models 1 and 2.
Test statistics without correction, with Akaike correction and with Schwarz correction.
P-values of tests without correction, with Akaike correction and with Schwarz correction.
The likelihood-ratio based test proposed by Vuong (1989) can be used for comparing 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\). We then compute the standardized sum, \(\nu\), of the log differences of their pointwise likelihoods \(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\in[0,1],\ i=1,...,N\) , i.e., $$\texttt{statistic} := \nu = \frac{\frac{1}{n}\sum_{i=1}^N m_i}{\sqrt{\sum_{i=1}^N\left(m_i - \bar{m} \right)^2}}. $$ Vuong (1989) shows that \(\nu\) is asymptotically standard normal. According to the null-hypothesis $$H_0: E[m_i] = 0\ \forall i=1,...,N, $$ we hence prefer vine model 1 to vine model 2 at level \(\alpha\) if $$\nu>\Phi^{-1}\left(1-\frac{\alpha}{2}\right), $$ where \(\Phi^{-1}\) denotes the inverse of the standard normal distribution function. If \(\nu<-\Phi^{-1}\left(1-\frac{\alpha}{2}\right)\) we choose model 2. If, however, \(|\nu|\leq\Phi^{-1}\left(1-\frac{\alpha}{2}\right)\), no decision among the models is possible.
Like AIC and BIC, the Vuong 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.
Vuong, Q. H. (1989). Ratio tests for model selection and non-nested hypotheses. Econometrica 57 (2), 307-333.
# \donttest{
# vine structure selection time-consuming (~ 20 sec)
# load data set
data(daxreturns)
# select the R-vine structure, families and parameters
RVM <- RVineStructureSelect(daxreturns[,1:5], c(1:6))
# select the C-vine structure, families and parameters
CVM <- RVineStructureSelect(daxreturns[,1:5], c(1:6), type = "CVine")
# compare the two models based on the data
vuong <- RVineVuongTest(daxreturns[,1:5], RVM, CVM)
vuong$statistic
#> [1] -0.2746156
vuong$statistic.Schwarz
#> [1] 0.07798239
vuong$p.value
#> [1] 0.7836115
vuong$p.value.Schwarz
#> [1] 0.9378421
# }