Nonparametric test to detect (non-)monotonic parametric trends in time series if(!exists(".Rdpack.currefs")) .Rdpack.currefs <-new.env();Rdpack::insert_citeOnly(keys="@based on@Lyubchich_etal_2013_wavk",package="funtimes",cached_env=.Rdpack.currefs) .
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 if(!exists(".Rdpack.currefs")) .Rdpack.currefs <-new.env();Rdpack::insert_citeOnly(keys="Bickel_Sakov_2008",package="funtimes",cached_env=.Rdpack.currefs) 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 if(!exists(".Rdpack.currefs")) .Rdpack.currefs <-new.env();Rdpack::insert_citeOnly(keys="Hall_VanKeilegom_2003;textual",package="funtimes",cached_env=.Rdpack.currefs) . 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.
Returns
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.
Details
See more details in if(!exists(".Rdpack.currefs")) .Rdpack.currefs <-new.env();Rdpack::insert_citeOnly(keys="Lyubchich_Gel_2016_synchronism;textual",package="funtimes",cached_env=.Rdpack.currefs)
and if(!exists(".Rdpack.currefs")) .Rdpack.currefs <-new.env();Rdpack::insert_citeOnly(keys="Lyubchich_2016_trends;textual",package="funtimes",cached_env=.Rdpack.currefs) .
Examples
# Fix seed for reproducible simulations:set.seed(1)#Simulate autoregressive time series of length n with smooth quadratic trend:n <-100tsTrend <-1+2*(1:n/n)+4*(1:n/n)^2tsNoise <- 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.