バナナでもわかる話

開設当初は計量経済学・統計学が専門の大学院生でした。今はデータを扱うお仕事をしています。統計学・経済学・投資理論・マーケティング等々に関する勉強・解説ブログ。ときどき趣味も。極力数式は使わずイメージで説明出来るよう心掛けていますが、時々暴走します。

負の二項分布とRのrnbinom関数は何を表すのか

負の二項分布という分布があります。

この負の二項分布ですが、解説書によって定義が違っているため、
事前に確認しないと何を指しているのかよくわからなくなる分布です。

Rには、負の二項分布からの乱数を出力する関数としてrnbinom関数があるのですが、それがどの負の二項分布からの乱数なのかも確認しておきます。


①1個目の負の二項分布

成功率 p r回成功するまでに必要な試行回数 Xを確率変数とする確率分布を負の二項分布と呼びます。

質量関数 P(X;p,r)は次の通り。
 P(X;p,r)=\frac{(X-1)!}{(X-1-r)!r!}p^r(1-p)^{(X-r)}


②もう一つの負の二項分布

成功率 p r回成功するまでに必要な失敗回数 Yを確率変数とする確率分布も負の二項分布と呼びます。
まあ実質やっていることは同じですね。

質量関数 P(Y;p,r)は次の通り。
 P(Y;p,r)=\frac{(Y+r-1)!}{y!(r-1)!}p^r(1-p)^Y

当然必要な試行回数はY+rをすれば出てきますね。


rnbinom関数

Rでは負の二項分布の乱数を出す関数としてrnbinom関数があります。

この関数から出力される乱数は①と②のどちらでしょうか。


まあ実際に乱数を取り出してみればすぐわかります。まず、関数の説明から。


とりあえず関数はこんな感じ。

rnbinom(n, size, prob)

一応muというのもありますが、その辺の話はまた別の記事で。

 nは取り出す乱数の個数
 sizeは成功回数です。先ほどの文字で言うと rですね。
 probは成功率です。


それじゃあ適当に乱数を取り出してみます。

> rnbinom(n=10, size=3, prob=1)
 [1] 0 0 0 0 0 0 0 0 0 0

成功回数3,成功率1でやってみました。
もし、必要な試行回数が確率変数だとすると、出てくる値は3以上のはずです。
よって、このrnbinom関数から出ている乱数は②の負の二項分布から出ているようですね。

最後にヒストグラムでも出して終わっておきます。

barplot(table(rnbinom(n=100000, size=5, prob=0.3)),main="size=5,prob=0.3")

f:id:bananarian:20181013025859p:plain



負の二項分布については、もっと詳しい仕組みがあって、具体的に言うとポアソン分布とガンマ分布に関係するのですが、それについてはまた次回の記事で説明します。