# wavk_test: WAVK Trend Test In funtimes: Functions for Time Series Analysis

## Description

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

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13``` ```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", BIC = TRUE, 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 to set 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 autoregressive model when `BIC = FALSE`, or the maximal order for BIC-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"`. `BIC` logical value indicates whether the order of autoregressive filter should be selected by Bayesian information criterion (BIC). If `TRUE` (default), models of orders p= 0,1,...,`ar.order` or p= 0,1,...,`round(10*log10(length(x)))` are considered, depending on whether `ar.order` is defined or not (`x` is the time series). `out` logical value indicates whether 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 BIC-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

`ar`, `HVK`, `WAVK`, `sync_test`, `vignette("trendtests", package = "funtimes")`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59``` ```# 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. ```