Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

gofEVCopula

Goodness-of-fit Tests for Bivariate Extreme-Value Copulas


Description

Goodness-of-fit tests for extreme-value copulas based on the empirical process comparing one of the two nonparameteric rank-based estimator of the Pickands dependence function studied in Genest and Segers (2009) with a parametric estimate of the Pickands dependence function derived under the null hypothesis. The test statistic is the Cramer-von Mises functional Sn defined in Equation (5) of Genest, Kojadinovic, G. Nešlehová, and Yan (2010). Approximate p-values for the test statistic are obtained using a parametric bootstrap.

Usage

gofEVCopula(copula, x, N = 1000,
            method = c("mpl", "ml", "itau", "irho"),
            estimator = c("CFG", "Pickands"), m = 1000,
            verbose = interactive(),
            ties.method = c("max", "average", "first", "last", "random", "min"),
            fit.ties.meth = eval(formals(rank)$ties.method), ...)

Arguments

copula

object of class "evCopula" representing the hypothesized extreme-value copula family.

x

a data matrix that will be transformed to pseudo-observations.

N

number of bootstrap samples to be used to simulate realizations of the test statistic under the null hypothesis.

method

estimation method to be used to estimate the dependence parameter(s); can be either "mpl" (maximum pseudo-likelihood), "itau" (inversion of Kendall's tau) or "irho" (inversion of Spearman's rho).

estimator

specifies which nonparametric rank-based estimator of the unknown Pickands dependence function to use; can be either "CFG" (Caperaa-Fougeres-Genest) or "Pickands".

m

number of points of the uniform grid on [0,1] used to compute the test statistic numerically.

verbose

a logical specifying if progress of the bootstrap should be displayed via txtProgressBar.

ties.method

string specifying how ranks should be computed, except for fitting, if there are ties in any of the coordinate samples of x; passed to pobs.

fit.ties.meth

string specifying how ranks should be computed when fitting by maximum pseudo-likelihood if there are ties in any of the coordinate samples of x; passed to pobs.

...

further optional arguments, passed to fitCopula(), notably optim.method, the method for optim(). In copula versions 0.999-14 and earlier, the default for that was "Nelder-Mead", but now is the same as for fitCopula().

Details

More details can be found in the second reference.

The former argument print.every is deprecated and not supported anymore; use verbose instead.

Value

An object of class htest which is a list, some of the components of which are

statistic

value of the test statistic.

p.value

corresponding approximate p-value.

parameter

estimates of the parameters for the hypothesized copula family.

Note

For a given degree of dependence, the most popular bivariate extreme-value copulas are strikingly similar.

References

Genest, C. and Segers, J. (2009). Rank-based inference for bivariate extreme-value copulas. Annals of Statistics 37, 2990–3022.

Genest, C. Kojadinovic, I., G. Nešlehová, J., and Yan, J. (2011). A goodness-of-fit test for bivariate extreme-value copulas. Bernoulli 17(1), 253–275.

See Also

Examples

n <- 100; N <- 1000 # realistic (but too large currently for CRAN checks)
n <-  60; N <-  200 # (time (and tree !) saving ...)
x <- rCopula(n, claytonCopula(3))


## Does the Gumbel family seem to be a good choice?
gofEVCopula(gumbelCopula(), x, N=N)


## The same with different (and cheaper) estimation methods:
gofEVCopula(gumbelCopula(), x, N=N, method="itau")
gofEVCopula(gumbelCopula(), x, N=N, method="irho")


## The same with different extreme-value copulas
gofEVCopula(galambosCopula(), x, N=N)
gofEVCopula(galambosCopula(), x, N=N, method="itau")
gofEVCopula(galambosCopula(), x, N=N, method="irho")

gofEVCopula(huslerReissCopula(), x, N=N)
gofEVCopula(huslerReissCopula(), x, N=N, method="itau")
gofEVCopula(huslerReissCopula(), x, N=N, method="irho")

gofEVCopula(tevCopula(df.fixed=TRUE), x, N=N)
gofEVCopula(tevCopula(df.fixed=TRUE), x, N=N, method="itau")
gofEVCopula(tevCopula(df.fixed=TRUE), x, N=N, method="irho")

copula

Multivariate Dependence with Copulas

v1.0-1
GPL (>= 3) | file LICENCE
Authors
Marius Hofert [aut] (<https://orcid.org/0000-0001-8009-4665>), Ivan Kojadinovic [aut] (<https://orcid.org/0000-0002-2903-1543>), Martin Maechler [aut, cre] (<https://orcid.org/0000-0002-8685-9910>), Jun Yan [aut] (<https://orcid.org/0000-0003-4401-7296>), Johanna G. Nešlehová [ctb] (evTestK(), <https://orcid.org/0000-0001-9634-4796>), Rebecca Morger [ctb] (fitCopula.ml(): code for free mixCopula weight parameters)
Initial release
2020-12-07

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.