Gamma 分布
Gamma函数可将许多数学概念从整数集延拓到实数集合。
我们来看对Beta分布的改造:
我们在此利用Gamma分布的化整数集为实数集的强大能力:
阶乘的插值:
共轭分布
下式为著名的Beta-Binomial分布:
或者更具现实意义的:
先验 p(X) 与似然的存在 p(X|θ) 的存在,使得先验 p(X) 与后验 p(θ|X) 具有相同形式的分布,就称先验与似然互为共轭。
此处共轭的含义是,数据符合二项分布的时候,参数的先验分布和后验分布都能保持Beta分布的形式,而这种形式不变的好处是,我们能够在先验分布中赋予参数很明确的物理意义。这个物理意义可以延续到后验分布中进行解释,同时从先验变换到后验过程中从数据中补充的知识也容易有物理解释。
也即数学家们发现共轭分布的形式后,心中暗想,对呀,它保证了物理意义的延续性,而又能吸收数据中补充的知识(似然)。也即共轭分布的真正意义(本质)在于,它能够保证在先验分布赋予的物理意义传递到后验分布时的物理意义一致性。
百变星君Beta分布
最后我们可视化不同 α,β 下的Beta distribution,
def fn(x, alpha):
return x**(alpha-1)*np.exp(-x)
def gamma(alpha):
return integrate.quad(fn, 0, np.inf, args=alpha)[0]
def beta(p, a, b):
return gamma(a+b)/gamma(a)/gamma(b)*p**(a-1)*(1-p)**(b-1)
def main():
x = np.arange(0, 1, .01)
for a, b in [(1/3, 1), (1, 3), (10, 30), (2, 6), (20, 20), (4, 4), (2/3, 2/3), (2, 1), (1, 1)]:
plt.plot(x, beta(x, a, b), label=r'$\alpha=%.1f, \beta=%.1f$'%(a, b), lw=2)
plt.legend(loc='best', frameon=False)
plt.show()
if __name__ == '__main__':
main()
我们可视化Beta分布的概率密度,会发现它是一个百变星君(通过调节参数 α,β 可以观察Beta分布的各种形态),它可以是一个凹的、凸的、单调上升的、单调下降的;可以是曲线也可以是直线,而均匀分布其实是特殊的Beta分布 Beta(p|1,1) 。由于Beta分布能够拟合如此之多的形状,因此它在统计数据拟合和贝叶斯分析中被广泛应用。
Beta 与 Dirichlet 分布中的 α 的物理意义
n
个随机数的第
记 α=k,β=n−k+1 ,
再来看三维时的狄利克雷分布,场景为 n 个数中的第
记 α⃗ =(α1,α2,α3) , α1=k1,α2=k2,α3=n−k1−k2+1 ,
也即 α⃗ 在Dirchlet分布中的物理意义是事件的先验的伪计数;