pKSdist | R Documentation |
Computes the asymptotic cumulative distribution of the statistic of CUSUM
.
pKSdist(tn, tol = 1e-8)
pBessel(tn, p)
tn |
vector of test statistics (numeric). For |
p |
dimension of time series (integer). If |
tol |
tolerance (numeric). |
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 (Durbin, 1973 and van Mulbregt, 2018):
For t_n(x) < 1
:
P(t_n(X) \le t_n(x)) =
\frac{\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 / (8x^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 p
dimensional squared Bessel bridge. It can be computed by (Kiefer, 1959)
P(t_n(X) \le t_n(x)) =
\frac{4}{ \Gamma(p / 2) 2^{p / 2} t_n^p } \sum_{i = 1}^{\infty} \frac{(\gamma_{(p - 2)/2, n})^{p - 2} \exp(-(\gamma_{(p - 2)/2, n})^2 / (2t_n^2))}{J_{p/2}(\gamma_{(p - 2)/2, n})^2 },
where J_p
is the Bessel function of first kind and p-th order, \Gamma
is the gamma function and \gamma_{p, n}
denotes the n-th zero of J_p
.
vector of P(t_n(X) \le tn[i])
.
Sheila Görz, Alexander Dürre
Durbin, James. (1973) "Distribution theory for tests based on the sample distribution function." Society for Industrial and Applied Mathematics.
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.
psi
, CUSUM
, psi_cumsum
, huber_cusum
# single time series
timeSeries <- c(rnorm(20, 0), rnorm(20, 2))
tn <- CUSUM(timeSeries)
pKSdist(tn)
# two time series
timeSeries <- matrix(c(rnorm(20, 0), rnorm(20, 2), rnorm(20, 1), rnorm(20, 3)),
ncol = 2)
tn <- CUSUM(timeSeries)
pBessel(tn, 2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.