wavk_test: WAVK Trend Test

View source: R/wavk_test.R

wavk_testR Documentation

WAVK Trend Test

Description

Nonparametric test to detect (non-)monotonic parametric trends in time series \insertCite@based on @Lyubchich_etal_2013_wavkfuntimes.

Usage

wavk_test(
  formula,
  factor.length = c("user.defined", "adaptive.selection"),
  Window = NULL,
  q = 3/4,
  j = c(8:11),
  B = 1000,
  method = c("boot", "asympt"),
  ar.order = NULL,
  ar.method = "HVK",
  ic = "BIC",
  out = FALSE
)

Arguments

formula

an object of class "formula", specifying the form of the parametric time trend to be tested. Variable t should be used to specify the form, where t is specified within the function as a regular sequence on the interval (0,1]. See Examples.

factor.length

method to define the length of local windows (factors). Default option
"user.defined" allows setting only one value of the argument Window. The option "adaptive.selection" sets method = "boot" and employs heuristic m-out-of-n subsampling algorithm \insertCiteBickel_Sakov_2008funtimes to select an optimal window from the set of possible windows length(x)*q^j whose values are mapped to the largest previous integer and greater than 2. Vector x is the time series tested.

Window

length of the local window (factor), default is round(0.1*length(x)), where x is the time series tested. This argument is ignored if
factor.length = "adaptive.selection".

q

scalar from 0 to 1 to define the set of possible windows when factor.length = "adaptive.selection". Default is 3/4. This argument is ignored if
factor.length = "user.defined".

j

numeric vector to define the set of possible windows when factor.length = "adaptive.selection". Default is c(8:11). This argument is ignored if
factor.length = "user.defined".

B

number of bootstrap simulations to obtain empirical critical values. Default is 1000.

method

method of obtaining critical values: from asymptotical ("asympt") or bootstrap ("boot") distribution. If factor.length = "adaptive.selection" the option "boot" is used.

ar.order

order of the autoregressive model when ic = "none", or the maximal order for IC-based filtering. Default is round(10*log10(length(x))), where x is the time series.

ar.method

method of estimating autoregression coefficients. Default "HVK" delivers robust difference-based estimates by \insertCiteHall_VanKeilegom_2003;textualfuntimes. Alternatively, options of ar function can be used, such as "burg", "ols", "mle", and "yw".

ic

information criterion used to select the order of autoregressive filter (AIC of BIC), considering models of orders p= 0,1,...,ar.order. If ic = "none", the AR(p) model with p= ar.order is used, without order selection.

out

logical value indicates whether the full output should be shown. Default is FALSE.

Details

See more details in \insertCiteLyubchich_Gel_2016_synchronism;textualfuntimes and \insertCiteLyubchich_2016_trends;textualfuntimes.

Value

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

method

name of the method.

data.name

name of the data.

statistic

value of the test statistic.

p.value

p-value of the test.

alternative

alternative hypothesis.

parameter

window that was used.

estimate

list with the following elements: estimated trend coefficients; user-defined or IC-selected AR order; estimated AR coefficients; and, if factor.length = "adaptive.selection", test results for all considered windows.

Author(s)

Yulia R. Gel, Vyacheslav Lyubchich, Ethan Schaeffer

References

\insertAllCited

See Also

ar, HVK, WAVK, sync_test, vignette("trendtests", package = "funtimes")

Examples

# Fix seed for reproducible simulations:
set.seed(1)

#Simulate autoregressive time series of length n with smooth quadratic trend:
n <- 100
tsTrend <- 1 + 2*(1:n/n) + 4*(1:n/n)^2
tsNoise <- arima.sim(n = n, list(order = c(2, 0, 0), ar = c(-0.7, -0.1)))
U <- tsTrend + tsNoise
plot.ts(U)

#Test H0 of a linear trend, with m-out-of-n selection of the local window:
## Not run: 
    wavk_test(U ~ t, factor.length = "adaptive.selection")
## End(Not run)
# Sample output:
##	Trend test by Wang, Akritas, and Van Keilegom (bootstrap p-values)
##
##data:  U
##WAVK test statistic = 5.3964, adaptively selected window = 4, p-value < 2.2e-16
##alternative hypothesis: trend is not of the form U ~ t.

#Test H0 of a quadratic trend, with m-out-of-n selection of the local window
#and output of all results:
## Not run: 
    wavk_test(U ~ poly(t, 2), factor.length = "adaptive.selection", out = TRUE)
## End(Not run)
# Sample output:
##	Trend test by Wang, Akritas, and Van Keilegom (bootstrap p-values)
##
##data:  U
##WAVK test statistic = 0.40083, adaptively selected window = 4, p-value = 0.576
##alternative hypothesis: trend is not of the form U ~ poly(t, 2).
##sample estimates:
##$trend_coefficients
##(Intercept) poly(t, 2)1 poly(t, 2)2
##   3.408530   17.681422    2.597213
##
##$AR_order
##[1] 1
##
##$AR_coefficients
##         phi_1
##[1] -0.7406163
##
##$all_considered_windows
## Window WAVK-statistic p-value
##      4     0.40083181   0.576
##      5     0.06098625   0.760
##      7    -0.57115451   0.738
##     10    -1.02982929   0.360

# Test H0 of no trend (constant trend) using asymptotic distribution of statistic.
wavk_test(U ~ 1, method = "asympt")
# Sample output:
##	Trend test by Wang, Akritas, and Van Keilegom (asymptotic p-values)
##
##data:  U
##WAVK test statistic = 25.999, user-defined window = 10, p-value < 2.2e-16
##alternative hypothesis: trend is not of the form U ~ 1.


funtimes documentation built on March 31, 2023, 7:35 p.m.