Learn R Programming

robcp (version 0.2.5)

pKSdist: Asymptotic cumulative distribution for the Huberized CUSUM Test statistic

Description

Computes the asymptotic cumulative distribution of the statistic of teststat.

Usage

pKSdist(tn, tol = 1e-8)
pbessel3(tn, h)

Arguments

tn

vector of test statistics (numeric). For pbessel3 length of tn has to be 1.

h

dimension of time series (integer). If h is equal to 1 pbessel3 uses pKS2 to compute the corresponding probability.

tol

tolerance (numeric).

Value

vector of \(P(t_n(X) \le tn[i])\).

Details

For a single time series, the distribution is the same distribution as in the two sample Kolmogorov Smirnov Test, namely the distribution of the maximal value of the absolute values of a Brownian bridge. It is computated as follows (van Mulbregt, 2018):

For \(t_n(x) < 1\):

$$ P(t_n(X) \le t_n(x)) = \sqrt{2 * \pi} / t_n(x) * t (1 + t^8(1 + t^{16}(1 + t^{24}(1 + ...))))$$ up to \(t^{8 * k_{max}}, k_{max} = \lfloor \sqrt{2 - \log(tol)}\rfloor\) where \(t = \exp(-\pi^2 / (8*x^2))\)

else:

$$ P(t_n(X) \le t_n(x)) = 2 * \sum_{k = 1}^{\infty} (-1)^{k - 1} * \exp(-2*k^2*x^2)$$ until \(|2 * (-1)^{k - 1} * \exp(-2*k^2*x^2) - 2 * (-1)^{(k-1) - 1} * \exp(-2*(k-1)^2*x^2)| \le tol. \)

In case of multiple time series, the distribution equals that of the maximum of an h dimensional squared Bessel bridge. It can be computed by (Kiefer, 1959):

$$P(t_n(X) \le t_n(x)) = (4 / (\Gamma(h / 2) 2^{h / 2} t_n^h)) \sum_{i = 1}^{\infty} ( ((\gamma_{(h - 2)/2, n})^{h - 2} \exp(-(\gamma_{(h - 2)/2, n})^2 / (2t_n^2))) / (J_{h/2}(\gamma_{(h - 2)/2, n}))^2 )$$ where \(J_h\) is the Bessel function of first kind and h-th order, \(\Gamma\) is the gamma function and \(\gamma_{h, n}\) denotes the n-th zero of \(J_h\).

References

van Mulbregt, P. (2018) "Computing the Cumulative Distribution Function and Quantiles of the limit of the Two-sided Kolmogorov-Smirnov Statistic." arXiv preprint arXiv:1803.00426.

/src/library/stats/src/ks.c rev60573

Kiefer, J. (1959). "K-sample analogues of the Kolmogorov-Smirnov and Cramer-V. Mises tests", The Annals of Mathematical Statistics, 420--447.

See Also

psi, teststat, h_cumsum, huber_cusum

Examples

Run this code
# NOT RUN {
# single time series
timeSeries <- c(rnorm(20, 0), rnorm(20, 2))
tn <- teststat(timeSeries)

pKSdist(tn)

# two time series
timeSeries <- matrix(c(rnorm(20, 0), rnorm(20, 2), rnorm(20, 1), rnorm(20, 3), 
                     ncol = 2))
tn <- teststat(timeSeries)

pbessel3(tn, 2)

# }

Run the code above in your browser using DataLab