npdeptest | R Documentation |
npdeptest
implements the consistent metric entropy test of
pairwise independence as described in Maasoumi and Racine (2002).
npdeptest(data.x = NULL,
data.y = NULL,
method = c("integration","summation"),
bootstrap = TRUE,
boot.num = 399,
random.seed = 42)
data.x, data.y |
two univariate vectors containing two variables that are of type
|
method |
a character string used to specify whether to compute the integral
version or the summation version of the statistic. Can be set as
|
bootstrap |
a logical value which specifies whether to conduct
the bootstrap test or not. If set to |
boot.num |
an integer value specifying the number of bootstrap
replications to use. Defaults to |
random.seed |
an integer used to seed R's random number generator. This is to ensure replicability. Defaults to 42. |
npsdeptest
computes the nonparametric metric entropy
(normalized Hellinger of Granger, Maasoumi and Racine (2004)) for
testing pairwise nonlinear dependence between the densities of two
data series. See Maasoumi and Racine (2002) for details. Default
bandwidths are of the Kullback-Leibler variety obtained via
likelihood cross-validation. The null distribution is obtained via
bootstrap resampling under the null of pairwise independence.
npdeptest
computes the distance between the joint distribution
and the product of marginals (i.e. the joint distribution under the
null), D[f(y, \hat y), f(y)\times f(\hat y)]
. Examples include, (a) a measure/test of “fit”,
for in-sample values of a variable y
and its fitted values,
\hat y
, and (b) a measure of “predictability” for
a variable y
and its predicted values \hat y
(from
a user implemented model).
The summation version of this statistic will be numerically unstable
when data.x
and data.y
lack common support or are 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.
npdeptest
returns an object of type deptest
with the
following components
Srho |
the statistic |
Srho.bootstrap.vec |
contains the bootstrap replications of
|
P |
the P-value of the Srho statistic |
bootstrap |
a logical value indicating whether bootstrapping was performed |
boot.num |
number of bootstrap replications |
bw.data.x |
the numeric bandwidth for |
bw.data.y |
the numeric bandwidth for
|
bw.joint |
the numeric matrix of bandwidths for |
summary
supports object of type deptest
.
The integration
version of the statistic uses multidimensional
numerical methods from the cubature
package. See
adaptIntegrate
for details. The integration
version of the statistic will be substantially slower than the
summation
version, however, it will likely be both more
accurate and powerful.
Tristen Hayfield tristen.hayfield@gmail.com, Jeffrey S. Racine racinej@mcmaster.ca
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 (2002), “Entropy and Predictability of Stock Market Returns,” Journal of Econometrics, 107, 2, pp 291-312.
npdeneqtest,npsdeptest,npsymtest,npunitest
## Not run:
set.seed(1234)
## Test/measure lack of fit between y and its fitted value from a
## regression model when x is relevant using the `summation' version.
n <- 100
x <- rnorm(n)
y <- 1 + x + rnorm(n)
model <- lm(y~x)
y.fit <- fitted(model)
npdeptest(y,y.fit,boot.num=99,method="summation")
Sys.sleep(5)
## Test/measure lack of fit between y and its fitted value from a
## regression model when x is irrelevant using the `summation' version.
n <- 100
x <- runif(n,-2,2)
y <- 1 + rnorm(n)
model <- lm(y~x)
y.fit <- fitted(model)
npdeptest(y,y.fit,boot.num=99,method="summation")
## Test/measure lack of fit between y and its fitted value from a
## regression model when x is relevant using the `integration'
## version (default, slower than summation version).
n <- 100
x <- rnorm(n)
y <- 1 + x + rnorm(n)
model <- lm(y~x)
y.fit <- fitted(model)
npdeptest(y,y.fit,boot.num=99)
Sys.sleep(5)
## Test/measure lack of fit between y and its fitted value from a
## regression model when x is irrelevant using the `integration'
## version (default, slower than summation version).
n <- 100
x <- runif(n,-2,2)
y <- 1 + rnorm(n)
model <- lm(y~x)
y.fit <- fitted(model)
npdeptest(y,y.fit,boot.num=99)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.