gofRosenblattChisq {gofCopula} | R Documentation |
Gof test using the Anderson-Darling test statistic and the chi-square distribution
Description
gofRosenblattChisq
contains the RosenblattChisq gof test for
copulae, described in Genest (2009) and Hofert (2014), and compares the
empirical copula against a parametric estimate of the copula derived under
the null hypothesis. The margins can be estimated by a bunch of
distributions and the time which is necessary for the estimation can be
given. The approximate p-values are computed with a parametric bootstrap,
which computation can be accelerated by enabling in-build parallel
computation. The gof statistics are computed with the function
gofTstat
from the package copula. It is possible to insert
datasets of all dimensions above 1 and the possible copulae are
"normal"
, "t"
, "clayton"
, "gumbel"
,
"frank"
, "joe"
, "amh"
, "galambos"
,
"fgm"
and "plackett"
. The parameter estimation is performed
with pseudo maximum likelihood method. In case the estimation fails,
inversion of Kendall's tau is used.
Usage
gofRosenblattChisq(
copula = c("normal", "t", "clayton", "gumbel", "frank", "joe", "amh", "galambos",
"fgm", "plackett"),
x,
param = 0.5,
param.est = TRUE,
df = 4,
df.est = TRUE,
margins = "ranks",
flip = 0,
M = 1000,
dispstr = "ex",
lower = NULL,
upper = NULL,
seed.active = NULL,
processes = 1
)
Arguments
copula |
The copula to test for. Possible are |
x |
A matrix containing the data with rows being observations and columns being variables. |
param |
The copula parameter to use, if it shall not be estimated. |
param.est |
Shall be either |
df |
Degrees of freedom, if not meant to be estimated. Only necessary
if tested for |
df.est |
Indicates if |
margins |
Specifies which estimation method for the margins shall be
used. The default is |
flip |
The control parameter to flip the copula by 90, 180, 270 degrees clockwise. Only applicable for bivariate copula. Default is 0 and possible inputs are 0, 90, 180, 270 and NULL. |
M |
Number of bootstrapping loops. |
dispstr |
A character string specifying the type of the symmetric
positive definite matrix characterizing the elliptical copula. Implemented
structures are "ex" for exchangeable and "un" for unstructured, see package
|
lower |
Lower bound for the maximum likelihood estimation of the copula
parameter. The constraint is also active in the bootstrapping procedure. The
constraint is not active when a switch to inversion of Kendall's tau is
necessary. Default |
upper |
Upper bound for the maximum likelihood estimation of the copula
parameter. The constraint is also active in the bootstrapping procedure. The
constraint is not active when a switch to inversion of Kendall's tau is
necessary. Default |
seed.active |
Has to be either an integer or a vector of M+1 integers.
If an integer, then the seeds for the bootstrapping procedure will be
simulated. If M+1 seeds are provided, then these seeds are used in the
bootstrapping procedure. Defaults to |
processes |
The number of parallel processes which are performed to speed up the bootstrapping. Shouldn't be higher than the number of logical processors. Please see the details. |
Details
This Anderson-Darling test statistic (supposedly) computes
U[0,1]-distributed (under H_0
) random variates via the
distribution function of chi-square distribution with d degrees of freedom,
see Hofert et al. (2014). The H_0
hypothesis is
C \in
\mathcal{C}_0
with \mathcal{C}_0
as the true class
of copulae under H_0
.
This test is based on the Rosenblatt probability integral transform which
uses the mapping \mathcal{R}: (0,1)^d \rightarrow (0,1)^d
. Following Genest et al. (2009) ensures this transformation the
decomposition of a random vector \mathbf{u} \in [0,1]^d
with a distribution into mutually independent elements with a uniform
distribution on the unit interval. The mapping provides pseudo observations
E_i
, given by
E_1 = \mathcal{R}(U_1), \dots, E_n =
\mathcal{R}(U_n).
The mapping is
performed by assigning to every vector \mathbf{u}
for e_1 =
u_1
and for i \in \{2, \dots, d\}
,
e_i = \frac{\partial^{i-1} C(u_1, \dots, u_i, 1, \dots, 1)}{\partial
u_1 \cdots \partial u_{i-1}} / \frac{\partial^{i-1} C(u_1, \dots, u_{i-1},
1, \dots, 1)}{\partial u_1 \cdots \partial u_{i-1}}.
The Anderson-Darling test statistic of the variates
G(x_j) = \chi_d^2 \left( x_j \right)
is computed (via ADGofTest::ad.test
), where x_j = \sum_{i=1}^d
(\Phi^{-1}(e_{ij}))^2
, \Phi^{-1}
denotes the quantile function of the standard normal distribution function,
\chi_d^2
denotes the distribution function of the
chi-square distribution with d
degrees of freedom, and u_{ij}
is the j
th component in the i
th row of \mathbf{u}
.
The test statistic is then given by
T = -n - \sum_{j=1}^n \frac{2j -
1}{n} [\ln(G(x_j)) + \ln(1 - G(x_{n+1-j}))].
The approximate p-value is computed by the formula,
\sum_{b=1}^M \mathbf{I}(|T_b| \geq |T|) / M,
where T
and T_b
denote the test statistic and the
bootstrapped test statistc, respectively.
For small values of M
, initializing the parallelisation via
processes
does not make sense. The registration of the parallel
processes increases the computation time. Please consider to enable
parallelisation just for high values of M
.
Value
An object of the class
gofCOP with the components
method |
a character which informs about the performed analysis |
copula |
the copula tested for |
margins |
the method used to estimate the margin distribution. |
param.margins |
the parameters of
the estimated margin distributions. Only applicable if the margins were not
specified as |
theta |
dependence parameters of the copulae |
df |
the degrees of freedem of the copula. Only applicable for t-copula. |
res.tests |
a matrix with the p-values and test statistics of the hybrid and the individual tests |
References
Christian Genest, Bruno Remillard, David Beaudoin (2009).
Goodness-of-fit tests for copulas: A review and a power study.
Insurance: Mathematics and Economics, Volume 44, Issue 2, April 2009,
Pages 199-213, ISSN 0167-6687.
doi: 10.1016/j.insmatheco.2007.10.005
Marius
Hofert, Ivan Kojadinovic, Martin Maechler, Jun Yan (2014). copula:
Multivariate Dependence with Copulas. R package version 0.999-15..
https://cran.r-project.org/package=copula
Examples
data(IndexReturns2D)
gofRosenblattChisq("normal", IndexReturns2D, M = 10)