
尺度函数是什么:从定义到常见性质的入门讲解
“尺度函数”在不同数学领域有不同含义:小波分析中,它通常指生成多尺度逼近空间的尺度函数;一维随机过程理论中,它常指描述扩散过程向左、向右到达边界倾向的函数。本文讨论后者,也就是一维扩散过程的尺度函数。两种概念不能混为一谈。
尺度函数的实用价值,在于把一个连续时间随机过程的部分边界问题化成函数值之比。例如,已知扩散过程从区间内部某点出发,可以用尺度函数计算它先碰到左边界还是右边界的概率。这个结论有严格的模型条件,不是对任意随机过程都成立。
一、先从问题出发:过程会先碰到哪一边?
设随机过程 Xt 在实数轴某个区间内连续运动,研究它从 x 出发,先到达 a 还是 b 的概率,其中 a < x < b。把首次到达边界的时间记作:
T_a = inf{t ≥ 0 : X_t = a}
T_b = inf{t ≥ 0 : X_t = b}
直观上,如果过程更容易向右移动,那么先到达 b 的概率会增大。尺度函数把这种方向倾向编码进一个单调递增的函数 s(x)。在适当条件下,答案是:
P_x(T_b < T_a) = [s(x) - s(a)] / [s(b) - s(a)]
这里 P_x 表示过程从 X_0 = x 出发的概率。若过程连续且首次离开区间时必定到达某个端点,那么“先到 b”与“在 a 前到 b”对应上述事件。若边界可能不可达、过程可能在区间内无限停留,或过程有跳跃,就不能未经检查直接套用公式。
二、定义:怎样从随机微分方程得到尺度函数?
考虑一维 Itô 扩散过程:
dX_t = μ(X_t) dt + σ(X_t) dW_t
其中 W_t 是标准布朗运动,μ(x) 是漂移系数,σ(x) 是扩散系数。在系数足够规则且区间内部 σ(x) ≠ 0 的前提下,其生成算子为:
L f(x) = μ(x) f'(x) + ½ σ²(x) f''(x)
尺度函数 s 满足调和方程:
L s(x) = 0
也就是说:
μ(x) s'(x) + ½ σ²(x) s''(x) = 0
令尺度密度为 p(x) = s'(x),将方程改写为一阶方程,可以得到常用表达式:
p(x) = exp(-∫[x₀ 到 x] 2μ(y) / σ²(y) dy)
s(x) = ∫[x₀ 到 x] p(z) dz
x₀ 是任意选定的参考点。更一般地,尺度函数可乘以任意正数,也可加上常数。因此,不同教材或程序采用的尺度函数可能整体平移或按正比例缩放,但只要采用同一个尺度函数计算,击中概率公式中的比例不变。
“尺度函数”在这里不是把输入变量简单地放大或缩小,也不是机器学习中的特征归一化。它是一种由扩散过程的漂移与波动共同决定的函数,通常以单调递增的形式来使用。
三、常见性质
1. 单调递增
由定义,尺度密度通常取正值,所以 s'(x) > 0,尺度函数严格递增。它把状态空间的区间长度重新表达为“尺度长度”。若过程向右漂移,单位普通距离对应的尺度增量会改变;因此尺度坐标并不等同于物理距离。
2. 满足生成算子的调和方程
L s = 0 是尺度函数构造的核心条件。在边界问题中,这使得击中概率可表示为尺度函数的线性插值。直观地说,随机过程在尺度坐标下不再体现原先的漂移偏向;这是一种关于生成算子的描述,不意味着原始过程变成了标准布朗运动。
3. 仿射变换不改变击中概率
如果 s 是尺度函数,那么 c₁s+c₂ 在 c₁ > 0 时也是尺度函数。代入击中概率公式后,常数项抵消,正比例因子也约掉。这就是尺度函数“只在正仿射变换意义下唯一”的原因。若选择负比例,函数会变为递减,公式的方向和符号须一并调整,初学时应使用递增约定以免出错。
4. 还可用于分析边界是否可达
尺度函数是边界分类的重要组成部分,但单靠尺度函数通常不足以判断边界性质。对一维扩散过程,边界是否可达、是否能从边界进入,以及过程是否会在有限时间内到达边界,还要结合速度测度或相应的可积性条件分析。不同教材对端点分类的表述可能略有差异,实际使用应核对所采用的定义和假设。
四、例子:带常数漂移的布朗运动
考虑:
dX_t = μ dt + σ dW_t
其中 μ 和 σ 为常数,且 σ ≠ 0。其尺度密度正比于:
s'(x) = exp(-2μx / σ²)
当 μ ≠ 0 时,可以选取:
s(x) = 1 - exp(-2μx / σ²)
当 μ = 0 时,可选 s(x) = x。若从 x 出发,在有限区间 (a, b) 内先到右端点的概率为:
P_x(T_b < T_a) =
[s(x) - s(a)] / [s(b) - s(a)]
在零漂移情形下,这就化为熟悉的线性概率 (x-a)/(b-a)。存在正漂移时,过程倾向右行,先到达右边界的概率相应增大。
五、可运行的 Python 示例
下面的程序仅使用 Python 标准库,以复合梯形法数值计算尺度函数积分,并计算区间两端的击中概率。示例取 μ = 0.5、σ = 1、a = 0、x = 1、b = 2。运行后会输出概率近似值;有限步长下结果有数值积分误差。
import math
def scale_density(y, mu, sigma):
"""采用参考点 0 的尺度密度。要求 sigma != 0。"""
if sigma == 0:
raise ValueError("sigma 必须非零")
return math.exp(-2.0 * mu * y / (sigma * sigma))
def scale_value(x, mu, sigma, steps=10000):
"""用复合梯形法计算 s(x) = ∫_0^x scale_density(y) dy。"""
if steps <= 0:
raise ValueError("steps 必须是正整数")
if sigma == 0:
raise ValueError("sigma 必须非零")
h = x / steps
total = 0.5 * (
scale_density(0.0, mu, sigma)
+ scale_density(x, mu, sigma)
)
for i in range(1, steps):
total += scale_density(i * h, mu, sigma)
return total * h
def probability_hit_right(a, x, b, mu, sigma, steps=10000):
"""计算从 x 出发、在 a 之前先到 b 的概率。"""
if not a < x < b:
raise ValueError("必须满足 a < x < b")
if sigma == 0:
raise ValueError("sigma 必须非零")
sa = scale_value(a, mu, sigma, steps)
sx = scale_value(x, mu, sigma, steps)
sb = scale_value(b, mu, sigma, steps)
denominator = sb - sa
if denominator == 0:
raise ArithmeticError("尺度函数差值为零,无法计算概率")
return (sx - sa) / denominator
if __name__ == "__main__":
mu = 0.5
sigma = 1.0
a, x, b = 0.0, 1.0, 2.0
probability = probability_hit_right(a, x, b, mu, sigma)
print(f"P_x(T_b < T_a) ≈ {probability:.6f}")
这里用参考点 0 定义尺度函数,并不要求 0 必须位于研究区间内;这是一个积分归一化选择。程序假设常数漂移、常数扩散系数,不能直接拿来计算系数随位置变化的过程。对于极大的参数或很宽的区间,指数可能溢出或下溢;严谨的数值实现需要采用对数计算、区间分段或专门的数值方法。
六、适用场景与不适用边界
适用场景
- 一维扩散的边界击中概率:在满足条件时,直接计算过程从区间内部先到达哪一端的概率。
- 生灭与风险模型:在经验证适合用连续一维扩散近似的模型中,分析过程触及阈值的可能性。例如把状态量近似为扩散过程后,估算达到上下限的概率。
- 边界分类:配合速度测度等工具,研究端点是否可达及扩散过程在端点附近的行为。
- 理论分析与模型检查:通过生成算子方程检查候选函数,或用于构造一维边值问题的解。
应用于实际系统时,首先要判断连续扩散近似是否合理。若原过程有明显离散跳跃、多个状态维度、记忆效应或强烈的时间非齐次性,简单的一维齐次扩散模型可能无法描述关键行为。
关键限制
- 通常是针对一维问题。多维扩散的边界击中问题一般没有同样简单的单变量公式。
- 公式依赖模型假设。前述推导针对扩散型过程;有跳跃时,过程可能越过端点而不在端点停留,击中公式不能照搬。
- 系数与边界需满足条件。尺度密度表达式需要对
2μ/σ²积分有意义。若σ在区间内部为零,或系数不满足相应正则性,需重新分析,不能机械代入。 - 边界是否能到达是另一问题。公式给出的概率可能是在边界确实按所需方式可达、或有关事件定义良好的前提下成立。对无界区间或不可达端点,要单独检查极限和边界分类。
- 有限区间结论不能自动外推到无限区间。端点趋于无穷时,尺度函数可能收敛到有限值,也可能发散,需计算相应极限。
七、常见错误
错误一:把尺度函数当作概率
s(x) 的取值不必位于 [0, 1],它也不是概率密度。只有在适用条件下,经过端点差值归一化,才得到击中概率。
错误二:漏掉生成算子中的二分之一
对 Itô 方程 dX_t = μdt + σdW_t,生成算子中的二阶导数项是 ½σ²f''。因此指数中出现的是 2μ/σ²,不是 μ/σ²。不同随机微分方程约定可能写法不同,使用公式前应先确认扩散系数和生成算子的定义。
错误三:只看漂移,忽略波动强度
尺度密度取决于漂移与扩散强度的比值。即使漂移相同,波动强度不同,边界击中概率也会不同。不能仅凭“平均方向向右”就判断某个阈值必然更容易到达。
错误四:混用不同归一化结果
即便两处代码分别计算了合法的尺度函数,如果参考点或归一化不同,也不能把一处的 s(x) 和另一处的 s(a) 拼在同一个比值里。计算分子、分母时必须使用同一套函数定义。
错误五:把击中概率当作安全保证
尺度函数可以帮助评估模型下的阈值到达概率,但不是安全机制、访问控制、故障保护或风险担保。它给出的结论依赖模型设定、参数估计和数值计算;模型之外的故障、数据偏差和突发事件都可能使实际风险不同。若用于安全关键系统,应以经验证的模型为基础,并结合独立的工程保护、监测和风险评估,不能单靠一个概率公式作保证。
八、上手时的检查清单
- 确认研究对象是一维扩散,明确随机微分方程和生成算子约定。
- 检查系数的正则性,并确认区间内部的扩散系数不会使尺度密度失效。
- 选定同一套尺度函数归一化方式,确保函数递增。
- 明确所求事件是先到达哪个边界,并核对公式分子、分母的方向。
- 检查边界可达性、无限区间极限和模型近似是否合理。
- 若用数值积分,检查步长、指数溢出和结果是否落在概率范围内;异常结果应促使排查模型与数值方法,而不是直接截断为 0 或 1。
总的来说,一维扩散过程的尺度函数把漂移和随机波动综合编码为一个递增坐标。它最常见的入门用途,是将有限区间内的先到达概率写成尺度函数差值之比。记住它不是概率本身,也不是通用边界公式;只有在模型、系数与边界条件经过核对后,计算结果才有明确含义。



