ランダムかどうかの判断-分析に用いている乱数は、本当にランダムといえるか?:研究員の眼

シミュレーションでは、乱数を用いて調査や分析を行うことで、結果の現実味を高めることができる。

確率論や数理統計に基づいて、統計分析をしたり、数理モデル構築したりする際、しばしば「ランダム(無作為)」かどうか、が問題となる。

標本調査では、標本をランダムに抽出する必要がある。為替や株価の時系列分析をするときには、観測データにランダムな変動が含まれることを想定している。

例えば、経済予測をする際に、経済モデルを設定して、シミュレーションを行うことがある。そこで用いる金利や為替等の前提条件に、ランダムな変動を織り込むことで、シミュレーション結果の現実味を高めることができる。

このため、昔から、計算によってランダムな数(乱数)を発生させる手法が考えられてきた。

しかし、計算式で乱数を発生させようとしても、最初はそれらしいものが得られるが、長い数列を見ていくと、やがて同じ数が繰り返し現れてしまう。

そこで、数列の長さをものすごく長くして、簡単には繰り返しが起こらないようにするといった工夫が考えられている。しかし、それでも、何億個、何兆個もの乱数列を計算式で発生させようとすると、繰り返しの問題が生じてしまう。

このように、ある計算式によって得られる数列は、本当の乱数ではないので、擬似乱数と呼ばれている。そもそもランダムである乱数を、何かの計算式を使って発生させるというのは、自己矛盾していると言えよう。

そこで、計算式で発生させる代わりに、既にある数を利用してはどうか、という発想に行き着く。その代表的なものとして、円周率πが挙げられる。

π=3.141592653589793... と続く円周率は、小数点以下が無限に続くことが知られている。それだけではなく、いまのところ、小数点以下の数値の並びに規則性が見つかっておらず、その一部分を切り出して乱数として使うことができる。

ただし、何か隠れた数学的な規則性があるに違いない、と信じている数学者や統計学者も多く、その研究も進められている。円周率の数の並びは、現在知られている中で、かなりランダムに近いと言えよう。

次に、与えられたものが、ランダムかどうかを判断することを考えてみよう。例えば、aとbを20個並べた文字列である、列Ⅰと、列Ⅱが、与えられたとしよう。

順番1234567891011121314151617181920

列Ⅰa,a,a,a,a,b,b,a,b,b,a,a,b,a,b,b,a,b,b,b

列Ⅱa,b,b,a,b,a,b,a,a,b,a,a,a,b,a,b,b,a,b,b

列Ⅰでは、早い順番の方にaが多い。一方、列Ⅱには、そのような傾向は見られない。感覚的に、列Ⅰと、列Ⅱでは、ランダムかどうかに、違いがあるように見える。

このように2種類の文字が並んだ列のランダム性を、統計的に判定する手段として、「ウィルコクソンの順位和検定」という方法がある。

この方法は、文字の列がランダムであるかどうかの判定ではなく、ランダムではないかどうかの判定を行う。

以下に示すとおり、具体的な内容は、かなり技術的だが、感覚ではなく、数量的に、ランダム性についての判定を行うことができる。

以上のように、乱数を作ることは難しい。また、乱数が、本当にランダムかどうかを判断するのにも、手間がかかる。

しかし、シミュレーションでは、乱数を用いて調査や分析を行うことで、結果の現実味を高めることができる。

シミュレーションの結果を見る際は、乱数の設定方法にも注意をしてみてはどうかと思われるが、いかがだろうか。

関連レポート

(2016年2月1日「研究員の眼」より転載)

株式会社ニッセイ基礎研究所

保険研究部 主任研究員

注目記事