第 23 章 随机过程:马尔可夫链与泊松过程
本章对应 Wasserman 原书第 23 章《Probability Redux: Stochastic Processes》。全书大部分内容处理 IID 数据,本章转向相依的随机变量序列,介绍两类最基本的随机过程:离散时间马尔可夫链和泊松过程。对量化交易,马尔可夫链是市场状态(regime)模型、信用评级迁移矩阵的基础,也是第 24b 章 MCMC 的理论前提;泊松过程是订单到达、成交笔数、价格跳跃和违约事件的标准模型。本章是概率论内容,与第 02 册(Ross)的相关章节互为补充;随机过程在金融中的系统应用见第 06 册与第 08 册。
学习目标
- 理解随机过程、状态空间、指标集的概念,以及马尔可夫性的含义。
- 会用转移矩阵计算多步转移概率与边际分布(Chapman–Kolmogorov 方程,\(\mu_n=\mu_0P^n\))。
- 会对状态分类(互通类、常返与暂留、周期),理解遍历链的主定理与细致平衡条件。
- 会用最大似然估计转移矩阵并给出标准误,知道平稳分布估计对小转移概率的敏感性。
- 理解泊松过程的定义,掌握到达间隔为指数分布、等待时间为 Gamma 分布的结论,会检验齐次性并用时间变换处理非齐次过程。
读前导读
这一章在解决什么问题
结论:本章给出两个最基本的"带时间结构"的随机模型:描述状态之间跳转的马尔可夫链,和描述事件何时发生的泊松过程。
你在 CFA 信用风险部分见过评级迁移矩阵:一行是"今年 AA",各列是"明年变成 AAA、AA、A……违约"的概率。这就是马尔可夫链的转移矩阵。本章回答几个自然的问题:两年、五年后的迁移概率怎么算(矩阵乘方)?长期来看各评级占比会稳定在哪里(平稳分布)?从历史数据估出的转移矩阵有多可靠(MLE 与标准误)?同样的工具适用于市场状态(牛市、熊市、危机)的 regime 模型,也是第 24b 章 MCMC 的理论基础。
泊松过程描述"单位时间内随机发生若干次"的事件:订单到达、成交、跳跃、违约。你熟悉的信用风险中"违约强度(hazard rate)"\(\lambda\) 和生存概率 \(e^{-\lambda t}\),就是泊松过程的第一次跳跃时间。本章说明为什么事件间隔服从指数分布,以及当强度随时间变化(例如日内成交量的 U 形)时如何处理。
需要先想起来的数学
1. 矩阵乘法与行向量乘矩阵。 \((AB)_{ij}=\sum_kA_{ik}B_{kj}\):第 \(i\) 行与第 \(j\) 列对应相乘再求和。行向量 \(\mu\) 乘矩阵 \(P\) 得新的行向量 \((\mu P)_j=\sum_i\mu_ip_{ij}\)。例:\(\mu=(0.5,0.5)\),\(P=\begin{pmatrix}0.4&0.6\\0.8&0.2\end{pmatrix}\),\(\mu P=(0.6,0.4)\)。参见 第 00 册第 06 章 线性代数速成。
2. 特征值与特征向量。 平稳分布 \(\pi=\pi P\) 就是 \(P\) 的转置对应特征值 1 的特征向量(归一化使分量和为 1),代码里的 np.linalg.eig(P.T) 正是这么求的。
3. 级数的收敛与发散。 常返判据要看 \(\sum_np_{ii}(n)\) 是否有限。记住两个基准:几何级数 \(\sum r^n\) 在 \(|r|<1\) 时收敛;\(\sum n^{-a}\) 在 \(a>1\) 时收敛、\(a\le1\) 时发散(例如 \(\sum n^{-1/2}\) 发散)。参见 第 00 册第 04 章 级数与收敛。
4. 指数函数的极限与 \(o(h)\) 记号。 \((1-\frac{x}{n})^n\to e^{-x}\),这是连续复利公式的来源,也是泊松过程中 \(e^{-\lambda t}\) 的来源。\(f(h)=o(h)\) 读作"\(f(h)\) 比 \(h\) 更快地趋于零",例如 \(h^2=o(h)\),因为 \(h^2/h=h\to0\)。参见 第 00 册第 07 章 概率中的分析工具 与 第 00 册第 03 章 积分(连续复利与贴现)。
怎么读这一章
核心必读:23.2.1–23.2.2(转移矩阵、\(P^n\)、\(\mu_n=\mu_0P^n\))、23.2.4 的平稳分布、主定理和细致平衡、23.2.5 的估计、23.3.1–23.3.2(泊松过程与指数间隔)、时间变换、23.4 实战。23.2.3 的状态分类只需记住"互通、吸收态、常返/暂留"的含义和例 23.18 的结论;常返性的证明、例 23.28–23.29 第一次可以略读。建议顺序:23.2.1 → 23.2.2 → 23.2.4 → 23.2.5 → 实战 (1) → 23.3 → 实战 (2),最后回头读 23.2.3。
23.1 随机过程
随机过程(stochastic process) \(\{X_t:t\in T\}\) 是一族随机变量,也记作 \(X(t)\)。\(X_t\) 的取值集合 \(\mathcal X\) 称为状态空间(state space),\(T\) 称为指标集(index set),通常理解为时间,可以离散(\(T=\{0,1,2,\dots\}\))也可以连续(\(T=[0,\infty)\))。
- IID 序列是最简单的随机过程(例 23.1)。
- 天气 \(\mathcal X=\{\text{晴},\text{阴}\}\) 按天记录:离散状态、离散时间(例 23.2)。
- 股价连续监测:时间连续;价格按最小变动单位离散,但通常视为连续(例 23.3)。
- 经验分布函数 \(\{\hat F_n(t):t\in[0,1]\}\):固定 \(t\) 是随机变量,整体是状态和指标都连续的随机过程(例 23.4)。
一个基本事实:任何联合密度都可以按时间顺序分解为条件密度的乘积,
23.2 马尔可夫链
23.2.1 定义与转移矩阵
状态空间离散(\(\{1,\dots,N\}\) 或 \(\{1,2,\dots\}\)),时间 \(T=\{0,1,2,\dots\}\)。
定义 23.5。 \(\{X_n\}\) 是马尔可夫链(Markov chain),若对所有 \(n\) 和 \(x\),
若 \(\mathbb P(X_{n+1}=j\mid X_n=i)\) 不随 \(n\) 变化,称链是齐次的(homogeneous),本章只讨论齐次链。
金融直觉:马尔可夫性是一个很强的建模假设。评级迁移矩阵假设"明年的评级只取决于今年的评级",但实证上存在"评级动量":刚被下调的 BBB 比一直是 BBB 的债券更可能继续被下调。这说明只用当前评级作状态不满足马尔可夫性。常见修补办法是扩大状态空间,例如把"BBB 且去年被下调"单列为一个状态——只要状态包含了足够的历史信息,过程就重新变成马尔可夫的。
定义 23.6。 \(p_{ij}=\mathbb P(X_{n+1}=j\mid X_n=i)\) 称为转移概率,矩阵 \(P=(p_{ij})\) 称为转移矩阵(transition matrix)。\(p_{ij}\ge0\),\(\sum_jp_{ij}=1\):每一行是一个概率分布。
例 23.7(带吸收壁的随机游走)。 \(\mathcal X=\{1,\dots,N\}\),每步以概率 \(p\) 右移、\(q=1-p\) 左移,到达端点后停留不动。\(P\) 的首行为 \((1,0,\dots,0)\),末行为 \((0,\dots,0,1)\),中间第 \(i\) 行在 \(i-1\) 处为 \(q\)、\(i+1\) 处为 \(p\)。这正是"赌徒破产"问题,也是带止损止盈的交易在离散化后的模型。
例 23.8(天气)。 晴→晴 0.4、晴→阴 0.6;阴→晴 0.8、阴→阴 0.2。
23.2.2 多步转移与边际分布
\(n\) 步转移概率 \(p_{ij}(n)=\mathbb P(X_{m+n}=j\mid X_m=i)\),组成矩阵 \(P_n\)。
定理 23.9(Chapman–Kolmogorov 方程)。
(23.5) 就是矩阵乘法 \(P_{m+n}=P_mP_n\),由 \(P_1=P\) 得
引理 23.10。 \(\mu_n=\mu_0P^n\)。
推导拆解:用例 23.8 的天气链算两步转移。今天晴,后天晴的概率要对"明天"的两种可能求和(全概率公式):明天晴再晴 \(0.4\times0.4=0.16\),明天阴再晴 \(0.6\times0.8=0.48\),合计 \(p_{\text{晴晴}}(2)=0.64\)。这正是 \(P^2\) 的第一行第一列:第一行 \((0.4,0.6)\) 与第一列 \((0.4,0.8)\) 对应相乘再求和。所以"矩阵乘法 = 对中间状态求和",Chapman–Kolmogorov 方程只是把这句话写成一般形式。
引理 23.10 同理:\(\mu_1(j)=\sum_i\mathbb P(X_0=i)\,p_{ij}=(\mu_0P)_j\),再重复 \(n\) 次。
模拟一条链只需要 \(\mu_0\) 和 \(P\):先从 \(\mu_0\) 抽 \(X_0\),若结果为 \(i\),再从 \(P\) 的第 \(i\) 行抽 \(X_1\),依此类推。\(\mu_n\) 可以理解为大量独立模拟中时刻 \(n\) 结果的直方图。
23.2.3 状态分类
- 可达与互通(定义 23.11)。 若某个 \(n\) 使 \(p_{ij}(n)>0\),称 \(i\) 可达 \(j\),记 \(i\to j\);若 \(i\to j\) 且 \(j\to i\),称 \(i,j\) 互通,记 \(i\leftrightarrow j\)。
- 定理 23.12:互通是等价关系,状态空间可以分解为互不相交的互通类。所有状态互通的链称为不可约(irreducible)。一旦进入就不离开的状态集称为闭集;单个状态构成的闭集称为吸收态(absorbing state)。
- 例 23.13:\(P\) 的行为 \((\frac13,\frac23,0,0)\)、\((\frac23,\frac13,0,0)\)、\((\frac14,\frac14,\frac14,\frac14)\)、\((0,0,0,1)\),互通类为 \(\{1,2\}\)、\(\{3\}\)、\(\{4\}\),4 是吸收态。信用评级迁移矩阵中,"违约"就是吸收态。
常返与暂留(定义 23.14)。 若从 \(i\) 出发以概率 1 会返回 \(i\),称 \(i\) 常返(recurrent),否则称暂留(transient)。
定理 23.15。 \(i\) 常返 \(\iff\sum_np_{ii}(n)=\infty\);\(i\) 暂留 \(\iff\sum_np_{ii}(n)<\infty\)。 证明。 访问 \(i\) 的总次数 \(Y=\sum_nI(X_n=i)\) 的期望为 \(\mathbb E(Y\mid X_0=i)=\sum_np_{ii}(n)\)。令 \(a_i\) 为返回概率。常返时每次返回后必然再返回,访问无穷次,期望无穷;暂留时每次在 \(i\) 都有 \(1-a_i>0\) 的概率永不返回,恰访问 \(n\) 次的概率为 \(a_i^{n-1}(1-a_i)\)(几何分布),期望有限。\(\square\)
定理 23.16。 (1) 常返性与暂留性是类性质:\(i\) 常返且 \(i\leftrightarrow j\) 则 \(j\) 常返;暂留同理。(2) 有限链至少有一个常返态。(3) 有限不可约链的状态全部常返。
定理 23.17(分解定理)。 \(\mathcal X=\mathcal X_T\cup\mathcal X_1\cup\mathcal X_2\cup\cdots\),其中 \(\mathcal X_T\) 是暂留态,每个 \(\mathcal X_i\) 是由常返态组成的闭的不可约集。
例 23.18(整数上的随机游走)。 \(p_{i,i+1}=p\),\(p_{i,i-1}=q\)。所有状态互通,要么全常返、要么全暂留。从 0 出发回到 0 需要恰好 \(n\) 次右移和 \(n\) 次左移:
推导拆解:\(\binom{2n}{n}\) 是"\(2n\) 步中选出哪 \(n\) 步向右"的方法数,每种路径的概率是 \(p^nq^n\)。Stirling 公式 \(n!\approx\sqrt{2\pi n}(n/e)^n\) 代入 \(\binom{2n}{n}=\frac{(2n)!}{(n!)^2}\),约掉 \(e\) 的幂后得 \(\binom{2n}{n}\approx\frac{4^n}{\sqrt{\pi n}}\)。于是 \(p_{00}(2n)\approx\frac{(4pq)^n}{\sqrt{\pi n}}\)。
为什么 \(4pq\le1\)?\(4pq=4p(1-p)\) 是开口向下的抛物线,在 \(p=\frac12\) 处取最大值 1。例:\(p=0.51\) 时 \(4pq=0.9996\),看似接近 1,但 \((0.9996)^n\) 仍是几何衰减,级数收敛,链暂留。
\(4pq\le1\),且仅当 \(p=q=\frac12\) 时等号成立。\(p=\frac12\) 时级数 \(\sum n^{-1/2}\) 发散,对称随机游走常返;否则级数几何收敛,链暂留,最终漂向 \(\pm\infty\)。对价格模型而言:无漂移的随机游走会无数次回到起点,而只要有一点漂移,价格就不会再回来。
23.2.4 收敛与平稳分布
返回时间与正常返。 \(T_{ij}=\min\{n>0:X_n=j\}\) 为从 \(i\) 出发首次到达 \(j\) 的时间。常返态 \(i\) 的平均返回时间 \(m_i=\mathbb E(T_{ii})\) 若为无穷,称 \(i\) 为零常返,否则为正常返。零常返态满足 \(p_{jj}(n)\to0\)(引理 23.19);有限链的常返态都是正常返(引理 23.20)。
周期。 链 \(1\to2\to3\to1\) 确定性地循环,从 1 出发只在时刻 3、6、9……回到 1。状态 \(i\) 的周期 \(d(i)=\gcd\{n:p_{ii}(n)>0\}\);\(d=1\) 称非周期(aperiodic)。周期是类性质(引理 23.21)。
定义 23.22。 常返、正常返且非周期的状态称为遍历(ergodic);所有状态都遍历的链称为遍历链。
定义 23.23。 非负、和为 1 的行向量 \(\pi\) 若满足
推导拆解:解天气链的平稳分布。设 \(\pi=(\pi_s,\pi_c)\),\(\pi=\pi P\) 的第一个分量给出 \(\pi_s=0.4\pi_s+0.8\pi_c\),即 \(0.6\pi_s=0.8\pi_c\);再加上 \(\pi_s+\pi_c=1\),得 \(\pi=(\frac47,\frac37)\approx(0.571,0.429)\)。长期看约 57% 的日子是晴天。第二个分量的方程与第一个等价(行和为 1 导致方程组有一个是多余的),所以必须用"分量和为 1"补足。
两状态链的一般公式(练习 2):\(\pi=\big(\frac{b}{a+b},\frac{a}{a+b}\big)\),其中 \(a\) 是离开状态 1 的概率,\(b\) 是离开状态 2 的概率。直观上,越难离开的状态,长期占比越高。
定义 23.24。 若 \(\lim_np_{ij}(n)=\pi_j\) 存在且与 \(i\) 无关,即 \(P^n\) 的每一行都收敛到 \(\pi\),称 \(\pi\) 为极限分布。
定理 23.25(主定理)。 不可约、遍历的马尔可夫链有唯一的平稳分布 \(\pi\),极限分布存在且等于 \(\pi\)。并且对任何有界函数 \(g\),以概率 1
白话解释:我们手里只有一段历史(一条样本路径),却想知道"长期平均"会怎样。主定理说,只要链不可约(每个状态都能到达其他状态)且遍历(不会周期性循环),一条足够长的路径就能代表整个分布。这为"用一段长历史估计长期危机频率"提供了依据。但要注意"足够长"的含义:链越持久(\(p_{ii}\) 越接近 1),收敛越慢。23.4 节实战的解读第 1 点正好展示了 10 年数据都不够长的情形。
"以概率 1"(又称"几乎必然")的意思是:除了一些发生概率为零的极端路径外,每条路径的时间平均都会收敛。
细致平衡(detailed balance)。 若
警告(例 23.27)。 有平稳分布不等于收敛。三状态循环链 \(1\to2\to3\to1\) 有平稳分布 \(\pi=(\frac13,\frac13,\frac13)\),但从任何确定状态出发,链永远循环,没有极限——它是周期链,不满足遍历条件。
例 23.28。 6 状态链,\(P\) 的行依次为 \((\frac12,\frac12,0,0,0,0)\)、\((\frac14,\frac34,0,0,0,0)\)、\((\frac14,\frac14,\frac14,\frac14,0,0)\)、\((\frac14,0,\frac14,\frac14,0,\frac14)\)、\((0,0,0,0,\frac12,\frac12)\)、\((0,0,0,0,\frac12,\frac12)\)。\(\{1,2\}\) 和 \(\{5,6\}\) 是不可约闭集;3、4 暂留(存在路径 \(3\to4\to6\),一旦到 6 就回不来);对角元都为正,所以全部非周期。结论:3、4 暂留,1、2、5、6 遍历。
例 23.29(Hardy–Weinberg 定律)。 基因 A、a,基因型 AA、Aa、aa 的比例为 \((p,q,r)\),随机婚配。基因池中 A 的比例 \(P=p+q/2\),a 的比例 \(Q=r+q/2\)。子代基因型比例为 \((P^2,2PQ,Q^2)\),下一代 A 的比例仍为 \(P^2+PQ=P\),所以从第二代起比例保持不变。追踪某人的单系后代,其基因型构成转移矩阵为 AA 行 \((P,Q,0)\)、Aa 行 \((\frac P2,\frac12,\frac Q2)\)、aa 行 \((0,P,Q)\) 的马尔可夫链,平稳分布正是 \((P^2,2PQ,Q^2)\)。
例 23.30(MCMC 预告)。 设目标密度 \(f(x)=cg(x)\),\(g\) 已知而常数 \(c\) 未知。从任意 \(X_0\) 出发,给定 \(X_i\):抽 \(W\sim N(X_i,b^2)\),令 \(r=\min\{g(W)/g(X_i),1\}\),以概率 \(r\) 令 \(X_{i+1}=W\),否则 \(X_{i+1}=X_i\)。在弱条件下这是一条以 \(f\) 为平稳分布的遍历链,所以链的样本可以当作来自 \(f\) 的样本。注意算法根本用不到 \(c\)。第 24b 章将详细讨论。
23.2.5 马尔可夫链的统计推断
观测一条有限状态链 \(X_0,\dots,X_n\)。记 \(n_{ij}\) 为观测到的 \(i\to j\) 转移次数,\(n_i=\sum_jn_{ij}\)。似然为
推导拆解:对数似然为 \(\sum_{i,j}n_{ij}\log p_{ij}\),约束是每行 \(\sum_jp_{ij}=1\)。对第 \(i\) 行用拉格朗日乘子 \(\lambda_i\):对 \(p_{ij}\) 求偏导,\(\frac{n_{ij}}{p_{ij}}-\lambda_i=0\),得 \(p_{ij}=n_{ij}/\lambda_i\)。代入约束 \(\sum_jn_{ij}/\lambda_i=1\),得 \(\lambda_i=n_i\)。结论就是"从 \(i\) 出发的转移中,去往 \(j\) 的比例",和直觉一致。
例:实战中"平静"态共出发 \(1047+22+0=1069\) 次,其中 22 次转到"正常",\(\hat p_{01}=22/1069\approx0.021\),标准误 \(\sqrt{0.021\times0.979/1069}\approx0.004\)。
定理 23.31。 若链遍历,则 \(\hat p_{ij}\xrightarrow Pp_{ij}\),且 \(\sqrt{N_i(n)}(\hat p_{ij}-p_{ij})\) 渐近正态,\(N_i(n)\) 为访问状态 \(i\) 的次数,协方差结构与多项分布相同:同一行内 \(\text{Var}=p_{ij}(1-p_{ij})\)、\(\text{Cov}=-p_{ij}p_{i\ell}\),不同行渐近独立。因此 \(\widehat{\text{se}}(\hat p_{ij})\approx\sqrt{\hat p_{ij}(1-\hat p_{ij})/n_i}\)。
23.3 泊松过程
23.3.1 定义
泊松过程用于对随时间发生的事件计数:交通事故、放射性衰变、邮件到达,以及金融中的订单到达、成交、跳跃和违约。先回顾泊松分布:\(X\sim\text{Poisson}(\lambda)\) 时 \(\mathbb P(X=x)=e^{-\lambda}\lambda^x/x!\),\(\mathbb EX=\mathbb VX=\lambda\);独立泊松变量之和仍是泊松(参数相加);若 \(N\sim\text{Poisson}(\lambda)\)、\(Y\mid N\sim\text{Binomial}(N,p)\),则 \(Y\sim\text{Poisson}(\lambda p)\)(稀释性)。
令 \(X_t\) 为到时刻 \(t\) 为止发生的事件数,\(\{X_t\}\) 称为计数过程(counting process)。记 \(f(h)=o(h)\) 表示 \(f(h)/h\to0\)。
定义 23.32。 泊松过程是满足以下条件的计数过程:
- \(X(0)=0\);
- 独立增量:对任意 \(0=t_0<t_1<\cdots<t_n\),增量 \(X(t_1)-X(t_0),\dots,X(t_n)-X(t_{n-1})\) 相互独立;
- 存在函数 \(\lambda(t)\) 使
\[\mathbb P(X(t+h)-X(t)=1)=\lambda(t)h+o(h),\qquad\mathbb P(X(t+h)-X(t)\ge2)=o(h).\tag{23.16–23.17}\]
\(\lambda(t)\) 称为强度函数(intensity function):短时间 \([t,t+h]\) 内发生一次事件的概率约为 \(\lambda(t)h\),发生两次以上的概率可以忽略。
定理 23.33。 强度为 \(\lambda(t)\) 的泊松过程满足
推导拆解:以齐次情形为例,说明 \(\mathbb P(X(t)=0)=e^{-\lambda t}\) 从何而来。把 \([0,t]\) 切成 \(n\) 段,每段长 \(h=t/n\)。每段内"没有事件"的概率约为 \(1-\lambda h\)(条件 3),各段独立(条件 2),所以全程无事件的概率约为 \((1-\lambda t/n)^n\)。令 \(n\to\infty\),它趋于 \(e^{-\lambda t}\)——与连续复利 \((1+r/n)^n\to e^r\) 是同一个极限。\(o(h)\) 项在 \(n\) 段累加后是 \(n\cdot o(t/n)\to0\),所以可以忽略。
更一般地,每段像一次成功概率为 \(\lambda h\) 的 Bernoulli 试验,\(n\) 段的总次数是 \(\text{Binomial}(n,\lambda t/n)\),\(n\to\infty\) 时趋于 \(\text{Poisson}(\lambda t)\)(二项分布的泊松近似)。非齐次时把 \(\lambda t\) 换成各段 \(\lambda(t_k)h\) 之和,即积分 \(m(t)\)。
金融直觉:约化形式信用模型中,违约强度 \(\lambda=2\%\)/年时,5 年生存概率为 \(e^{-0.02\times5}\approx90.5\%\)。这和用连续复利把 2% 的"利率"贴现 5 年是完全相同的计算,所以信用利差可以近似理解为违约强度乘以违约损失率。
23.3.2 到达间隔与等待时间
记 \(W_n\) 为第 \(n\) 个事件的发生时刻(等待时间,\(W_0=0\)),\(S_n=W_{n+1}-W_n\) 为到达间隔(interarrival / sojourn time)。
定理 23.35。 齐次泊松过程的到达间隔 \(S_0,S_1,\dots\) IID,服从均值为 \(1/\lambda\) 的指数分布,密度 \(\lambda e^{-\lambda s}\);等待时间 \(W_n\sim\text{Gamma}(n,1/\lambda)\),密度 \(\frac1{\Gamma(n)}\lambda^nw^{n-1}e^{-\lambda w}\)。 证明。 \(\mathbb P(S_0>t)=\mathbb P(X(t)=0)=e^{-\lambda t}\),所以 \(S_0\) 是指数分布。\(\mathbb P(S_1>t\mid S_0=s)=\mathbb P((s,s+t]\text{ 内无事件}\mid S_0=s)=e^{-\lambda t}\),最后一步用了独立增量,所以 \(S_1\) 也是指数分布且与 \(S_0\) 独立。依此类推。\(W_n\) 是 \(n\) 个 IID 指数变量之和,故为 Gamma 分布。\(\square\)
指数分布的无记忆性意味着:无论已经等了多久,到下一个事件的剩余等待时间分布不变。
例 23.36(网站服务器请求)。 假设请求是齐次泊松过程,观测期 \([0,T]\) 内共 \(N\) 次。\(N\sim\text{Poisson}(\lambda T)\),似然 \(\mathcal L(\lambda)\propto e^{-\lambda T}(\lambda T)^N\),MLE \(\hat\lambda=N/T=48.0077\) 次/分钟。检验齐次性:把 \([0,T]\) 等分为 4 段,若过程齐次,给定总数时每个事件等可能落入各段,\(H_0:p_1=\cdots=p_4=\frac14\),用卡方统计量 \(\sum(O_i-E_i)^2/E_i\),\(E_i=N/4\)。得 \(\chi^2=252\),p 值约为 0,拒绝齐次泊松——强度显然随时间变化。
非齐次过程的时间变换(原书习题 11)。 令 \(\Lambda(t)=\int_0^t\lambda(u)du\),把时间轴换成 \(s=\Lambda(t)\),则 \(Y(s)=X(t)\) 是强度为 1 的齐次泊松过程。也就是说,在"事件时钟"而不是"日历时钟"下,非齐次泊松过程变成了标准泊松过程。这是高频数据中"交易时间"(trade time)、"成交量时间"(volume time)概念的数学基础。
白话解释:\(\Lambda(t)\) 是"到时刻 \(t\) 为止预期发生的事件数"。用它当新的时钟,开盘时事件密集,时钟走得快;午间事件稀疏,时钟走得慢。在新时钟下,每走一个单位平均恰好发生一次事件,强度就变成了常数 1。以实战的 U 形强度为例:开盘第 1 分钟 \(\lambda\approx79\) 笔,新时钟走 79 个单位;午间第 120 分钟 \(\lambda=20\) 笔,新时钟只走 20 个单位。
为什么成立:在新时钟的一个小区间 \([s,s+\delta]\) 内,对应的日历时间长度约为 \(\delta/\lambda(t)\),发生一次事件的概率约为 \(\lambda(t)\cdot\delta/\lambda(t)=\delta\),与 \(t\) 无关,即强度为 1。独立增量性质在单调变换下保持不变。
23.4 量化实战
场景。 (1) 一个三状态的市场状态链(平静、正常、危机),日频,模拟约 10 年数据,估计转移矩阵及标准误、平稳分布、平均持续时间和多步转移概率。(2) 日内成交到达是非齐次泊松过程,强度呈开盘收盘高、午间低的 U 形;用 thinning 方法模拟,按例 23.36 检验齐次性,再用时间变换检验到达间隔。
import numpy as np
from scipy import stats
rng = np.random.default_rng(23)
# ---------- (1) 市场状态马尔可夫链:模拟、MLE、标准误、平稳分布 ----------
P = np.array([[0.97, 0.03, 0.00], # 0=平静 1=正常 2=危机
[0.02, 0.95, 0.03],
[0.00, 0.10, 0.90]])
n = 2500 # 约 10 年日频
X = np.zeros(n + 1, dtype=int); X[0] = 1
for t in range(n):
X[t + 1] = rng.choice(3, p=P[X[t]])
N = np.zeros((3, 3))
np.add.at(N, (X[:-1], X[1:]), 1)
ni = N.sum(1, keepdims=True)
P_hat = N / ni
se = np.sqrt(P_hat * (1 - P_hat) / ni) # 定理 23.31:每行类似多项分布
print("转移计数 n_ij:\n", N.astype(int))
print("P_hat (括号内为标准误):")
for i in range(3):
print(" ", " ".join("%.3f(%.3f)" % (P_hat[i, j], se[i, j]) for j in range(3)))
def stationary(P):
w, v = np.linalg.eig(P.T)
pi = np.real(v[:, np.argmin(abs(w - 1))]); return pi / pi.sum()
print("平稳分布 真值 =", stationary(P).round(3), " 估计 =", stationary(P_hat).round(3),
" 样本占比 =", (np.bincount(X, minlength=3) / (n + 1)).round(3))
print("平均持续天数 1/(1-p_ii):真值", (1 / (1 - np.diag(P))).round(1), " 估计", (1 / (1 - np.diag(P_hat))).round(1))
print("从'正常'出发 20 天后处于'危机'的概率:P^20[1,2] = %.3f" % np.linalg.matrix_power(P_hat, 20)[1, 2])
# ---------- (2) 日内成交到达:非齐次泊松过程(U 形强度),thinning 模拟 ----------
T = 240.0 # 一个交易日 240 分钟
lam = lambda t: 20 + 60 * ((t - 120) / 120) ** 2 # 每分钟笔数:开盘、收盘高,午间低
lam_max = 80
cand = np.cumsum(rng.exponential(1 / lam_max, size=40000)); cand = cand[cand < T]
arr = cand[rng.random(cand.size) < lam(cand) / lam_max] # 以 λ(t)/λ_max 的概率保留
m_T = 20 * T + 60 * 240 / 3 # ∫_0^T λ(t) dt = 4800 + 4800
print("总笔数 = %d,理论均值 m(T) = %.0f" % (arr.size, m_T))
# 例 23.36 式检验:等分 4 段,H0 为齐次泊松
O = np.histogram(arr, bins=4, range=(0, T))[0]; E = O.sum() / 4
chi2 = ((O - E) ** 2 / E).sum()
print("四段计数", O, " chi2=%.1f p=%.2g(拒绝齐次性)" % (chi2, stats.chi2.sf(chi2, 3)))
# 时间变换(原书习题 11):s = Λ(t) 后到达间隔应为 Exp(1)
Lam = lambda t: 20 * t + 60 * ((t - 120) ** 3 + 120 ** 3) / (3 * 120 ** 2)
gaps_raw = np.diff(arr) * arr.size / T # 只按平均强度标准化
gaps_tc = np.diff(Lam(arr)) # 按累积强度变换
for name, g in [("仅按平均强度标准化", gaps_raw), ("按 Λ(t) 时间变换", gaps_tc)]:
ks = stats.kstest(g, "expon")
print("%-12s 间隔均值=%.3f 方差=%.3f KS检验 Exp(1) p=%.3g" % (name, g.mean(), g.var(), ks.pvalue))
关键输出:
转移计数 n_ij:
[[1047 22 0]
[ 22 1080 30]
[ 0 30 269]]
P_hat (括号内为标准误):
0.979(0.004) 0.021(0.004) 0.000(0.000)
0.019(0.004) 0.954(0.006) 0.027(0.005)
0.000(0.000) 0.100(0.017) 0.900(0.017)
平稳分布 真值 = [0.339 0.508 0.153] 估计 = [0.428 0.453 0.12 ] 样本占比 = [0.427 0.453 0.12 ]
平均持续天数 1/(1-p_ii):真值 [33.3 20. 10. ] 估计 [48.6 21.8 10. ]
从'正常'出发 20 天后处于'危机'的概率:P^20[1,2] = 0.160
总笔数 = 9587,理论均值 m(T) = 9600
四段计数 [3357 1452 1539 3239] chi2=1360.1 p=1.4e-294(拒绝齐次性)
仅按平均强度标准化 间隔均值=1.000 方差=1.365 KS检验 Exp(1) p=3.96e-14
按 Λ(t) 时间变换 间隔均值=1.001 方差=0.970 KS检验 Exp(1) p=0.168
解读。
- 转移概率估计得很准,长期性质却不准。 每个 \(\hat p_{ij}\) 的标准误只有 0.4%–1.7%,看起来很精确。但 10 年里"平静→正常"只发生了 22 次,平静态的平均持续时间被估为 48.6 天(真值 33.3),平稳分布中平静态的占比被估为 42.8%(真值 33.9%)。原因是平稳分布和持续时间对 \(1-p_{ii}\) 这种小概率极其敏感:\(1-\hat p_{00}=0.021\) 对 0.030,相对误差 30%。状态越持久,独立的"状态切换"样本越少,有效样本量远小于观测天数。用 regime 模型做长期配置(例如"危机态平均占 15% 的时间")时,应该用 bootstrap 或贝叶斯方法报告不确定性,而不是只看点估计。
- 多步预测。 \(\hat P^{20}\) 给出从正常态出发 20 个交易日后处于危机态的概率约 16%。同样的计算用于信用评级迁移矩阵(违约为吸收态),\(P^n\) 的最后一列就是 \(n\) 期累积违约概率,这是 CreditMetrics 等信用组合模型的基础。
- 日内到达不是齐次泊松过程。 四段计数为 3357、1452、1539、3239,卡方检验以压倒性证据拒绝齐次性,与例 23.36 的结论一致。只按全天平均强度标准化时,到达间隔的方差为 1.365,大于指数分布应有的 1——强度变化会制造"过度离散"的假象,常被误认为是成交的聚集性(自激)。用 \(\Lambda(t)\) 做时间变换后,间隔与 Exp(1) 吻合(KS 检验 p = 0.17)。实证研究中应先剔除日内季节性,再判断剩余的聚集是否需要 Hawkes 这类自激过程来描述。
其他应用。 约化形式信用模型中,违约时刻是强度为 \(\lambda(t)\) 的泊松过程的第一次跳跃,生存概率为 \(\exp(-\int_0^t\lambda(u)du)\),正是定理 23.33 中 \(X(t)=0\) 的概率;Merton 跳跃扩散模型中跳跃次数是泊松过程(第 08 册)。分支过程(习题 5)是 Hawkes 过程的离散原型:每个事件"生出"若干后续事件。
本章小结
马尔可夫链的核心是"给定现在,未来与过去独立"。齐次链由转移矩阵 \(P\) 完全刻画,\(n\) 步转移矩阵为 \(P^n\),边际分布 \(\mu_n=\mu_0P^n\)。状态按互通关系分类,常返等价于 \(\sum_np_{ii}(n)=\infty\),对称随机游走常返而有漂移的随机游走暂留。不可约遍历链有唯一平稳分布,它同时是极限分布,沿链的时间平均收敛到平稳期望;细致平衡是平稳的充分条件,也是 MCMC 的设计原理;有平稳分布不保证收敛(周期链)。转移概率的 MLE 是 \(n_{ij}/n_i\),每行如同多项分布。泊松过程由独立增量和局部强度定义,增量服从均值为强度积分的泊松分布;齐次时到达间隔 IID 指数、第 \(n\) 次到达时刻为 Gamma 分布;非齐次过程经时间变换 \(s=\Lambda(t)\) 化为标准泊松过程。
| 概念 | 公式 / 要点 |
|---|---|
| 马尔可夫性 | \(\mathbb P(X_n\mid X_0,\dots,X_{n-1})=\mathbb P(X_n\mid X_{n-1})\) |
| Chapman–Kolmogorov | \(P_{m+n}=P_mP_n\),\(P_n=P^n\) |
| 边际分布 | \(\mu_n=\mu_0P^n\) |
| 常返判据 | \(\sum_np_{ii}(n)=\infty\) |
| 随机游走 | \(p_{00}(2n)\sim(4pq)^n/\sqrt{n\pi}\);仅 \(p=\frac12\) 常返 |
| 周期 | \(d(i)=\gcd\{n:p_{ii}(n)>0\}\) |
| 平稳分布 | \(\pi=\pi P\) |
| 主定理 | 不可约 + 遍历 ⇒ 唯一 \(\pi\) = 极限分布,\(\frac1N\sum g(X_n)\to\mathbb E_\pi g\) |
| 细致平衡 | \(\pi_ip_{ij}=\pi_jp_{ji}\) ⇒ \(\pi\) 平稳 |
| 转移矩阵 MLE | \(\hat p_{ij}=n_{ij}/n_i\),\(\text{se}\approx\sqrt{\hat p_{ij}(1-\hat p_{ij})/n_i}\) |
| 平均持续时间 | \(1/(1-p_{ii})\) |
| 泊松过程增量 | \(X(s+t)-X(s)\sim\text{Poisson}\big(\int_s^{s+t}\lambda\big)\) |
| 到达间隔 | 齐次时 IID \(\text{Exp}\)(均值 \(1/\lambda\)),\(W_n\sim\text{Gamma}(n,1/\lambda)\) |
| 时间变换 | \(s=\Lambda(t)=\int_0^t\lambda\) 后为强度 1 的齐次泊松过程 |
练习
基础
- 原书习题 1:状态 \(\{0,1,2\}\),\(P=\begin{pmatrix}0.1&0.2&0.7\\0.9&0.1&0\\0.1&0.8&0.1\end{pmatrix}\),\(\mu_0=(0.3,0.4,0.3)\)。求 \(\mathbb P(X_0=0,X_1=1,X_2=2)\) 与 \(\mathbb P(X_0=0,X_1=1,X_2=1)\)。(答案:\(0.3\times0.2\times0=0\);\(0.3\times0.2\times0.1=0.006\)。)
- 原书习题 3:两状态链 \(P=\begin{pmatrix}1-a&a\\b&1-b\end{pmatrix}\),证明 \(\lim P^n\) 的每一行都是 \(\big(\frac b{a+b},\frac a{a+b}\big)\)。(提示:\(P\) 的特征值为 1 和 \(1-a-b\)。)
- 原书习题 6:求 \(P=\begin{pmatrix}0.40&0.50&0.10\\0.05&0.70&0.25\\0.05&0.50&0.45\end{pmatrix}\) 的平稳分布。(答案:\(\pi=(\frac8{104},\frac{65}{104},\frac{31}{104})\approx(0.077,0.625,0.298)\)。)
- 原书习题 9:\(P=\begin{pmatrix}0&1\\1&0\end{pmatrix}\),证明 \(\pi=(\frac12,\frac12)\) 是平稳分布但链不收敛。
- 证明状态 \(i\) 的平均持续时间(连续停留的天数)服从几何分布,均值 \(1/(1-p_{ii})\)。
- 原书习题 13:齐次泊松过程中求 \(\mathbb P(X(t)\text{ 为奇数})\)。(答案:\(\frac12(1-e^{-2\lambda t})\)。提示:\(\sum_k e^{-\lambda t}(\lambda t)^{2k+1}/(2k+1)!=e^{-\lambda t}\sinh(\lambda t)\)。)
进阶
- 原书习题 12:求 \(X(t)\) 在给定 \(X(t+s)=n\) 下的条件分布。(答案:\(\text{Binomial}(n,\frac t{t+s})\)。这说明给定总数时事件在时间上均匀分布,正是例 23.36 检验的依据。)
- 原书习题 5(分支过程):\(X_{n+1}=\sum_{i=1}^{X_n}Y_i^{(n)}\),\(X_0=1\),后代数 \(Y\) 的均值 \(\mu\)、方差 \(\sigma^2\)。证明 \(M(n)=\mu^n\),\(V(n)=\sigma^2\mu^{n-1}(1+\mu+\cdots+\mu^{n-1})\);灭绝时间的 CDF 满足 \(F(n)=\sum_kp_k(F(n-1))^k\)。\(p_0=\frac14,p_1=\frac12,p_2=\frac14\) 时计算 \(F(1),\dots,F(5)\)。(答案:0.25、0.391、0.484、0.550、0.601;\(\mu=1\) 的临界情形,最终必然灭绝但很慢。)
- 原书习题 11:证明非齐次泊松过程经 \(s=\Lambda(t)\) 变换后是强度 1 的齐次泊松过程,并用 23.4 节代码验证。
- 原书习题 14(\(M/G/\infty\) 队列):用户按强度 \(\lambda\) 的泊松过程登录,在线时长独立、CDF 为 \(G\)。证明时刻 \(t\) 的在线人数服从均值为 \(\lambda\int_0^t(1-G(s))ds\) 的泊松分布。把"用户"换成"挂在订单簿上的限价单",解释这个结果的含义。
- 编程:在 23.4 节实验 (1) 中重复模拟 500 条长 2500 的链,画出平稳分布估计 \(\hat\pi_0\) 的抽样分布,与"把每天当独立样本"算出的标准误 \(\sqrt{\hat\pi_0(1-\hat\pi_0)/2500}\) 比较。
原书推荐习题:第 23 章习题 3、4、5、6、9、11、15。
原书对照
| 本章内容 | 原书章节 | PDF 页码 |
|---|---|---|
| 随机过程的概念,例 23.1–23.4 | 23.1 | p.384–385 |
| 马尔可夫链定义、转移矩阵、Chapman–Kolmogorov,例 23.7–23.8 | 23.2 | p.386–397 |
| 状态分类、常返与暂留、随机游走,定理 23.12–23.17,例 23.13、23.18 | 23.2 | p.386–397 |
| 收敛、周期、平稳分布、主定理、细致平衡,例 23.27–23.30 | 23.2 | p.386–397 |
| 马尔可夫链的推断,定理 23.31 | 23.2 | p.386–397 |
| 泊松过程,定理 23.33–23.35,例 23.36 | 23.3 | p.397–400 |
| 文献注(Grimmett & Stirzaker;Taylor & Karlin;Ross) | 23.4 | p.400 |
| 习题 | 23.5 | p.401–404 |