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

gofEVCopula {copula} | R Documentation

## 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

`evCopula`, `evTestC`, `evTestA`, `evTestK`, `gofCopula`, `An`.

### 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")

[Package copula version 1.0-1 Index]