泊松分布或正态分布

时间:2015-05-07 15:18:07

标签: c++ c++11 random normal-distribution poisson

如果需要在[ N M ]范围内生成randoms,但有更多数字靠近 avg N < = avg < = M ),最好使用:

查看cppreference页面(页面底部)的示例,它们都会生成所需内容:

poisson_distribution

4

0 *
1 *******
2 **************
3 *******************
4 *******************
5 ***************
6 **********
7 *****
8 **
9 *
10 
11 
12 
13

normal_distribution5,标准差2

-2 
-1 
 0 
 1 *
 2 ***
 3 ******
 4 ********
 5 **********
 6 ********
 7 *****
 8 ***
 9 *
10 
11 
12

选择什么?可能是别的什么?

4 个答案:

答案 0 :(得分:3)

如果您需要有限范围内的结果,那么这两种选择都不是很好。正态分布在两端都有无限的尾部,泊松分布具有无限的上尾。至少你需要一个截断形式的其中一个。如果你没有截断,请注意法线的平均值始终是对称的,而泊松可能非常偏斜。这两个分布的不同之处在于法线是连续的,泊松是离散的,尽管你可以通过对结果进行分组来离散连续分布。

如果你想在有界范围内得到一组离散的结果,你可以尝试缩放并移动binomial distribution。参数np的二项式计算了多少"成功"当试验是独立的并且所有试验都以概率n成功时,你就会退出p试验。设为n = M - N并将结果移动N以获得[N,M]范围内的结果。

如果您想要一系列连续的结果,请考虑beta distribution。您可以捏造参数以获得各种各样的分布形状,并在平均值上拨打您想要的位置,并将其缩放+移动到您想要的任何范围。

答案 1 :(得分:2)

您可以将两个发行版集中在一个适合您需求的点上。

但是如果M很小,则泊松分布具有“胖尾”,即,与正态分布相比,获得高于M的数字的概率更高。

在正常情况下,您可以通过方差参数控制此机会(它可以根据您的需要调整)。

另一个相当明显的区别是Poisson会onli给你正整数,而正态分布会给[N,M]范围内的任何数字。

另外,当[N,M]足够大时,泊松会收敛到正态分布。因此,即使Poisson是正确的模型,正态近似也不会那么不准确。

考虑到这一点,如果数字不模拟计数过程,我会选择正常。

答案 2 :(得分:1)

如果你需要在范围内的分布(不是像普通或泊松那样的无限或半无限的分布),但是具有明确的最大值,你可以尝试具有几个自由度的Irwin-Hall。说IH(16)的最小值为0,最大值为16,峰值为8,见http://en.wikipedia.org/wiki/Irwin%E2%80%93Hall_distribution

非常容易取样,易于扩展,您可以使用myTG = function(data.frame, cols = c("Name 1", "Name 2")) { tableGrob(data.frame, cols = cols, show.rownames = FALSE, h.even.alpha = 0) } 来获得更高或更窄的峰值

答案 3 :(得分:-2)

我更喜欢正态分布,因为它更接近现实生活中的问题,而泊松分布仅用于特殊情况。选择N.D可以使您的问题更加通用。