概率学中的随机变量与分布

随机变量(Random Variables)

如果一个变量的值存在一个与之相关联的概率分布,则称该变量为“随机变量(Random Variable)”。数学上更严谨的定义如下:

设随机试验的样本空间为S={e}X=X(e)是定义在样本空间S上的实值单值函数,称X=X(e)为随机变量。

一个最常见的随机数例子就是扔硬币,例如可以记正面为1,反面为0。更复杂的情况是扔10次硬币,记录出现正面的次数,其值可以为0到9之间的整数。

通常可以将随机变量分为离散型随机变量(Discrete Random Variable)和连续型随机变量(Continuous Random Variable),它们的分布方式则对应为离散分布(Discrete Distribution)与连续分布(Continuous Distribution)。

对于离散型随机变量X而言,若要掌握它的统计规律,则必须且只需知道X的所有可能可能取值以及取每一个可能值的概率。在概率论中,是通过分布律来表现的。其公式可以记为:
$$P{X = X_k} = P_k, k = 1, 2, {\ldots}$$

最简单的分布律为(0-1)分布,扔硬币的案例就属于这种离散分布,它的随机变量要么为0,要么为1,各自的概率均为50%。

连续分布(Continuous Distribution)

对于连续型随机变量而言,可能的取值无法通过列举的方式展现;而且针对这样的随机变量,统计分析并不会针对某个具体随机变量出现的概率感兴趣,而是考虑某个随机变量区间,也即是说要研究随机变量所取的值落在一个区间的概率,这就引入了分布函数(Distribution Function)的概念。分布函数F(x)记作:
$$F(x) = P{X\leq x}, -\infty<x<\infty$$

分布函数完整地描述了随机变量的统计规律性,如果我们已知随机变量X的分布函数F(X),就知道X落在任一区间的概率。若以下公式成立,则称非负可积函数f(x)为概率密度函数(probability density function, pdf),而此时的X则为连续型随机变量。
$$F(x) = \int_{-{\infty}}^{x}f(t)dt$$

由于:
$$\int_{a}^{b}f(x) = F(b) - F(a)$$

所以,连续型随机变量的概率密度函数是其分布函数的导数,即:
f(x)=F'(x)

分布函数的公式牵涉到积分运算,可以简单地理解为:

若一个连续分布存在一个密度函数f,且h的值较小,则在x到x+h区间中值的概率约等于h*f(x)。

我们来看看均匀分布(Uniform Distribution)的概率密度函数。此时f(x)满足:

这个函数非常简单,随机变量X落到区间[a, b)的概率要么为0,要么为1/(b-a)。假设a=0,b=1,则Python实现该区间的概率密度函数为:

def uniform_pdf(x):
    return 1 if x >=0 and x < 1 else 0

如果h的值取值为0.1,实际上就相当于对[1, 0)取十等分。取其中一个区间[0.2, 0.3),则随机变量落在这个区间中的概率就为1/10,即P(x)=h*f(x),此时h为0.1, f(x)在[0.2, 0.3)区间返回1,故而P(x) = 0.1。

如果要获得随机变量小于或等于特定的某个数值的概率,即P(X<=x),则可以使用累加分布函数(cumulative distribution funciton, cdf)。例如前面例子中的均匀分布,实现cdf即为:

def uniform_cdf(x)
    if x < 0:    return 0
    elif x < 1:  return x
    else:        return 1

正态分布(Normal Distribution)

在连续型随机变量中,最重要的一种随机变量是具有钟形概率分布的随机变量。这种随机变量被称之为正态随机变量,对应的概率分布则被称之为正态分布(Normal Distribution)。正态分布是最重要的一种连续型分布,现实生活中有很多例子都满足正态分布的钟形曲线,例如人的身高,高个子和矮个子都是少数,中等身材的人居多;市场销售额,特别差的特别好都是少数,多数处于中间状态;学生在一个班级或年级中的成绩分布,同样如此。

正态分布的概率密度函数为:
$$ f(x | μ, σ) = \dfrac{1}{\sqrt{2π}σ}{e}^{-\dfrac{(x-μ)^2}{2σ^2}}$$

python对该函数的实现:

def normal_pdf(x, mu=0, sigma=1):
    sqrt_two_pi = math.sqrt(2 * math.pi)
    return (math.exp(-(x-mu) ** 2 / 2 / sigma ** 2) / (sqrt_two_pi * sigma))    

下图是正态分布的pdf可视化展现,其中μ代表mean值,σ代表standard deviation。

该图形非常直观地展现了随机变量的分布情况与μ和σ之间的关系。可以发现,σ的值决定了钟形曲线的宽度,σ值越大,曲线约宽。而μ值则决定了钟形曲线的中心所在。

当μ为0且σ为1时,该正态分布则被称之为标准正态分布(standard normal distribution)。此时,若用φ(x)表示概率密度函数,用Φ(x)表示分布函数。则公式为:
$$ φ(x) = \dfrac{1}{\sqrt{2π}}{e}^{-\dfrac{x^2}{2}}$$
$$Φ(x) = \int_{-{\infty}}^{x}φ(t)dt = \int_{-{\infty}}^{x} \dfrac{1}{\sqrt{2π}}{e}^{-\dfrac{t^2}{2}}dt $$

正态分布的cdf不是一个初等函数,在python中可以调用math库中的erf来实现。erf误差函数(error function),或者称之为Gauss error function。它的公式被定义为:
$$efr(x)= \dfrac{2}{\sqrtπ}\int_{0}^{x}{e}^{{-t}^2}dt$$

python实现的正态分布函数为:

def normal_cdf(x, mu=0, sigma=1):
    return (1 + math.erf((x - mu) / math.sqrt(2) / sigma)) / 2

对正态分布函数进行可视化:

def plot_normal_cdfs(plt):
    xs = [x / 10.0 for x in range(-50, 50)]
    plt.plot(xs,[normal_cdf(x,sigma=1) for x in xs],'-',label='mu=0,sigma=1')
    plt.plot(xs,[normal_cdf(x,sigma=2) for x in xs],'--',label='mu=0,sigma=2')
    plt.plot(xs,[normal_cdf(x,sigma=0.5) for x in xs],':',label='mu=0,sigma=0.5')
    plt.plot(xs,[normal_cdf(x,mu=-1) for x in xs],'-.',label='mu=-1,sigma=1')
    plt.legend(loc=4) # bottom right
    plt.show()

显示的图形为S形曲线(sigmoid shape),如下图所示:

中心极限定理(Central Limit Theorem)

正态分布之所以有用,主要的原因就在于中心极限定理。简单来讲,当样本数据的量足够大,且彼此之间相互独立,则样本均值X的分布接近正态分布,均值等于μ,而标准差等于$σ/\sqrt{n}$。

《概率论与数理统计》在介绍中心极限定理时写道:

在客观实际中有许多随机变量,它们是由大量的相互独立的随机因素的综合影响所形成的,其中每一个别因素在总的影响中所起的作用都是微小的。这种随机变量往往近似地服从正态分布。这种现象就是中心极限定理的客观背景。

事实上,中心极限定理并非只有一个,在统计学中,常常把证明其极限分布为正态分布的定理都统称为中心极限定理。最早的中心极限定理是在18世纪初由德莫佛证明的,即二项分布以正态分布为其极限分布的定理。前面介绍的中心极限定理则是19世纪20年代林德伯格和勒维证明的,即“在任意分布的总体中抽取样本,其样本均值的极限分布为正态分布”。

中心极限定理对于统计学而言意义深远,因为要从一个总体中收集所有的数据是很难操作或者不可行的,而基于中心极限定理,我们可以从总体中获取数据的子集,然后对这个样本进行统计分析,以得到总体的结论。从随机变量的角度来讲,我们要考虑的随机变量可以表示为很多个独立的随机变量之和。例如在物理实验中,测量误差是由许多观察不到的微小误差合成的,它们往往近似地服从正态分布。

因此,说正态分布为“分布之王(the king of distribution)”似乎也不为过;而中心极限定理也被许多人推认为是概率论中的首席定理。

参考资料

  • Joel Grus: Data Science from Scratch
  • 贾俊平等:统计学(第六版)
  • 盛骤等:概率论与数理统计(第四版)
  • Drew Conway: Machine Learning for Hackers
2015-10-22 10:1851数据科学