ポアソン分布の理解のための手習い。その3 2008/03/25

ますます自信がないですが...
ポアソン分布です。
PoissonGeneratorを使っているからポアソン分布です...

えーと、壱時間に平均100回おきる事象があり、それが毎分ごとどれぐらいでおきるかというのをシュミレートしてみるというのが趣旨です。

まず100を60でわって平均を求めてそれをPoissonGeneratorに渡すというふうにしてみました。
それで、毎分ごとにおきる事象の回数を求めるという感じです。

結果です。なんとなく現実でもおこりそうな感じがでてるような気がしますが、どうでしょう?

mean:1.666667
1分 起きた回数の総数:1 起きた回数:1
2分 起きた回数の総数:1 起きた回数:0
3分 起きた回数の総数:4 起きた回数:3
4分 起きた回数の総数:6 起きた回数:2
5分 起きた回数の総数:6 起きた回数:0
6分 起きた回数の総数:8 起きた回数:2
7分 起きた回数の総数:10 起きた回数:2
8分 起きた回数の総数:10 起きた回数:0
9分 起きた回数の総数:11 起きた回数:1
10分 起きた回数の総数:13 起きた回数:2
11分 起きた回数の総数:13 起きた回数:0
12分 起きた回数の総数:17 起きた回数:4
13分 起きた回数の総数:22 起きた回数:5
14分 起きた回数の総数:24 起きた回数:2
15分 起きた回数の総数:24 起きた回数:0
16分 起きた回数の総数:24 起きた回数:0
17分 起きた回数の総数:27 起きた回数:3
18分 起きた回数の総数:28 起きた回数:1
19分 起きた回数の総数:28 起きた回数:0
20分 起きた回数の総数:28 起きた回数:0
21分 起きた回数の総数:31 起きた回数:3
22分 起きた回数の総数:33 起きた回数:2
23分 起きた回数の総数:35 起きた回数:2
24分 起きた回数の総数:35 起きた回数:0
25分 起きた回数の総数:36 起きた回数:1
26分 起きた回数の総数:38 起きた回数:2
27分 起きた回数の総数:41 起きた回数:3
28分 起きた回数の総数:43 起きた回数:2
29分 起きた回数の総数:44 起きた回数:1
30分 起きた回数の総数:45 起きた回数:1
31分 起きた回数の総数:46 起きた回数:1
32分 起きた回数の総数:47 起きた回数:1
33分 起きた回数の総数:48 起きた回数:1
34分 起きた回数の総数:50 起きた回数:2
35分 起きた回数の総数:52 起きた回数:2
36分 起きた回数の総数:55 起きた回数:3
37分 起きた回数の総数:56 起きた回数:1
38分 起きた回数の総数:59 起きた回数:3
39分 起きた回数の総数:61 起きた回数:2
40分 起きた回数の総数:62 起きた回数:1
41分 起きた回数の総数:64 起きた回数:2
42分 起きた回数の総数:65 起きた回数:1
43分 起きた回数の総数:66 起きた回数:1
44分 起きた回数の総数:67 起きた回数:1
45分 起きた回数の総数:67 起きた回数:0
46分 起きた回数の総数:68 起きた回数:1
47分 起きた回数の総数:69 起きた回数:1
48分 起きた回数の総数:69 起きた回数:0
49分 起きた回数の総数:73 起きた回数:4
50分 起きた回数の総数:73 起きた回数:0
51分 起きた回数の総数:77 起きた回数:4
52分 起きた回数の総数:81 起きた回数:4
53分 起きた回数の総数:83 起きた回数:2
54分 起きた回数の総数:90 起きた回数:7
55分 起きた回数の総数:93 起きた回数:3
56分 起きた回数の総数:97 起きた回数:4
57分 起きた回数の総数:98 起きた回数:1
58分 起きた回数の総数:98 起きた回数:0
59分 起きた回数の総数:100 起きた回数:2
60分 起きた回数の総数:102 起きた回数:2


import java.util.Random;

import org.uncommons.maths.random.PoissonGenerator;

public class TestT2 {
public static void main(String[] args) {

int occured = 0;
//壱時間に平均100回おきる事象
double mean = 100d/60d;
System.out.printf("mean:%f%n", mean);
//分ごとにその事象がおきることをシュミレートしてみる
for(int i=1;i<=60;i++){
int r = r(mean);
occured += r;
System.out.printf("%d分 起きた回数の総数:%d 起きた回数:%d%n",i, occured, r);
}

}

static int r(double mean) {
Random random = new Random();
PoissonGenerator generator = new PoissonGenerator(mean, random);
return generator.nextValue();
}
}

: