npdeptest {np} | R Documentation

## Kernel Consistent Pairwise Nonlinear Dependence Test for Univariate Processes

### Description

`npdeptest` implements the consistent metric entropy test of pairwise independence as described in Maasoumi and Racine (2002).

### Usage

    npdeptest(data.x = NULL,
              data.y = NULL,
              method = c("integration","summation"),
              bootstrap = TRUE,
              boot.num = 399,
              random.seed = 42)

### Arguments

`data.x, data.y` | two univariate vectors containing two variables that are of type `numeric`.
`method` | 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`.
`bootstrap` | a logical value which specifies whether to conduct the bootstrap test or not. If set to `FALSE`, only the statistic will be computed. Defaults to `TRUE`.
`boot.num` | an integer value specifying the number of bootstrap replications to use. Defaults to `399`.
`random.seed` | an integer used to seed R's random number generator. This is to ensure replicability. Defaults to 42.

### Details

`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, y-hat), f(y)*f(y-hat)]. Examples include, (a) a measure/test of “fit”, for in-sample values of a variable y and its fitted values, y-hat, and (b) a measure of “predictability” for a variable y and its predicted values y-hat (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.

### Value

`npdeptest` returns an object of type `deptest` with the following components

`Srho` | the statistic `Srho`
`Srho.bootstrap.vec` | contains the bootstrap replications of `Srho`
`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 `data.x` marginal density
`bw.data.y` | the numeric bandwidth for `data.y` marginal density
`bw.joint` | the numeric matrix of bandwidths for `data` and lagged `data` joint density at lag `num.lag`

`summary` supports object of type `deptest`.

### Usage Issues

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.

### Author(s)

Tristen Hayfield tristen.hayfield@gmail.com, Jeffrey S. Racine racinej@mcmaster.ca

### References

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.

### See Also

`npdeneqtest,npsdeptest,npsymtest,npunitest`

### Examples

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

[Package np version 0.60-9 Index]