So-net無料ブログ作成
検索選択

Scilabで中心極限定理 [Math]

中心極限定理という統計学の定理がありまして、何度聞いても
わかったような、わからないような。なので Scilab でサクっと
シミュレーションして、わかった気になろうという思いです。

標本平均は一定数の観測値を集めて平均したもの。サイコロなら100回
振って出た数の平均値のこと。

この平均値をいくつも集めてると正規分布になるという。
もとの現象の分布は関係ない。サイコロはどれが出るかは1/6で
一定に分布している。でも標本平均を何回もとると正規分布になる。

真の平均値μ、分散σ^2という現象を観測していたなら、
n個の標本平均をとると、標本平均の分布は、平均μ、分散はσ^2/√n
になるという。

サイコロの場合は平均=3.5、分散=2.92。これを使って Scilab で見てみます。

1000回サイコロを振ったヒストグラムをプロット。
1roll.png

それを10回繰り返し、1回あたりの平均を取った(10このサイコロを1000回振って、
各サイコロの平均を取ったのと同じ)。
10rolls.png

繰り返しを200回にしてみた。
ついでに平均=3.5、分散=√2.92/200の正規分布を描いた。
200rolls.png

あー、なってますね。正規分布に。

グラフ作成に使った scilab のコード
clc;

// number of repetition
repeat=10;
// draw dice 10 times. and repeat it.
X=grand(1000,repeat,'uin',1,6);
// avarage of repetition
R=mean(X,'c');
// plot histgram
histplot([0:0.1:6],R);
title="Frequency distribution of dice face with " +string(repeat)+" roll(s)";
xtitle(title,"dice face","Frequency");

avg=3.5
s=sqrt(2.92/repeat);
x=[0:0.01:6];
plot(x,(1/(s*sqrt(2*%pi)))*exp(-((avg-x).^2)/(2*s^2)));


GitHub からダウンロードできます。


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。