文中内容仅限技术学习与代码实践参考,市场存在不确定性,技术分析需谨慎验证,不构成任何投资建议。
50. 布朗运动 II
Q: 设BtB_tBt为一个布朗运动。求 B1>0B_1 > 0B1>0 且 B2<0B_2 < 0B2<0 的概率是多少?
A: 设 BtB_tBt 为标准布朗运动,需求 P(B1>0 且 B2<0)P(B_1 > 0 \text{ 且 } B_2 < 0)P(B1>0 且 B2<0) 的概率。
定义 X=B1X = B_1X=B1 和 Y=B2−B1Y = B_2 - B_1Y=B2−B1。由于布朗运动的性质,X∼N(0,1)X \sim \mathcal{N}(0, 1)X∼N(0,1) 和 Y∼N(0,1)Y \sim \mathcal{N}(0, 1)Y∼N(0,1),且 XXX 与 YYY 独立。事件 B1>0B_1 > 0B1>0 等价于 X>0X > 0X>0,事件 B2<0B_2 < 0B2<0 等价于 X+Y<0X + Y < 0X+Y<0。因此,需求概率为:
P(X>0,X+Y<0)=P(X>0,Y<−X). P(X > 0, X + Y < 0) = P(X > 0, Y < -X). P(X>0,X+Y<0)=P(X>0,Y<−X).
由于 XXX 和 YYY 独立,且 X>0X > 0X>0,该概率可表示为积分:
P=∫0∞ϕ(x)⋅P(Y<−x)dx=∫0∞ϕ(x)Φ(−x)dx, P = \int_{0}^{\infty} \phi(x) \cdot P(Y < -x) dx = \int_{0}^{\infty} \phi(x) \Phi(-x) dx, P=∫0∞ϕ(x)⋅P(Y<−x)dx=∫0∞ϕ(x)Φ(−x)dx,
其中 ϕ(x)=12πe−x2/2\phi(x) = \frac{1}{\sqrt{2\pi}} e^{-x^2/2}ϕ(x)=2π1e−x2/2 为标准正态密度函数,Φ(x)\Phi(x)Φ(x) 为标准正态累积分布函数。由正态分布的对称性,Φ(−x)=1−Φ(x)\Phi(-x) = 1 - \Phi(x)Φ(−x)=1−Φ(x),代入得:
P=∫0∞ϕ(x)[1−Φ(x)]dx=∫0∞ϕ(x)dx−∫0∞ϕ(x)Φ(x)dx. P = \int_{0}^{\infty} \phi(x) [1 - \Phi(x)] dx = \int_{0}^{\infty} \phi(x) dx - \int_{0}^{\infty} \phi(x) \Phi(x) dx. P=∫0∞ϕ(x)[1−Φ(x)]dx=∫0∞ϕ(x)dx−∫0∞ϕ(x)Φ(x)dx.
第一项积分:
∫0∞ϕ(x)dx=12, \int_{0}^{\infty} \phi(x) dx = \frac{1}{2}, ∫0∞ϕ(x)dx=21,
因为正态分布关于原点对称。
第二项积分通过变量代换计算:令 u=Φ(x)u = \Phi(x)u=Φ(x),则 du=ϕ(x)dxdu = \phi(x) dxdu=ϕ(x)dx。当 x=0x = 0x=0 时,u=Φ(0)=0.5u = \Phi(0) = 0.5u=Φ(0)=0.5;当 x→∞x \to \inftyx→∞ 时,u→1u \to 1u→1。因此:
∫0∞ϕ(x)Φ(x)dx=∫0.51udu=[u22]0.51=12(1)2−12(0.5)2=12−18=38. \int_{0}^{\infty} \phi(x) \Phi(x) dx = \int_{0.5}^{1} u du = \left[ \frac{u^2}{2} \right]_{0.5}^{1} = \frac{1}{2} (1)^2 - \frac{1}{2} (0.5)^2 = \frac{1}{2} - \frac{1}{8} = \frac{3}{8}. ∫0∞ϕ(x)Φ(x)dx=∫0.51udu=[2u2]0.51=21(1)2−21(0.5)2=21−81=83.
代入原式:
P=12−38=48−38=18. P = \frac{1}{2} - \frac{3}{8} = \frac{4}{8} - \frac{3}{8} = \frac{1}{8}. P=21−83=84−83=81.
为验证,考虑联合事件:
- A={B1>0,B2>0}A = \{B_1 > 0, B_2 > 0\}A={B1>0,B2>0},概率为 P(A)=38P(A) = \frac{3}{8}P(A)=83;
- B={B1>0,B2<0}B = \{B_1 > 0, B_2 < 0\}B={B1>0,B2<0},概率为 P(B)=18P(B) = \frac{1}{8}P(B)=81;
- C={B1<0,B2>0}C = \{B_1 < 0, B_2 > 0\}C={B1<0,B2>0},概率为 P(C)=18P(C) = \frac{1}{8}P(C)=81;
- D={B1<0,B2<0}D = \{B_1 < 0, B_2 < 0\}D={B1<0,B2<0},概率为 P(D)=38P(D) = \frac{3}{8}P(D)=83.
总和为 38+18+18+38=1\frac{3}{8} + \frac{1}{8} + \frac{1}{8} + \frac{3}{8} = 183+81+81+83=1,符合概率公理,且对称性一致。
因此,所求概率为:
18 \boxed{\dfrac{1}{8}} 81
Python 实现
以下是通过Python计算布朗运动事件 B1>0B_1 > 0B1>0 且 B2<0B_2 < 0B2<0 概率的实现:
import numpy as np
def calculate_brownian_probability(num_samples: int) -> float:
"""计算布朗运动中事件 B₁ > 0 且 B₂ < 0 的概率
根据布朗运动性质:
- B₁ ~ N(0, 1)
- B₂ - B₁ ~ N(0, 1) 且独立于B₁
事件条件等价于:
- B₁ > 0
- B₂ = B₁ + (B₂ - B₁) < 0
Args:
num_samples (int): 蒙特卡洛模拟的样本数量
Returns:
float: 事件概率的估计值
"""
# 生成B₁的样本 (时间点t=1的值)
b1_samples = np.random.normal(loc=0.0, scale=1.0, size=num_samples)
# 生成独立增量 B₂ - B₁ (时间区间[1,2]的变化)
increments = np.random.normal(loc=0.0, scale=1.0, size=num_samples)
# 计算B₂的值: B₂ = B₁ + (B₂ - B₁)
b2_samples = b1_samples + increments
# 筛选同时满足两个条件的样本:
# 1. B₁ > 0
# 2. B₂ < 0
condition_1 = b1_samples > 0
condition_2 = b2_samples < 0
valid_samples = np.logical_and(condition_1, condition_2)
# 计算概率 = 满足条件的样本数 / 总样本数
probability = np.sum(valid_samples) / num_samples
return probability
# 设置样本数量(增加样本量可提高精度)
NUM_SAMPLES = 10**6
# 计算概率估计值
prob_estimate = calculate_brownian_probability(NUM_SAMPLES)
# 输出结果(理论值为1/8=0.125)
print(f"理论概率: 0.125")
print(f"蒙特卡洛估计 ({NUM_SAMPLES} 次模拟): {prob_estimate:.6f}")
print(f"绝对误差: {abs(prob_estimate - 0.125):.6f}")
代码说明
-
数学原理:
- 利用布朗运动的独立增量性质:
- B1∼N(0,1)B_1 \sim \mathcal{N}(0, 1)B1∼N(0,1)
- B2−B1∼N(0,1)B_2 - B_1 \sim \mathcal{N}(0, 1)B2−B1∼N(0,1) 且与 B1B_1B1 独立
- 事件条件等价于:
- B1>0B_1 > 0B1>0
- B1+(B2−B1)<0B_1 + (B_2 - B_1) < 0B1+(B2−B1)<0
- 利用布朗运动的独立增量性质:
-
蒙特卡洛模拟:
- 生成两组独立的标准正态随机变量
- 向量化计算效率优于循环
- 使用逻辑与运算同时检测两个条件
输出:
理论概率: 0.125
蒙特卡洛估计 (1000000 次模拟): 0.124731
绝对误差: 0.000269
注意事项
- 样本量
num_samples
越大,估计精度越高(误差按 O(1/N)O(1/\sqrt{N})O(1/N) 收敛) - 理论值为 18=0.125\frac{1}{8} = 0.12581=0.125(通过布朗运动性质推导)
- 实际运行时可通过增加样本量获得更高精度
这道面试题的本质是考察候选人对随机过程核心性质的理解深度和将金融场景抽象为概率模型的能力,这类能力直接对应量化金融中的衍生品定价、风险因子建模和算法交易系统的开发需求。
🔑 核心知识点
-
布朗运动性质
- 独立增量性:Bt−Bs⊥FsB_t - B_s \perp \mathcal{F}_sBt−Bs⊥Fs
- 正态分布:Bt∼N(0,t)B_t \sim \mathcal{N}(0, t)Bt∼N(0,t)
- 路径连续性:BtB_tBt 的样本路径连续(隐含穿越零点特性)
-
联合事件分解
- 关键转换:B2=B1+(B2−B1)B_2 = B_1 + (B_2 - B_1)B2=B1+(B2−B1),利用增量独立性
- 边界条件:B1>0B_1 > 0B1>0 且 B1+Y<0B_1 + Y < 0B1+Y<0(其中 Y=B2−B1∼N(0,1)Y = B_2 - B_1 \sim \mathcal{N}(0,1)Y=B2−B1∼N(0,1))
-
数值方法实现
- 蒙特卡洛模拟:通过独立正态采样验证理论值
- 向量化计算:高效处理大规模样本(如
np.logical_and
)
📊 面试评估维度
考察维度 | 具体表现要求 | 本题对应点 |
---|---|---|
理论基础 | 掌握随机过程核心性质 | 能否正确应用布朗运动的独立增量性和正态分布特性 |
建模能力 | 将金融场景转化为数学模型 | 将价格路径事件 B1>0∩B2<0B_1>0 \cap B_2<0B1>0∩B2<0 分解为独立随机变量的联合分布问题 |
计算实现 | 理论解与数值解的互验能力 | 解析推导 P=18P=\frac{1}{8}P=81 并实现蒙特卡洛模拟验证 |
边界认知 | 理解路径依赖的敏感性 | 识别事件隐含价格从正到负的穿越行为(与障碍期权定价相关) |
🧩 典型回答框架
-
理论推导层
步骤1:定义增量X=B1, Y=B2−B1步骤2:建立概率P(X>0,X+Y<0)步骤3:双重积分∫0∞ϕ(x)Φ(−x)dx步骤4:对称性Φ(−x)=1−Φ(x)步骤5:计算结果12−38=18 \begin{align*} \text{步骤1:定义增量} \quad & X=B_1, \ Y=B_2-B_1 \\ \text{步骤2:建立概率} \quad & P(X>0, X+Y<0) \\ \text{步骤3:双重积分} \quad & \int_{0}^{\infty} \phi(x) \Phi(-x) dx \\ \text{步骤4:对称性} \quad & \Phi(-x)=1-\Phi(x) \\ \text{步骤5:计算结果} \quad & \frac{1}{2} - \frac{3}{8} = \frac{1}{8} \end{align*} 步骤1:定义增量步骤2:建立概率步骤3:双重积分步骤4:对称性步骤5:计算结果X=B1, Y=B2−B1P(X>0,X+Y<0)∫0∞ϕ(x)Φ(−x)dxΦ(−x)=1−Φ(x)21−83=81
-
数值验证层
# 伪代码逻辑 Generate X ~ N(0,1) # B1 Generate Y ~ N(0,1) # B2-B1 (独立于X) B2 = X + Y Count = 0 if X > 0 and B2 < 0: Count += 1 Probability = Count / N
💡 核心洞察
-
穿透性风险建模:
事件 B1>0∩B2<0B_1>0 \cap B_2<0B1>0∩B2<0 本质描述价格在 [1,2][1,2][1,2] 时段内穿透零轴,这与障碍期权(Barrier Option)中"触碰失效"条款的定价逻辑高度相关。 -
独立增量的工程意义:
代码中必须严格保证 B1B_1B1 与 B2−B1B_2-B_1B2−B1 的采样独立性——若错误使用 B2∼N(0,2)B_2 \sim \mathcal{N}(0,2)B2∼N(0,2) 直接采样,将破坏路径结构,导致计算结果失真。 -
模型可扩展性:
本题解法可推广至多期路径约束问题(如 B1>0,B2>0,B3<0B_1>0, B_2>0, B_3<0B1>0,B2>0,B3<0),这是信用风险模型中违约路径模拟的简化原型。
风险提示与免责声明
本文内容基于公开信息研究整理,不构成任何形式的投资建议。历史表现不应作为未来收益保证,市场存在不可预见的波动风险。投资者需结合自身财务状况及风险承受能力独立决策,并自行承担交易结果。作者及发布方不对任何依据本文操作导致的损失承担法律责任。市场有风险,投资须谨慎。