np.symtest.Rdnpsymtest implements the consistent metric entropy test of
asymmetry as described in Maasoumi and Racine (2009).
a vector containing the variable.
a character string used to specify whether to compute the integral
version or the summation version of the statistic. Can be set as
integration or summation (see below for
details). Defaults to integration.
an integer value specifying the number of bootstrap
replications to use. Defaults to 399.
a numeric (scalar) bandwidth. Defaults to plug-in (see details below).
a character string used to specify the
bootstrap method. Can be set as iid or geom (see below
for details). Defaults to iid.
an integer used to seed R's random number generator. This is to ensure replicability. Defaults to 42.
additional arguments supplied to specify the bandwidth
type, kernel types, and so on. This is used since we specify bw as
a numeric scalar and not a bandwidth object, and is of
interest if you do not desire the default behaviours. To change the
defaults, you may specify any of bwscaling, bwtype,
ckertype, ckerorder, ukertype,
okertype.
npsymtest returns an object of type symtest with the
following components
the statistic Srho
contains the bootstrap replications of Srho
the P-value of the statistic
number of bootstrap replications
the rotated data series
the numeric (scalar) bandwidth
summary supports object of type symtest.
Granger, C.W. and E. Maasoumi and J.S. Racine (2004), “A dependence metric for possibly nonlinear processes”, Journal of Time Series Analysis, 25, 649-669.
Maasoumi, E. and J.S. Racine (2009), “A robust entropy-based test of asymmetry for discrete and continuous processes,” Econometric Reviews, 28, 246-261.
Politis, D.N. and J.P. Romano (1994), “The stationary bootstrap,” Journal of the American Statistical Association, 89, 1303-1313.
npsymtest computes the nonparametric metric entropy (normalized
Hellinger of Granger, Maasoumi and Racine (2004)) for testing
symmetry using the densities/probabilities of the data and the
rotated data, \(D[f(y), f(\tilde y)]\). See
Maasoumi and Racine (2009) for details. Default bandwidths are of the
plug-in variety (bw.SJ for continuous variables and
direct plug-in for discrete variables).
For bootstrapping the null distribution of the statistic, iid
conducts simple random resampling, while geom conducts Politis
and Romano's (1994) stationary bootstrap using automatic block length
selection via the b.star function in the
np package. See the boot package for
details.
The summation version of this statistic may be numerically unstable
when y is sparse (the summation version involves division of
densities while the integration version involves differences). Warning
messages are produced should this occur (‘integration recommended’)
and should be heeded.
When using data of type factor it is crucial that the
variable not be an alphabetic character string (i.e. the factor must
be integer-valued). The rotation is conducted about the median after
conversion to type numeric which is then converted back
to type factor. Failure to do so will have unpredictable
results. See the example below for proper usage.
if (FALSE) { # \dontrun{
set.seed(1234)
n <- 100
## Asymmetric discrete probability distribution function
x <- factor(rbinom(n,2,.8))
npsymtest(x,boot.num=99)
Sys.sleep(5)
## Symmetric discrete probability distribution function
x <- factor(rbinom(n,2,.5))
npsymtest(x,boot.num=99)
Sys.sleep(5)
## Asymmetric continuous distribution function
y <- rchisq(n,df=2)
npsymtest(y,boot.num=99)
Sys.sleep(5)
## Symmetric continuous distribution function
y <- rnorm(n)
npsymtest(y,boot.num=99)
## Time-series bootstrap
ar.series <- function(phi,epsilon) {
n <- length(epsilon)
series <- numeric(n)
series[1] <- epsilon[1]/(1-phi)
for(i in 2:n) {
series[i] <- phi*series[i-1] + epsilon[i]
}
return(series)
}
## Asymmetric time-series
yt <- ar.series(0.5,rchisq(n,df=3))
npsymtest(yt,boot.num=99,boot.method="geom")
## Symmetric time-series
yt <- ar.series(0.5,rnorm(n))
npsymtest(yt,boot.num=99,boot.method="geom")
} # }