乱数ライブラリー

ランダムウオーク検定

$k$次元のランダムウオーク検定では、$\left\lceil \log _2 k\right\rceil$ビットの乱数を発生させ、原点から始まる$k$次元の立方格子上でのランダムウオークを$n$ステップ行う。$\lceil x\rceil$は、実数$x$に対して$x$以上の最小の整数とする。このステップを$N$回繰り返す。$2^k$個ある象限ごとに、ランダムウオークの終点をカウントする${N_i },i=1,2,…,2^k$。乱数が一様であれば、各象限は等確率になるはずなので、以下の式で表される$\chi^2$統計量は、自由度$2^{k-1}$の$\chi^2$分布に従うことにより検定することができる。

$\chi ^2=\sum _{i=1}^{2^k} \frac{\left(N_i-N2^{-k}\right){}^2}{N2^{-k}}$


乱数からランダムウオークの動きに変換する方法によって結果が変わってくるため、注意が必要である。

変換の方法について例を示す。乱数からランダムウオークの動きに変換するために、以下のようにすることもできる。1次元のランダムウオーク検定として$[0,1)$の一様乱数$\{x_i\},i=1,2,…,n$を発生させる。この乱数を以下のように変換し、その値により$x$軸上を-1あるいは、+1方向へ動かす。

$-1 (x_i<0.5)$

$+1 (x_i\ge 0.5)$


2次元の場合は、$[0,1)$の一様乱数$\{x_i,y_i\},i=1,2,…,n$を発生させる。上と同様の変換を行い、$y$については$y$軸上を-1あるいは、+1方向へ動かす。


参考文献:
  • JIS Z 9031:2012, 乱数生成及びランダム化の手順, 2012



▲このページのトップに戻る