株初心者が本気で儲けるブログ

株式投資・仮想通貨に関連するテーマについて取り扱ってます。

【R言語】 二項分布をプロットしてみる

 

 今回はRを使って二項分布の分布の作図していきます。その前に二項分布について軽く説明しておくと、

 

二項分布とは、「試合の勝ち敗けやコイントスの裏表・宝くじの当たり外れといった2つの値をとっていて※各事象が独立している試行(ベルヌーイ試行)を、n回行ったときの分布」のことです。

※ここでいう”各事象が独立している試行”とは、各試行が他の試行に影響を与えないことを言います。つまり、コイントスをした場合に、1回目のコインが表だったから2回目は裏の方が出やすいというようなことはなく、コイントスで表と裏が出る確率はそれぞれ常に2分の1ということを意味しています。

 

Rでコイントスと同じ事象をシュミレーションを行うにはsample()関数を使います。

 

outcomes<-sample(c(0,1),1000,replace=TRUE)

 

sample()関数の最初の引数には、シュミレーションする集団がどんな集団かを入力します。コイントスの場合は、表と裏なので、0と1で設定しました。

次の引数は抽出する回数を設定します。上でも述べたようにコイントスは、ベルヌーイ試行であるので、表が出たら次は裏が出やすくなるというようなことはありません。なので、replace=TRUEという引数を入れて、復元抽出を行います。

 

(sample()関数のほかの機能については[R]無作為抽出をするsample関数の使い方という記事が分かりやすく解説しています。)

 

そしてコイントスを1000回行い、表を1、裏を0としたシュミレーションの結果のヒストグラムが下のようになります。

 

f:id:oruka199665:20161231053111j:plain

そしてコインを1000回投げたときに表が1回出る確率、2回出る確率・・・と順番に計算していきます。計算にはdbinom()関数を使います。

 

一応手計算でもできないことはないのですが、計算式が少々めんどくさいので省略します。計算はコンピュータがやってくれるので別にできなくても問題ないです。

 

> dbinom(1,1000,0.5)
[1] 9.332636e-299

 

> dbinom(2,1000,0.5)
[1] 4.661652e-296

 

これを1000まで行い、その結果をプロットしたものが下のようになります。

 

 x<-0:1000

plot(x,dbinom(x,1000,0.5), type="h")

f:id:oruka199665:20161231165106j:plain

もしコインを3回投げて全部表だったとしても、1000回投げればコインが表になる回数は大体500回程度になり、大数の法則のとおり試行回数を増やせば2分の1に収束するというわけです。

 

 また、世の中の多くの現象は「○か×か」といった2つの結果の積み重ねで出来ているため、二項分布は正規分布やポアソン分布に近似することができます。正規近似・ポアソン近似を理解できれば、色んな現象の確率を求められるようになります。

 

 

www.dmjtmj-stock.com

www.dmjtmj-stock.com