情報科学実験II

2003年度春学期
担当: 菊地


目的

データ解析の基礎となる母集団、標本、標本分布、標準誤差などの概念を体感する。現在では、コンピュータシミュレーションにより、理論的な定理を簡単に検証することができる。この実験では、統計学、確率論の基礎的な理論である大数の法則、中心極限定理をシミュレーションにより検証する。

方法

擬似乱数を用いて、コンピュータを使ったシミュレーション実験を行う。具体的には、試行回数が1回の二項分布に従うデータから得られる標本平均の標準誤差の値を求める。

背景

二項分布とは、例えばコインを投げてある確率で表と裏が出る現象や、ある人がある問題に正解する、不正解する、といった、確率的に成功、不成功となるような事象を取り扱う分布である。

例えば、確率が半々(0.5)で表、裏が出るようなコイン投げを考えてみる。10回投げた時には、理想的に表と裏が起これば、確率通り、5回が表、5回が裏となる。しかし、実際には、それぞれのコイン投げは独立な事象であり、必ずしも5回ずつではなく、6、4であったり、ひどい時には、10、0の場合もないとはいえない。

今度は、例えば1000回投げた場合を想像してみる。1000回も投げれば、1000、0というのは、まず考えられないし、600、400ということも、直感的にあまり考えにくい。だいたい、表、裏が500回前後になりそうだ、というのは、実感として受け入れやすいことである。

すなわち、投げる回数が多ければ多いほど、だいたい半々で表、裏が起こるということになる。もう少しつきつめて考えてみると、逆に、何回投げれば、表と裏が半々に出たと判断できるほどに、理論的な結果に近付くのか、知りたくなってくる。このことは、実は大数の法則、中心極限定理によって示されていることである。

この実験では、上記の事象をコンピュータによってシミュレートし、大数の法則、中心極限定理で示されていることの検証を行う。このように、理論的に示されていることの中には、一見、実社会の現象と結びつかないようなことであっても、実際には、すでに常識的に理解されていることを証明しているような場合もある。


内容


1. 試行回数が1回の二項分布に従うn個のデータ{X1, X2, X3, ..., Xn}を生成する。

まず、確率pで表が出るコインをn回投げたことを想定したデータをシミュレーションにより作成する。

[0, 1)の一様分布に従う乱数から、確率pで1、確率(1-p)で0となるような、0と1から構成されるデータをn個発生させる。なお、プログラムは、1となる確率(成功の確率)pとデータの個数nを、後から容易に変更ができるように作成する。例えば、n=5として、生成したデータが{1, 0, 0, 0,1}であった場合には、5回投げて、表、裏、裏、裏、表と出たことを表すことになる。

Cを用いる場合には、一様乱数の発生は以下の手順で行う。なお、用いる計算機の言語、アプリケーションは何でもかまわない。

srand48(time(NULL))は、実行する度に乱数のシードを変更するための呼び出しである。この関数を実行しないと、毎回実行する度に同じ乱数が発生されるため、シミュレーション実験を行う場合には、通常、この関数を呼び出すことが多い。


2. 生成したデータの標本平均μと標本分散σ2を求める。

標本平均: μ=(X1+X2+...+Xn)/n

標本分散: σ2=((X1-μ)2+(X2-μ)2+...+(Xn-μ)2)/n


3. プログラムを検証する。

理論的には、平均はp、分散はp(1-p)となるので、シミュレーションにより実際に求めた値と比較を行う。比較に際しては、p、nにいろいろな値を代入して検証を行うこと。