正态分布函数(也称为概率密度函数,PDF)的原函数,也就是累积分布函数(CDF),其计算过程相对复杂,因为正态分布的概率密度函数涉及一个无法用初等函数表示的积分。
我们先回顾一下正态分布的概率密度函数(PDF)。对于一个均值为 $mu$、标准差为 $sigma$ 的正态分布,$X sim N(mu, sigma^2)$,其概率密度函数为:
$f(x) = frac{1}{sigma sqrt{2pi}} e^{frac{1}{2}(frac{xmu}{sigma})^2}$
累积分布函数(CDF)定义为概率密度函数从负无穷大到某个值 $x$ 的积分:
$F(x) = P(X le x) = int_{infty}^{x} f(t) dt = int_{infty}^{x} frac{1}{sigma sqrt{2pi}} e^{frac{1}{2}(frac{tmu}{sigma})^2} dt$
为什么它无法用初等函数表示?
这个积分的核心在于 $e^{t^2}$ 的积分。这个积分被称为误差函数(Error Function),它没有一个初等函数(如多项式、指数函数、对数函数、三角函数及其反函数等)的原函数。
如何计算这个积分?
虽然我们无法找到一个简单的初等函数来表示这个原函数,但我们可以通过以下几种方式来“求”或“表示”它:
1. 标准化(Standardization)
这是最常见的处理方法。我们可以将任意正态分布标准化为标准正态分布 $N(0, 1)$。标准正态分布的均值为 0,标准差为 1。其概率密度函数为:
$phi(z) = frac{1}{sqrt{2pi}} e^{frac{1}{2}z^2}$
它的累积分布函数用 $Phi(z)$ 表示:
$Phi(z) = int_{infty}^{z} frac{1}{sqrt{2pi}} e^{frac{1}{2}t^2} dt$
标准化过程:
我们可以通过一个变量替换将任意正态分布的 CDF 转化为标准正态分布的 CDF。设 $Z = frac{X mu}{sigma}$。如果 $X sim N(mu, sigma^2)$,那么 $Z sim N(0, 1)$。
因此,对于任意正态分布 $X$ 的 CDF $F(x)$,我们可以写成:
$F(x) = P(X le x) = Pleft(frac{X mu}{sigma} le frac{x mu}{sigma}
ight) = Pleft(Z le frac{x mu}{sigma}
ight)$
其中 $Z$ 是标准正态随机变量。
所以,$F(x) = Phileft(frac{x mu}{sigma}
ight)$。
这意味着,任何正态分布的累积分布函数都可以用标准正态分布的累积分布函数来表示。 因此,求解任意正态分布的 CDF 就转化为了求解标准正态分布的 CDF。
2. 误差函数(Error Function)的定义
前面提到,标准正态分布的 CDF 与误差函数密切相关。误差函数(erf)定义为:
$ ext{erf}(x) = frac{2}{sqrt{pi}} int_{0}^{x} e^{t^2} dt$
而标准正态分布的累积分布函数 $Phi(z)$ 与误差函数的关系是:
$Phi(z) = frac{1}{2}left[1 + ext{erf}left(frac{z}{sqrt{2}}
ight)
ight]$
将这个关系代入 $F(x) = Phileft(frac{x mu}{sigma}
ight)$,我们得到:
$F(x) = frac{1}{2}left[1 + ext{erf}left(frac{frac{x mu}{sigma}}{sqrt{2}}
ight)
ight] = frac{1}{2}left[1 + ext{erf}left(frac{x mu}{sigmasqrt{2}}
ight)
ight]$
这里的 `erf` 函数是特殊函数,它本身是通过积分定义的,我们无法得到一个更简单的初等函数形式。
3. 如何获得误差函数(或标准正态 CDF)的值?
由于误差函数没有初等函数形式,我们在实际应用中需要通过以下方式获取其值:
查表(Statistical Tables): 在统计学和数学中,有大量的表格提供了标准正态分布累积概率($Phi(z)$ 值)或误差函数值,对应不同的 $z$ 值。
数值计算方法(Numerical Methods):
泰勒级数展开(Taylor Series Expansion): 可以对 $e^{t^2}$ 进行泰勒级数展开,然后逐项积分。
$e^u = 1 + u + frac{u^2}{2!} + frac{u^3}{3!} + dots$
令 $u = frac{t^2}{2}$,则 $e^{frac{t^2}{2}} = 1 frac{t^2}{2} + frac{(frac{t^2}{2})^2}{2!} + frac{(frac{t^2}{2})^3}{3!} + dots = 1 frac{t^2}{2} + frac{t^4}{8} frac{t^6}{48} + dots$
然后对这个级数进行积分:
$int_{0}^{z} e^{frac{t^2}{2}} dt = int_{0}^{z} left(1 frac{t^2}{2} + frac{t^4}{8} dots
ight) dt = z frac{z^3}{6} + frac{z^5}{40} dots$
$Phi(z) = frac{1}{sqrt{2pi}} int_{0}^{z} e^{frac{t^2}{2}} dt approx frac{1}{sqrt{2pi}} left(z frac{z^3}{6} + frac{z^5}{40} dots
ight)$
虽然泰勒级数可以提供任意精度的近似值,但它在远离展开点时收敛速度会变慢。
其他数值积分方法: 如辛普森法则(Simpson's Rule)、梯形法则(Trapezoidal Rule)等,都可以用来近似计算这个积分。
专门的数值算法: 许多数学库(如 Python 的 SciPy, NumPy, R 的内置函数)都实现了高效且精确的算法来计算误差函数或标准正态 CDF。这些算法通常结合了多项式逼近、有理函数逼近或积分方程的数值解法。
软件和计算器: 大多数统计软件、科学计算器和编程语言的数学库都内置了计算标准正态累积分布函数(或误差函数)的功能。例如,在 Python 中,你可以使用 `scipy.stats.norm.cdf(x, loc=mu, scale=sigma)` 来计算正态分布的 CDF。
总结:
正态分布函数的原函数(累积分布函数 CDF)的精确形式是一个无法用初等函数表示的积分。
我们通常通过以下方式来处理它:
1. 标准化: 将任意正态分布 $N(mu, sigma^2)$ 的 CDF 转换为标准正态分布 $N(0, 1)$ 的 CDF,记为 $Phi(z)$。
2. 关联误差函数: 标准正态 CDF $Phi(z)$ 可以通过误差函数 $ ext{erf}(x)$ 来表示:$Phi(z) = frac{1}{2}left[1 + ext{erf}left(frac{z}{sqrt{2}}
ight)
ight]$。
3. 实际计算: 我们依赖数值计算方法、数学库函数或统计表来获取具体数值。
所以,虽然我们不能写出一个像 $x^2$ 或 $sin(x)$ 那样简单的初等函数形式的原函数,但我们有非常成熟的方法来计算和表示它,并且在实际应用中,这些方法是足够精确和高效的。