So-net無料ブログ作成

Scilab でコイン投げの二項分布 [Math]

Scialb でシミュレートしてわかった気になるシリーズ第三弾。
コイン投げを、n 回投げて、 x 回表が出る確率の分布が二項分布。

1.n回コインを投げる
2.表が出た回数を数える
....というのを1000回繰り返して分布を描く。

n=5
binomialx_5.png

n=100
binomialx_50.png

n が大きくなるにつれて、平均=n*p、分散=n*p(1-p) ただしp=1/2 の正規分布に近づいている。
なんか嘘っぽいけど。

Scilab のコード。Github にもおいてあります。

clear;

// sampling num
samplenum=100
// number of repetition
repeat=1000;

// coin toss
R=grand(repeat,samplenum,'uin',0,1);

scf(1);
sums=sum(R,'c');
histplot([0:1:samplenum],sums)

n=samplenum;
p=1/2;

avg=n*p;
s=sqrt(n*p*(1-p))
x=[0:0.1:samplenum];
plot(x,(1/(s*sqrt(2*%pi)))*exp(-((avg-x).^2)./(2*s^2)));



コイン投げで中心極限定理 [Math]

scilab でシミュレーションしてわかった気になるシリーズ第二弾です。

コイン投げで表=1、裏=0とすると、平均値は0.5、分散は0.25。コイン投げというとなぜか n 回投げて x 回表が出る確率が二項分布になる話が多いですが、今回は平均0.5で分散が0.25/√n になるのをサクッと scilab で見てみることにします。

1.n回コインを投げる
2.平均値をプロット
....というのを100回繰り返す。

n を大きくしていくとばらつき(分散)が小さくなって、収束していく

n=10
binomial_5.png

n=100
binomial_100.png

n=500
binomial_500.png

ほんとだ、正規分布になっていて、 n が増えるほど分散が小さくなっている。

Scilab のコード。Github にもおいてあります。
clear;

// sampling num
samplenum=500;
// number of repetition
repeat=100;

// coin toss
R=grand(samplenum,repeat,'uin',0,1);
Avgs=mean(R,'r');
histplot([0:0.01:1],Avgs)

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





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