serial.test(u , d = 8, echo = TRUE)TRUEd is a multiple of the length of u.statistic the value of the chi-squared statistic.
p.value the p-value of the test.
observed the observed counts.
expected the expected counts under the null hypothesis.
residuals the Pearson residuals, (observed - expected) / sqrt(expected).
u, realisation of i.i.d. uniform random
variables $U_1, \dots, U_n$. The serial test computes a serie of integer pairs $(p_i,p_{i+1})$
from the sample u with $p_i = \lfloor u_i d\rfloor$ (u must have an even length).
Let $n_j$ be the number of pairs such that
$j=p_i \times d + p_{i+1}$. If d=2, we count
the number of pairs equals to $00, 01, 10$ and $11$. Since
all the combination of two elements in ${0, \dots, d-1}$
are equiprobable, the chi-squared statistic is
$$S = \sum_{j=0}^{d-1} \frac{n_j - n/(2 d^2))^2}{n/(2 d^2)}.$$
L'Ecuyer P. (2001), Software for uniform random number generation distinguishing the good and the bad. Proceedings of the 2001 Winter Simulation Conference. (available online)
L'Ecuyer P. (2007), Test U01: a C library for empirical testing of random number generators. ACM Trans. on Mathematical Software 33(4), 22.
freq.test, gap.test, poker.test,
order.test and coll.test ks.test for the Kolmogorov Smirnov test and acf for
the autocorrelation function.
# (1)
#
serial.test(runif(1000))
print( serial.test( runif(1000000), d=2, e=FALSE) )
# (2)
#
serial.test(runif(5000), 5)Run the code above in your browser using DataLab