指数分布とポアソン分布のいけない関係
DESCRIPTION
指数分布とポアソン分布について簡単に説明した後、それらは同じ事象を別々の視点から見たものであることを説明。さらにR言語を用いて実際にそれを確認。第20回R勉強会@東京(#TokyoR)(http://atnd.org/events/24629)でのトーク資料。TRANSCRIPT
ポアソン分布と指数分布 のいけない関係
@teramonagi 第20回R勉強会@東京(#TokyoR)
2012/01/28
Agenda
•自己紹介
•ポアソン分布ってなに?
•指数分布ってなに?
• 2つの分布のいけない関係
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 2
自己紹介
こういう者です ◆職業:クオンツ(計量的に金融する)
◆使う道具
データ・数理解析/プログラム
C++/C#/R/Python/Excel/VBA…..
◆最近の興味:
関数型言語・統計(科)学・確率論
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 4
ポアソン分布ってなに?
ポアソン分布ってなに?
•単位時間:1時間・1秒間・(1m)等
•生起確率:事象が起こる確率 ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 6
単位時間当りの生起確率
ポアソン分布ってなに?
•単位時間当り平均λ回起こる事象が単位時間中にx回起こる確率は・・・
ex
xpx
! ,...2,1,0x
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 7
ポアソン分布の例 ~1年間での1日あたりの交通事故死亡者数~
x 度数
0 1191 1522 683 204 45 16 1
6以上 0計 365
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 8 死亡者数
頻度
•平均:λ、分散: λ
•ただ1つλというパラメーターだけで特徴づけられる
ポアソン分布の特徴
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 9
ポアソン分布を計算してみる
• 1時間に平均5人が訪れるWebサイ
トがある。1時間に3人訪問者がある確率を求める
• λ=5、x=3を公式に代入
> (5^3) / (3 * 2) * exp(-5)
[1] 0.1403739(約14%!)
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 10
稀な現象としてのポアソン分布
•高校で習った二項分布を思い出す
•表が出る確率がpのコインをN回投げてx回表が出る確率は?
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 11
xNx
xN ppCxp
1
稀な現象としてのポアソン分布
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 12
xNx
xN ppCxp
1
ex
xpx
!
0, pN Npただし以下のようにp, λの積を固定
ちなみにRだと
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 13
(d,r,p,q)pois関数
指数分布ってなに?
指数分布ってなに?
•生起間隔:ある事象が起こって次にまた発生するまでの間隔
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 15
事象の生起間隔の確率
指数分布ってなに?
•単位時間当り平均λ回起こる事象を
考える。その事象の発生間隔がt単位時間である確率(密度)は・・・
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 16
tetp 実数,0t
~30歳のおっさんの平均余命の分布~ 指数分布の例
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 17 余命(年)
確率(密度)
指数分布を計算してみる
• 1時間に平均5人が訪れるWebサイトがある。次の訪問者が来るまでの間隔が12分である確率を求めよ
• λ=5、t=12/60を公式に代入
> 5 * exp(-5 * 12 / 60)
[1] 1.839397
(確率“密度“なんで1越えます)
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 18
• 平均:1/λ、分散: 1/λ^2
• ただ1つλというパラメーターだけで特徴づけられる
• 次に事象が発生するまでの時間は今まで待った時間とは関係ない(無記憶性)
指数分布の特徴
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 19
ちなみにRだと
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 20
(d,r,p,q)exp関数
2つの分布のいけない関係
2つの分布のいけない関係
22 ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR)
ポアソン分布 単位時間当りの生起確率
指数分布 事象の生起間隔の確率
ポアソン分布 単位時間当たり平均λ回
指数分布 平均1/λ単位時間に一回
2つの分布のいけない関係
23 ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR)
ポアソン分布 単位時間当たり平均λ回
指数分布 1/λ単位時間に一回
2つの分布のいけない関係
24 ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR)
ある“事象”に対して
回数に注目:ポアソン分布 時間に注目:指数分布
同じ物(事象)を異なる視点から見てるわけだね!
Rで確かめてみる
• Rを使って指数分布を生成
• 1単位時間に何回事象が発生するかをカウント
•その頻度がポアソン分布に従うかをチェック!
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 26
アルゴリズムの流れー1
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 27 13
指数分布に従う乱数生成
2
456
7
8
9
アルゴリズムの流れー2
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 28 1 32
作った乱数の合計が 単位時間に何個入るかカウント
1(単位時間)
+ + ≧1
アルゴリズムの流れー2
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 29 1 32
作った乱数の合計が 単位時間に何個入るかカウント
1(単位時間)
+ + ≧1
この場合3番目の指数分布の値を足しちゃうと合計が1
を越えるので、2とカウント
アルゴリズムの流れー2’
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 30 1
作った乱数の合計が 単位時間に何個入るかカウント
≧1
1(単位時間)
アルゴリズムの流れー2’
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 31 1
作った乱数の合計が 単位時間に何個入るかカウント
≧1
1(単位時間)
この場合1番目の指数分布
の値が1を越えるので、0とカウント
アルゴリズムの流れー3
1と2を繰り返して出てきたカウント値の統計量を計算
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 32
結果のチェック(分布比較)
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 33 訪問者数
頻度(確率)
結果のチェック(分布比較)
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 34 訪問者数
頻度(確率)
指数分布からポアソン分布を作成することができた!
まとめ
•ポアソン/指数分布について説明
•ある“事象”に対して
–“回数“に注目:ポアソン分布
–“時間”に注目:指数分布
• Rでシミュレーションしてみた
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 35
Rのコード #1単位時間内に到着する訪問者数を数えるシミュレーション
VisitorCounter <- function(lambda)
{
counter <- 0
time.arrival <- rexp(1, rate = lambda)
while(time.arrival < 1) {
counter <- counter + 1
#次の訪問者の到着時間を計算
time.arrival <- time.arrival + rexp(1, rate = lambda)
}
counter
}
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 36
Rのコード #1単位時間あたりの訪問者数の平均値 lambda <- 5 #シミュレーション回数 N <- 10^4 #シミュレーション実施 x <- sapply(1:N, function(i){VisitorCounter(lambda)}) #表示 barplot(rbind(table(x) / N, dpois(0:max(x), lambda)), col = c("violetred1", "slateblue4"), legend.text = c("Simulation", "Theoritical"), args.legend = list(x = "topright"), beside = TRUE )
ポアソン分布と指数分布のいけない関係@第20回R勉強会@東京(#TokyoR) 37