技术背景
统计力学是一门通过粒子的纯粹微观量来表示系统宏观量的学科,从统计分布出发,用无偏/有偏估计来研究各种不同的系综。本文内容部分参考自郑伟谋老师所著《统计力学导引》,主要介绍其中概率论基础的部分。但因为大多是个人的理解,如有差错,与参考文献作者无关。
事件与概率
假定我们抛一枚质地未知的硬币,正面事件记为A,反面事件记为B。那么经过多次的测试,可以得到一个统计概率:P(A)=nAN,P(B)=nBN。这里就可以有一些基本性的结论:
P(A)≥0,P(B)≥0P(A)+P(B)=1
因为这里面事件A和事件B是互斥事件(发生A的同时不可能发生B),那么发生A或B的概率就可以表示为:
P(A∨B)=nA+nBN=P(A)+P(B)
以上就是概率函数的3个基本特性。假如在此基础上,再进行一轮测试,那么此时得到A的概率为:
P(A)=n(1)A+n(2)AN1+N2
由于样本数的不一致,这里有:
P1(A)+P2(A)=n(1)AN1+n(2)AN2P(A)=P1(A)N1N1+N2+P2(A)N2N1+N2
也就是说,如果要获取多份样本中的同一个事件的总概率,需要依照样本数做一个加权平均。
条件概率
如果问题变得更加复杂一些,我们一次抛2个硬币,并且记1号硬币正面朝上为事件A,反面朝上为事件B,2号硬币正面朝上为事件C,反面朝上为事件D。那么类似的有P(C)=nCN,P(D)=nDN,这是对2号硬币的结果的概率统计。此时如果我们去统计一个联合概率,1号硬币正面朝上2号硬币也正面朝上的概率为:
P(A∧C)=nA∧CN=nANnA∧CnA=P(A)P(C|A)
其中P(C|A)表示事件A发生的条件下,事件C发生的概率,是一个条件概率。
同样在这个案例中,因为事件C发生的概率为nCN,因此在nA的样本数下,事件C发生的频次的期望值为nA∧C=nCNnA,因此有:
P(A∧C)=nANnA∧CnA=nANnCN=P(A)P(C)
贝叶斯定理
满足这种条件的事件A和C,又称为独立事件。并由此可以得到贝叶斯(Bayes)定理:
P(A|C)P(C)=P(C|A)P(A)
或者写为这种更加常见的形式:
P(A|C)=P(C|A)P(A)P(C)
还是在这个案例中,因为我们知道第一个硬币正面朝上(事件A)的条件下,对应的第二个硬币,要么正面朝上(事件C),要么反面朝上(事件D),而事件A的概率可以表示为两个条件概率的加和:
P(A)=P(A|C)+P(A|D)
该公式又称为边际分布。
累积分布函数
如果我们随机投一个骰子,它朝上的一面对应的值,有可能是整数1~6之间的一个。因为在投之前,我们并不知道会出现什么数字朝上,因此我们将朝上的数字定义为一个随机变量X。对于一个随机变量X而言,其分布函数被定义为:
F(x)=P(X≤x)
表示的是X取值不大于x的概率,例如,开小的概率为F(3)=P(X≤3)=12,开大的概率为F(6)−F(3)=P(X≤6)−P(X≤3)=12。其导数f(x)=F′(x)为概率密度函数。累积分布函数有如下的一些特性:
累积分布函数是有界的:limx→−∞F(x)=0,limx→+∞F(x)=1。
累积分布函数具有单调性:F(x1)≤F(X2),x1≤x2。
P(x1<x≤x2)=F(x2)−F(X1)。
当我们写出上面这个式子时,我们应当注意到,这是一个左开右闭的区间。其实也容易理解,比如狄拉克函数的积分在x=x0处有一个突跃的位置,那么比较显然的是,Fx→x−0(x)=0,Fx=x0(x)=1,Fx→x+0(x)=1。更一般的,我们可以理解其为右连续的累积分布函数:limx→x+0F(x)=F(x0)。
如果考虑一个离散情形的概率密度函数,有:
f(x)Δx=P(x≤X≤x+Δx)
分布函数唯一地决定随机变量的全部数字特征。
对于这个投骰子的问题,虽然我们没办法知道下一次会投出什么数字来,但是我们可以计算出出现的数字的平均值,或者叫期望值:
E(X)=1∗P(X=1)+2∗P(X=2)+...+6∗P(X=6)=16+26+...+66=72
也就是说,最终得到的点数的平均值应该为3.5
。那么假如对于这个随机变量,有一个函数Y=h(X),那么关于Y的期望值为:
E(Y)=E(h(X))=h(1)P(X=1)+h(2)P(X=2)+...+h(6)P(X=6)
对于连续型的随机变量来说,期望值可以写为:
μ(X)=E(X)=∫∞−∞xf(x)dx
带函数的期望值可以写为:E(h(x))=∫∞−∞h(x)f(x)dx,例如X的γ阶绝对矩为:
Mγ(X)=E(|X|γ)=∫∞−∞|X|γf(x)dx
此时要回顾起一个跟期望值/平均值息息相关的函数:方差函数。在概率论中,方差被定义为:
σ2(X)=E[(X−E(X))2]=E[X2−2E(X)X+E(X)2]=E(X2)−2[E(X)]2+[E(X)]2=M2(X)−[μ(X)]2=∫∞−∞(x−μ)2f(x)dx
有了方差,自然就有了标准差:
σ(X)=√M2(X)−[μ(X)]2
如果是多变量情形,我们还可以定义一个协方差(Covariance)用于衡量两个变量之间的总体偏差:
Cov(X,Y)=E{[X−E(X)][Y−E(Y)]}=E[XY−YE(X)−XE(Y)+E(X)E(Y)]=E(XY)−E(X)E(Y)
需要注意的是,协方差可以用于计算一维的随机变量X,Y,也可以用于计算高维的随机变量X,Y。我们可以想象出来,对于一个shape为(n,)的随机变量X而言,对其计算期望值E(X),得到的结果也是(n,)的shape。如果给定的是两个高维的随机变量X,Y,假设其shape分别为(n,)和(m,),那么得到的期望值E(XY)的结果shape为(n,m)。类似的,E(X)E(Y)的结果shape也是(n,m)。这样一来,协方差Cov(X,Y)的结果shape也是(n,m)。
母函数
母函数,又称生成函数(Generating function),是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息。例如我们有可能得到这样的一个母函数:
g(x)=2x1+3x4
这个形式的母函数表示,事件1发生的概率为22+3=25,事件4有可能发生的概率为35。具体的母函数构造方法是这样的,还是以抛硬币为例子。假设硬币正面朝上为事件A,硬币反面朝上为事件B,那么可以这样构造一个母函数:
g(x)=P(A)+xP(B),P(A)+P(B)=1
这里面x只是一个形参,没有具体含义。那么如果我们抛两次硬币,得到的母函数形式为:
g(x)=[P(A)+xP(B)][P(A)+xP(B)]=x0P(A)2+2x1P(A)P(B)+x2P(B)
写成这个形式之后,就可以分别获得三个不同事件的概率。事件0:两次都是正面朝上,概率为P(0)=P(A)2,事件1:一次正面朝上一次反面朝上,概率为P(1)=2P(A)P(B),事件2:两次都是反面朝上,概率为P(2)=P(B)2。那么假设投的是一块质地均匀的硬币,这样我们得到的三个事件的概率分别为:
P(0)=14,P(1)=12,P(2)=14
这里事件1记录的是一个无序事件,如果要记录为有序事件,即第一次正面朝上、第二次反面朝上和第一次反面朝上、第二次正面朝上为不同事件的话,那表示方法又会有所不同。母函数更多的用于记录可能出现的组合的数量,也就是无序事件的场景用的会更多一些。
总结概要
本文的主要内容是一些统计力学中的基础的概率论知识,如密度函数、分布函数和贝叶斯定理的一些基本概念,主要作为一个简单的知识内容记录和分享。