我必须为泊松分布生成数据。我的范围是n = 1000到100K。其中n是数据元素的数量; k从1到n不等。它说使用lambda作为n/2Java中的泊松分布(正确性?)
我从来没有拿过统计数据,也不知道如何在这里得到正确的曲线。我可以喂它lambda为n/2,但我是否从0-n变化K?我试过这个(把k作为参数传入),当我绘制数据时,它会上升,而不是鱼尾。我做错了什么,或者我做得对吗?
谢谢
我在Knuth的java中有这样的代码。
static double poissonRandomNumber(int lambda) {
double L = Math.exp(-lambda);
int k = 0;
double p = 1;
do {
k = k + 1;
double u = Math.random();
p = p * u;
} while (p > L);
return k - 1;
}
您需要知道什么函数为泊松分布开始:http://en.wikipedia.org/wiki/Poisson_distribution。如果您可以使用库,请尝试Apache Commons Math:https://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math3/distribution/PoissonDistribution.html – duffymo 2014-09-25 19:50:19
该函数的给定为f (K,λ)= Pr(k)=λ^ ke^lambda/k! e =自然对数2.71 ...我不知道该怎么做,我不知道我在这里做什么。我试图插入图片中的forumla,并没有采取。 – 2014-09-25 20:03:23
这与我发布的链接一致。 – duffymo 2014-09-25 20:05:05