Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

terasvirta.test

Teraesvirta Neural Network Test for Nonlinearity


Description

Generically computes Teraesvirta's neural network test for neglected nonlinearity either for the time series x or the regression y~x.

Usage

## S3 method for class 'ts'
terasvirta.test(x, lag = 1, type = c("Chisq","F"),
                scale = TRUE, ...)
## Default S3 method:
terasvirta.test(x, y, type = c("Chisq","F"),
                scale = TRUE, ...)

Arguments

x

a numeric vector, matrix, or time series.

y

a numeric vector.

lag

an integer which specifies the model order in terms of lags.

type

a string indicating whether the Chi-Squared test or the F-test is computed. Valid types are "Chisq" and "F".

scale

a logical indicating whether the data should be scaled before computing the test statistic. The default arguments to scale are used.

...

further arguments to be passed from or to methods.

Details

The null is the hypotheses of linearity in “mean”. This test uses a Taylor series expansion of the activation function to arrive at a suitable test statistic. If type equals "F", then the F-statistic instead of the Chi-Squared statistic is used in analogy to the classical linear regression.

Missing values are not allowed.

Value

A list with class "htest" containing the following components:

statistic

the value of the test statistic.

p.value

the p-value of the test.

method

a character string indicating what type of test was performed.

parameter

a list containing the additional parameters used to compute the test statistic.

data.name

a character string giving the name of the data.

arguments

additional arguments used to compute the test statistic.

Author(s)

A. Trapletti

References

T. Teraesvirta, C. F. Lin, and C. W. J. Granger (1993): Power of the Neural Network Linearity Test. Journal of Time Series Analysis 14, 209-220.

See Also

Examples

n <- 1000

x <- runif(1000, -1, 1)  # Non-linear in ``mean'' regression 
y <- x^2 - x^3 + 0.1*rnorm(x)
terasvirta.test(x, y)

## Is the polynomial of order 2 misspecified?
terasvirta.test(cbind(x,x^2,x^3), y)

## Generate time series which is nonlinear in ``mean''
x[1] <- 0.0
for(i in (2:n)) {
  x[i] <- 0.4*x[i-1] + tanh(x[i-1]) + rnorm(1, sd=0.5)
}
x <- as.ts(x)
plot(x)
terasvirta.test(x)

tseries

Time Series Analysis and Computational Finance

v0.10-48
GPL-2
Authors
Adrian Trapletti [aut], Kurt Hornik [aut, cre], Blake LeBaron [ctb] (BDS test code)
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.