2項分布

添付のExcelもあっさりですが、Rでもあっさりです。
実行できるようになっているので、p, n を変えて試してみて下さい。

3行目

変数に入れずに関数の引数に直接、書けますが、次の関数の説明のために、成功回数0回からn回までをxに代入しました。
for文などの繰り返しを使わなくても、ベクトルの要素ごとに処理してくれる場合には、ベクトルでまとめて与えれば、全ての要素について求めることができます。

4行目

dbinom()は、二項分布の確率密度を求める関数です。

確率分布にまつわる関数は、接頭語 d, p, q, r + 確率分布名(略称)です。
接頭語とその関数の動きは、

  • d:密度 density 確率点qでの、確率密度を返します。離散型確率分布の場合は、特定の分位点(確率点)での確率と同じです。確率分布のグラフを描く場合などによく使われます。
  • p:確率 probability 分位点(確率点)qまでの確率を返します。密度の積分・累積です。また、分位の逆関数です。
  • q:分位 quantile 確率pでの分位点(確率点)を返します。確率の逆関数です。
  • r:乱数 random number(s) 確率分布に従う乱数を発生させます。

と、私は憶えています。…間違っていたら、ご連絡をお願いします。
本やWebでももっと難しい説明をしているかもしれませんが、このぐらいにしておいた方が、憶えやすいと思いますが…いかがでしょうか。
そして、この場合の確率分布は二項分布= binomial distribution ですから、その略の binom です。

5行目

コンソールに出力する際、見やすくなるよう、ベクトルの要素に名前を付けています。名前を付けるには、names()を使います。名前を参照する場合も names()が使えます(この場合は names()が右辺にくる)。カッコの中は、名前を付けたい(参照したい)ベクトルです。

名前は、書式に応じた文字列を返す関数 sprintf()で作っています。書式はC言語と同じです。書式以外の文字が書かれていれば、それも含めて、1つの文字列として返します。ここでは”%d“が書式で、整数型を示しています。ここにxの値が整数型で入ります。前後に”P(X=“と”)“があるので、x1の場合”P(X=1)“が返ります。

2項分布の確率計算

基本的に上のものと同じで、変更点は、成功確率、試行回数を変えているところ、名前を数字にしているところ、確率の表示を有効桁数3桁に制限しているところ、です。

5行目

名前の型は文字(文字列)なので、本来は as.character(x)とすべきでしょうが、そのあたりは自動でやってくれるので、そのままにしました。

6行目

digits = n“で、表示する有効桁数をn桁に変えることができます。最終的に出力する場合など、Rが内部で持っている全ての桁を表示する必要もないので、必要に応じて使いましょう。

10行目

10行目以降はグラフの描画です。ここでは、現在のグラフィックスパラメータを保存しています。11行目でグラフィックスパラメータを変更しますが、par()を使って、グラフィックスパラメータを直接変更すると、変更が残ったままになります。他の描画にも影響するので、後で元に戻せるように、変更前の状態を適当な変数に保存します。

11行目

par()を使って、グラフィックスパラメータを変更します。カッコの中身は、

  • mar = c(4.1, 4.1, 1, 1)
    プロット領域(グラフの枠の中)の、作図領域の中でのマージンをどれだけ取るかを、行の高さ、何行分かで指定します。4つの数字は順に、下、左、上、下のマージンです。
  • tcl = 0.5
    軸の目盛りの長さを行の高さ、何行分かで指定します。マイナスで外側、プラスで内側になります。
  • las = 1
    軸の目盛りのラベルを水平にします。
12行目

barplot()で、棒グラフを描きます。barplot(px)と、ベクトルを与えただけでも、シンプルなグラフが描けます。また、pxの要素に名前を付けたので、要素の名前が自動で横軸の目盛りのラベルに割り当てられます。その他は、以下のとおりです。

  • ylim = c(0, max(px) * 1.04)
    y軸の範囲を設定します。何も設定しないと、下が少しマイナスに伸びて隙間が空き、上は枠についてしまいます。下を0ぴったりに、上に4%の余裕をみました。
  • xlab = "成功回数 X", ylab = "確率 P(X)"
    それぞれ、x軸とy軸のラベルです。

この段階では、グラフ領域は枠に囲まれていません。作図関数によっては、グラフ領域が枠に囲まれるものもあります。

13行目

グラフ領域を枠で囲みます。
できあがりは、こんな感じです。グラフの大きさによって、x軸の目盛りのラベルの表示が調整されているので、数値の間隔がちょっとおかしいですが、今回は調整しません。

14行目

グラフィックスパラメータを元に戻します。