Learn R Programming

VineCopula (version 2.6.0)

BiCopVuongClarke: Scoring Goodness-of-Fit Test based on Vuong And Clarke Tests for Bivariate Copula Data

Description

Based on the Vuong and Clarke tests this function computes a goodness-of-fit score for each bivariate copula family under consideration. For each possible pair of copula families the Vuong and the Clarke tests decides which of the two families fits the given data best and assigns a score---pro or contra a copula family---according to this decision.

Usage

BiCopVuongClarke(
  u1,
  u2,
  familyset = NA,
  correction = FALSE,
  level = 0.05,
  rotations = TRUE
)

Value

A matrix with Vuong test scores in the first and Clarke test scores in the second row. Column names correspond to bivariate copula families (see above).

Arguments

u1, u2

Data vectors of equal length with values in \([0,1]\).

familyset

An integer vector of bivariate copula families under consideration, i.e., which are compared in the goodness-of-fit test. If familyset = NA (default), all possible families are compared. Possible families are:
0 = independence copula
1 = Gaussian copula
2 = Student t copula (t-copula)
3 = Clayton copula
4 = Gumbel copula
5 = Frank copula
6 = Joe copula
7 = BB1 copula
8 = BB6 copula
9 = BB7 copula
10 = BB8 copula
13 = rotated Clayton copula (180 degrees; survival Clayton'') \cr `14` = rotated Gumbel copula (180 degrees; survival Gumbel'')
16 = rotated Joe copula (180 degrees; survival Joe'') \cr `17` = rotated BB1 copula (180 degrees; survival BB1'')
18 = rotated BB6 copula (180 degrees; survival BB6'')\cr `19` = rotated BB7 copula (180 degrees; survival BB7'')
20 = rotated BB8 copula (180 degrees; ``survival BB8'')
23 = rotated Clayton copula (90 degrees)
`24` = rotated Gumbel copula (90 degrees)
`26` = rotated Joe copula (90 degrees)
`27` = rotated BB1 copula (90 degrees)
`28` = rotated BB6 copula (90 degrees)
`29` = rotated BB7 copula (90 degrees)
`30` = rotated BB8 copula (90 degrees)
`33` = rotated Clayton copula (270 degrees)
`34` = rotated Gumbel copula (270 degrees)
`36` = rotated Joe copula (270 degrees)
`37` = rotated BB1 copula (270 degrees)
`38` = rotated BB6 copula (270 degrees)
`39` = rotated BB7 copula (270 degrees)
`40` = rotated BB8 copula (270 degrees)
`104` = Tawn type 1 copula
`114` = rotated Tawn type 1 copula (180 degrees)
`124` = rotated Tawn type 1 copula (90 degrees)
`134` = rotated Tawn type 1 copula (270 degrees)
`204` = Tawn type 2 copula
`214` = rotated Tawn type 2 copula (180 degrees)
`224` = rotated Tawn type 2 copula (90 degrees)
`234` = rotated Tawn type 2 copula (270 degrees)

correction

Correction for the number of parameters. Possible choices: correction = FALSE (no correction; default), "Akaike" and "Schwarz".

level

Numerical; significance level of the tests (default: level = 0.05).

rotations

If TRUE, all rotations of the families in familyset are included (or subtracted).

Author

Ulf Schepsmeier, Eike Brechmann, Natalia Belgorodski

Details

The Vuong as well as the Clarke test compare two models against each other and based on their null hypothesis, allow for a statistically significant decision among the two models (see the documentations of RVineVuongTest() and RVineClarkeTest() for descriptions of the two tests). In the goodness-of-fit test proposed by Belgorodski (2010) this is used for bivariate copula selection. It compares a model 0 to all other possible models under consideration. If model 0 is favored over another model, a score of "+1" is assigned and similarly a score of "-1" if the other model is determined to be superior. No score is assigned, if the respective test cannot discriminate between two models. Both tests can be corrected for the numbers of parameters used in the copulas. Either no correction (correction = FALSE), the Akaike correction (correction = "Akaike") or the parsimonious Schwarz correction (correction = "Schwarz") can be used.

The models compared here are bivariate parametric copulas and we would like to determine which family fits the data better than the other families. E.g., if we would like to test the hypothesis that the bivariate Gaussian copula fits the data best, then we compare the Gaussian copula against all other copulas under consideration. In doing so, we investigate the null hypothesis "The Gaussian copula fits the data better than all other copulas under consideration", which corresponds to \(k-1\) times the hypothesis "The Gaussian copula \(C_j\) fits the data better than copula \(C_i\)" for all \(i=1,...,k, i\neq j\), where \(k\) is the number of bivariate copula families under consideration (length of familyset). This procedure is done not only for one family but for all families under consideration, i.e., two scores, one based on the Vuong and one based on the Clarke test, are returned for each bivariate copula family. If used as a goodness-of-fit procedure, the family with the highest score should be selected.

For more and detailed information about the goodness-of-fit test see Belgorodski (2010).

References

Belgorodski, N. (2010) Selecting pair-copula families for regular vines with application to the multivariate analysis of European stock market indices Diploma thesis, Technische Universitaet Muenchen. https://mediatum.ub.tum.de/?id=1079284.

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

Vuong, Q. H. (1989). Ratio tests for model selection and non-nested hypotheses. Econometrica 57 (2), 307-333.

See Also

BiCopGofTest(), RVineVuongTest(), RVineClarkeTest(), BiCopSelect()

Examples

Run this code
set.seed(123)
# simulate from a t-copula
dat <- BiCopSim(500, 2, 0.7, 5)
dat <- dat[1:100, ]

# apply the test for families 1-6
BiCopVuongClarke(dat[,1], dat[,2], familyset = 1:6)

Run the code above in your browser using DataLab