from scipy.special import gamma
通过分布积分的方法,进行如下的推导:
可得该函数如下的递归性质:
>>> gamma(5+1)
120.0
>>> 5*gamma(5)
120.0
于是很容易证明( Γ(1)=1,Γ(n)=(n−1)Γ(n−1) ), Γ(x) 函数可以看成是阶乘在实数集上的延拓,具有如下的性质:
对Gamma 函数的定义稍作变形,可得如下等式:
Gamma 分布首先与Possion 分布(离散型)、Possion 过程发生密切的联系。我们容易发现Gamma分布的概率密度和Possion分布在数学形式具有高度的一致性。参数为 λ 的Possion分布,其概率(probability mass function,pmf)为:
而Gamma分布的密度( α=k+1,β=1 )得到:
我们在概率论与数理统计的课程中都学过, Poisson(λ) 分布可以看成是二项分布 B(n,p) 在 np=λ,n→∞ 条件下的极限分布:
上式左侧是二项分布 B(n,p) 的累积分布函数(cumulative density function,cdf),而右侧为无穷多个二项分布 B(n−1,xn) 的积分和,所以可以写为:
到这,不妨先暂停,我们使用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-Gamma duality,接下来我们来点好玩的,对上面的等式两边在 λ→0 取极限,左侧Poisson分布表示的是至少发生 k 事件的概率, λ→0 的时候就不可能有事件再发生了,故 P(X≤k)=0 ,于是:
好吧,文章已经够长的了,公式已经够繁复的了,下文,我们将重点实现阶乘在正实数轴上的连续化(或者叫插值),其实已经很明显了。