Γ(x)=∫∞0tx−1e−tdt

对应于scipy(python库)的:

from scipy.special import gamma

通过分布积分的方法,进行如下的推导:

Γ(x+1)=∫∞0txe−tdt=−∫∞0txd(e−t)=−[txe−t|∞0−x∫∞0tx−1e−tdt]=xΓ(x)

可得该函数如下的递归性质:

Γ(x+1)=xΓ(x)

>>> gamma(5+1)
120.0
>>> 5*gamma(5)
120.0

于是很容易证明(Γ(1)=1,Γ(n)=(n−1)Γ(n−1)),Γ(x) 函数可以看成是阶乘在实数集上的延拓,具有如下的性质:

Γ(n)=(n−1)!

Γ(n) 与 B(m,n)的关系

B(m,n)=∫10xm−1(1−x)n−1dxB(m,n)=Γ(m)Γ(n)Γ(m+n)

从二项分布到 Gamma 分布

对Gamma 函数的定义稍作变形,可得如下等式:

∫∞0xα−1e−xΓ(α)dx=1

于是

取积分中的函数作为概率密度(Probability Density Function,PDF),就得到一个形式最为简单的Gamma 分布的密度函数(density function):

Gamma(x|α)=xα−1e−xΓ(α)

如果再做一个变换

x=βt,就得Gamma 分布的更一般形式:

Gamma(t|α,β)=βαtα−1e−βtΓ(α)

其中

α 称为形状参数(shape parameter),主要决定了分布曲线的形状,而 β 称为 rate parameter(或叫 inverse scale parameter, 1β 称为scale parameter),主要决定曲线有多陡。



python伽马噪声 python伽马分布_python伽马噪声



Gamma 分布与Possion 分布

Gamma 分布首先与Possion 分布(离散型)、Possion 过程发生密切的联系。我们容易发现Gamma分布的概率密度和Possion分布在数学形式具有高度的一致性。参数为 λ 的Possion分布,其概率(probability mass function,pmf)为:

Possion(X=k|λ)=λke−λk!

而Gamma分布的密度(α=k+1,β=1)得到:

Gamma(x|α=k+1)=xαe−xΓ(k+1)=xke−xk!

所以这两个分布在数学形式上是一致的,只是Possion分布是离散的,Gamma分布是连续的,

可以直观地认为Gamma分布是Possion分布在正实数集上的连续化版本

我们在概率论与数理统计的课程中都学过,Poisson(λ) 分布可以看成是二项分布 B(n,p) 在 np=λ,n→∞:

B(k;n,p)=(nk)pk(1−p)n−k⟶np=λ,n→∞Poisson(X=k|np)=λke−λk!

如果你对二项分布的关注足够多,可能会知道二项分布的随机变量

X B(n,p)满足下面一个奇妙的

恒等式

P(X≤k)=n!k!(n−k−1)!∫1ptk(1−t)n−k−1dt

我们在等式右侧做一个变换

t=xn可得:

P(X≤k)=====n!k!(n−k−1)!∫nnp(xn)k(1−xn)n−k−1d(xn)∫nnp(n−1)!k!(n−k−1)!(xn)k(1−xn)n−k−1dx∫nnp(n−1k)(xn)k(1−xn)n−k−1dx∫nnpB(k;n−1,xn)dx∫nnpB(Y=k|n−1,xn)dx

上式左侧是二项分布 B(n,p) 的累积分布函数(cumulative density function,cdf),而右侧为无穷多个二项分布 B(n−1,xn) 的积分和,所以可以写为:

B(X≤k|n,p)=∫nnpB(Y=k|n−1,xn)dx

对上式两边在条件

np=λ,n→∞ 下取极限,则得到:

Poisson(X≤k|λ)=∫∞λPoisson(Y=k|x)dx=∫∞λxke−xk!dx

到这,不妨先暂停,我们使用scipy做一个简单验证:

import scipy.stats as st
from scipy.misc import factorial
from scipy import integrate

lmbda, k = 2, 6
X = st.poisson(2)
                    # X ~ Poisson(2)
print(X.cdf(k))
                    # P(X<=k)

def poisson_pdf(x, k):
    return x**k*np.exp(-x)/factorial(k)
print(integrate.quad(possion_pdf, lmbda, np.inf, args=(k))[0])
                # 0.995466194474
                # 0.9954661944737513
                # 两者达到完美的相等

书归正传,我们再来看上面的公式,

Poisson(X≤k|λ)=∫∞λPoisson(Y=k|x)dx=∫∞λxke−xk!dx

该等式即为著名的 Poisson-Gamma duality,接下来我们来点好玩的,对上面的等式两边在 λ→0取极限,左侧Poisson分布表示的是至少发生 k事件的概率,λ→0的时候就不可能有事件再发生了,故 P(X≤k)=0,于是:

1=limλ→0∫∞λxke−xk!dx=∫∞0xke−xk!dx

该积分式子说明 f(x)=xke−xk!在实数集上是一个概率分布函数(probability density function,pdf),而这个函数恰好就是

Gamma分布

Gamma(x|α)=xα−1e−xΓ(α),α=k+1)(

也即我们通过二项分布,再根据泊松定理,推导出了最后的Gamma分布)。我们继续把上式右边中的

k!移到左边,于是得到:

k!=∫∞0xke−xdx

于是我们得到了将

k!表示为积分(也即从此我们可以计算3.5的阶乘了)的方法。

好吧,文章已经够长的了,公式已经够繁复的了,下文,我们将重点实现阶乘在正实数轴上的连续化(或者叫插值),其实已经很明显了。