Learn R Programming

copula (version 0.999-19.1)

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<U+0161>lehov<U+00E1>, 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().

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.

Details

More details can be found in the second reference.

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

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<U+0161>lehov<U+00E1>, 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

Run this code
# NOT RUN {
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))

# }
# NOT RUN {
<!-- % because the bootstraps are slow,.. -->
## Does the Gumbel family seem to be a good choice?
gofEVCopula(gumbelCopula(), x, N=N)
# }
# NOT RUN {
## The same with different (and cheaper) estimation methods:
gofEVCopula(gumbelCopula(), x, N=N, method="itau")
gofEVCopula(gumbelCopula(), x, N=N, method="irho")

# }
# NOT RUN {
<!-- % non-gumbel bootstraps are slow -->
## 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")
# }
# NOT RUN {
<!-- % dont.. -->
# }

Run the code above in your browser using DataLab