Boost C++ 库

…世界上最受推崇和设计最精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ Coding Standards

泊松分布 - Boost C++ 函数库
PrevUpHomeNext
#include <boost/math/distributions/poisson.hpp>
namespace boost { namespace math {

template <class RealType = double,
          class Policy   = policies::policy<> >
class poisson_distribution;

typedef poisson_distribution<> poisson;

template <class RealType, class Policy>
class poisson_distribution
{
public:
  typedef RealType value_type;
  typedef Policy   policy_type;

  BOOST_MATH_GPU_ENABLED poisson_distribution(RealType mean = 1); // Constructor.
  BOOST_MATH_GPU_ENABLED RealType mean()const; // Accessor.
}

}} // namespaces boost::math

泊松分布是一个众所周知的统计离散分布。它表示在固定时间段内(假定这些事件以已知的平均速率 λ(事件/时间)发生,并且与上次事件发生后的时间无关)发生一定数量的事件(或失败、到达、发生…)的概率。

该分布由 Siméon-Denis Poisson(1781-1840)发现。

它具有概率质量函数

对于 k 个事件,预期事件数为 λ。

下图说明了 PDF 如何随参数 λ 变化。

[Caution] 注意

泊松分布是一个离散分布:内部,像 cdfpdf 这样的函数被“当作”连续函数来处理,但实际上,从这些函数返回的结果只有在为随机变量参数提供整数值时才有意义。

默认情况下,分位数函数将返回一个向外舍入的整数结果。也就是说,较低的分位数(概率小于 0.5)向下舍入,而较高的分位数(概率大于 0.5)向上舍入。这种行为确保如果您请求 X% 的分位数,那么中心区域将至少包含请求的覆盖范围,而尾部最多包含请求的覆盖范围。

此行为可以通过策略进行更改,以使分位数函数以不同的方式舍入,甚至返回实值结果。强烈建议您在使用泊松分布的分位数函数之前,阅读教程理解离散分布的分位数。参考文档离散分位数策略描述了如何更改这些分布的舍入策略。

成员函数
BOOST_MATH_GPU_ENABLED poisson_distribution(RealType mean = 1);

构造一个均值为mean的泊松分布。

BOOST_MATH_GPU_ENABLED RealType mean()const;

返回此分布的均值

非成员访问器

所有通常的非成员访问器函数,它们对所有分布都是通用的,都受支持:累积分布函数概率密度函数分位数危险函数累积危险函数、__logcdf、__logpdf、均值中位数众数方差标准差偏度峰度超额峰度范围支撑集。对于此分布,所有非成员访问器函数均标记为BOOST_MATH_GPU_ENABLED,并且可以在主机和设备上运行。

随机变量的定义域为 [0, ∞]。

在此分布中,logpdf 的实现经过了专门优化,以提高数值精度。

精度

泊松分布是根据不完全伽马函数 gamma_pgamma_q 实现的,因此应具有较低的错误率:但有关更多信息,请参阅这些函数的文档。分位数及其补集使用逆伽马函数,因此可能精度略低:这是因为逆伽马函数使用容差较低的迭代方法实现,以避免过多的计算。

实现

下表中的 λ 是分布的均值,k 是随机变量,p 是概率,q = 1-p

函数

实现说明

pdf

使用关系:pdf = e λk / k!

logpdf

log(pdf) = -lgamma(k+1) + k*log(λ) - λ,如果 k > 0 且 λ > 0

cdf

使用关系:p = Γ(k+1, λ) / k! = gamma_q(k+1, λ)

CDF 补集

使用关系:q = gamma_p(k+1, λ)

分位数

使用关系:k = gamma_q_inva(λ, p) - 1

从补集中计算分位数

使用关系:k = gamma_p_inva(λ, q) - 1

均值

λ

模式

floor (λ) 或 ⌊λ⌋

偏度

1/√λ

峰度

3 + 1/λ

超额峰度

1/λ


PrevUpHomeNext