第 07b 章 条件期望与预测
本章对应 Ross 原书 7.5–7.6 节。条件期望是全书对量化最重要的概念之一:收益预测模型估计的就是 \(E[\text{未来收益}\mid\text{当前信息}]\),因子 beta 是最优线性预测的斜率,贝叶斯收缩、Kalman 滤波和 regime 模型的方差分解都从这里出发。
学习目标
- 理解条件期望 \(E[X\mid Y]\) 是 \(Y\) 的函数、本身是一个随机变量,并会在离散和连续情形下计算 \(E[X\mid Y=y]\)。
- 熟练运用全期望公式 \(E[X]=E\big[E[X\mid Y]\big]\) 做「首步分析」、求随机和的期望、通过条件化求概率。
- 掌握全方差公式 \(\mathrm{Var}(X)=E[\mathrm{Var}(X\mid Y)]+\mathrm{Var}(E[X\mid Y])\),能用它分解混合模型与 regime 模型的波动。
- 理解 \(E[Y\mid X]\) 是均方误差意义下的最优预测;会推导最优线性预测 \(\mu_y+\rho\frac{\sigma_y}{\sigma_x}(X-\mu_x)\) 及其误差 \(\sigma_y^2(1-\rho^2)\)。
- 能把这些结论翻译为量化语言:beta、IC 与可解释方差、贝叶斯收缩、复合分布的成交量模型。
读前导读
这一章在解决什么问题。 一句话:在掌握部分信息之后,怎样做最好的预测,以及怎样把「不确定性」按来源拆开。
你其实早就在用条件期望。CFA 里算一只股票的期望收益,会先列出「经济扩张 / 平稳 / 衰退」三种情景,给每种情景一个概率和一个情景内的期望收益,再加权平均。这就是本章的全期望公式 \(E[X]=E[E[X\mid Y]]\),其中 \(Y\) 是情景。本章把它推广到情景是连续变量的情况,并配上方差版本:总方差 = 情景内波动的平均 + 情景之间均值差异带来的波动。
第二条主线是预测。你在 CFA 二级学过一元回归,斜率 \(b=\mathrm{Cov}(X,Y)/\mathrm{Var}(X)\),\(R^2=\rho^2\)。本章说明:如果只允许用线性函数做预测,回归就是最好的;如果允许任何函数,最好的预测是 \(E[Y\mid X]\)。机器学习收益预测模型做的,都是在逼近这个条件期望。beta 是这条直线的斜率,IC 的平方是它能解释的方差比例。
需要先想起来的数学。
- 条件概率与条件密度。 \(P(A\mid B)=P(AB)/P(B)\);连续情形 \(f_{X|Y}(x|y)=f(x,y)/f_Y(y)\),就是把联合密度在 \(Y=y\) 这一条线上「切一刀」,再除以这条线上的总量,使它积分为 1。见 第 00 册第 07 章 概率中的分析工具。
- 偏导数与一阶条件。 多元函数求最小值,就是对每个变量分别求导、令其为 0。例:\(h(a,b)=(1-a-b)^2+(2-a-2b)^2\),对 \(a\) 求偏导时把 \(b\) 当常数。7.6.2 节的最优线性预测就是这么得来的。见 第 00 册第 05 章 多元微积分与优化。
- 简单微分方程 \(m'=m\)。 导数等于自身的函数只有 \(Ce^x\);配上初值 \(m(0)=1\) 得 \(m(x)=e^x\)。只在例 5j 用到。见 第 00 册第 02 章 导数与泰勒展开。
- 配方。 \(as^2-2bs+c=a(s-b/a)^2+\text{常数}\)。用在正态密度相乘之后识别新的均值和方差(例 6b)。这是中学代数,补习册不单列。
怎么读这一章。 核心必读:7.5.1 定义、7.5.2 的命题 5.1 与例 5c、5d、5f,7.5.4 全方差公式与例 5o、5p,以及 7.6 全节和量化实战。例 5e(craps)、5g、5i、5j 和 7.5.3 的例 5l–5n 第一次可以跳过,秘书问题(例 5k)看结论即可。建议先读 7.5.2 和 7.5.4,再读 7.6,最后回头挑例子。
7.5 条件期望
7.5.1 定义
离散情形:\(p_{X|Y}(x|y)=p(x,y)/p_Y(y)\),
可以把 \(E[X\mid Y=y]\) 看成在「缩小后的样本空间」\(\{Y=y\}\) 上算的普通期望,所以普通期望的全部性质(线性性、\(E[g(X)\mid Y=y]=\int g(x)f_{X|Y}(x|y)dx\) 等)都照搬。
例 5a \(X,Y\) 独立,都服从 \(\text{Bin}(n,p)\)。给定 \(X+Y=m\),
例 5b 联合密度 \(f(x,y)=\frac1y e^{-x/y}e^{-y}\)(\(x,y>0\))。\(f_{X|Y}(x|y)=\frac1ye^{-x/y}\),即给定 \(Y=y\) 时 \(X\) 是均值为 \(y\) 的指数分布,\(E[X\mid Y=y]=y\)。
7.5.2 通过条件化计算期望
把 \(E[X\mid Y]\) 记为 \(Y\) 的函数:在 \(Y=y\) 处取值 \(E[X\mid Y=y]\)。它是一个随机变量。
白话解释:\(E[X\mid Y=y]\) 是一个数,\(E[X\mid Y]\) 是一个随机变量,这是本章最容易混淆的地方。打个比方:\(E[\text{股票收益}\mid\text{经济情景}=\text{衰退}]=-5\%\) 是一个确定的数;而 \(E[\text{股票收益}\mid\text{经济情景}]\) 是一张「情景 → 期望收益」的对照表,在情景揭晓之前,它取哪个值是不确定的。比如它以 30% 概率取 \(-5\%\)、以 70% 概率取 \(+10\%\)。全期望公式就是对这张表再取一次平均:\(0.3\times(-5\%)+0.7\times10\%=5.5\%\)。
命题 5.1(全期望公式 / 迭代期望,law of total expectation)
离散情形的证明只有一行: \(\sum_y\sum_x xP\{X=x\mid Y=y\}P\{Y=y\}=\sum_x x\sum_yP\{X=x,Y=y\}=E[X]\)。
直观:总平均等于各组平均按组的概率加权——这是全概率公式的「期望版」。
例 5c(困在矿井的矿工,首步分析) 三扇门:门 1 走 3 小时到安全处;门 2 走 5 小时回到原地;门 3 走 7 小时回到原地。每次等可能选门(不记得走过哪扇)。令 \(Y\) 为第一次选的门:
推导拆解:解方程的过程是 \(3E[X]=15+2E[X]\),所以 \(E[X]=15\)。关键一步是「\(E[X\mid Y=2]=5+E[X]\)」:走门 2 先花掉 5 小时,然后回到起点,此后的处境和一开始完全一样,所以剩余时间的期望还是 \(E[X]\)(未知数本身)。这和永续年金定价的思路一样:\(P=\frac{C+P}{1+r}\),一期后面对的还是「同一个永续年金」,于是解出 \(P=C/r\)。用未知数自己表示自己,然后解方程。
这种「对第一步条件化,利用问题的自相似性列方程」的方法称为首步分析(first-step analysis),是 Markov 链(第 09 章)求吸收时间和吸收概率的标准方法。
例 5d(随机个随机变量之和) 每天进店人数 \(N\) 的均值为 50,每人消费 \(X_i\) i.i.d.、均值 8 美元,且与 \(N\) 独立。\(E\big[\sum_{i=1}^NX_i\mid N=n\big]=nE[X]\),所以
例 5e(掷骰赌博 craps) 首掷两骰之和为 2、3、12 输,为 7、11 赢;否则记下点数 \(i\),继续掷直到再出 \(i\)(赢)或出 7(输)。记 \(P_i\) 为和为 \(i\) 的概率,\(P_i=P_{14-i}=\frac{i-1}{36}\)(\(i=2,\dots,7\))。投掷次数 \(R\):
- \(E[R\mid S=i]=1\)(\(i=2,3,7,11,12\)),否则为 \(1+\frac1{P_i+P_7}\)(几何分布)。
- (a) \(E[R]=1+2\big(\frac39+\frac4{10}+\frac5{11}\big)=3.376\)。
- 赢的概率 \(p=P_7+P_{11}+\sum_{i\in\{4,5,6,8,9,10\}}\frac{P_i^2}{P_i+P_7}=0.493\)。
- (b) 给定首掷 \(S=i\),附加次数与输赢独立,用条件分布 \(Q_i=P\{S=i\mid\text{赢}\}\) 得 \(E[R\mid\text{赢}]=2.938\);
- (c) 由 \(E[R]=E[R\mid\text{赢}]p+E[R\mid\text{输}](1-p)\) 反解 \(E[R\mid\text{输}]=3.801\)。
例 5f(二元正态的参数 \(\rho\) 就是相关系数) 二元正态密度
推导拆解: 第一步,全期望公式。 第二步,「给定 \(Y\) 时 \(Y\) 是已知常数」,可以提到条件期望外面:\(E[XY\mid Y]=Y\,E[X\mid Y]=Y\big[\mu_x+\rho\frac{\sigma_x}{\sigma_y}(Y-\mu_y)\big]\),展开就是中括号里的式子。这条「已知的量可以提出来」的规则就是练习 3 的第二问,本章会反复使用。 第三步,逐项取期望:\(E[Y]=\mu_y\),\(E[Y^2]-\mu_yE[Y]=(\sigma_y^2+\mu_y^2)-\mu_y^2=\sigma_y^2\)。所以得到 \(\mu_x\mu_y+\rho\frac{\sigma_x}{\sigma_y}\sigma_y^2=\mu_x\mu_y+\rho\sigma_x\sigma_y\)。 最后 \(\mathrm{Cov}=E[XY]-\mu_x\mu_y=\rho\sigma_x\sigma_y\),除以 \(\sigma_x\sigma_y\) 即得相关系数。
例 5g(反向使用:已知总期望求条件期望) \(n\) 次独立试验、\(k\) 种结果,\(N_i\) 为结果 \(i\) 的次数。给定 \(N_i=r\),\(N_j\sim\text{Bin}\big(n-r,\frac{p_j}{1-p_i}\big)\)。由 \(np_j=E[N_j\mid N_i=0]P\{N_i=0\}+E[N_j\mid N_i>0]P\{N_i>0\}\) 反解
例 5h(用条件化求几何分布方差) \(N\) 为首次成功的试验序号,对第一次试验是否成功条件化:\(E[N^2\mid\text{成功}]=1\),\(E[N^2\mid\text{失败}]=E[(1+N)^2]\)。于是 \(E[N^2]=1+(1-p)E[2N+N^2]\),结合 \(E[N]=1/p\) 得 \(E[N^2]=\frac{2-p}{p^2}\),\(\mathrm{Var}(N)=\frac{1-p}{p^2}\)。
例 5i(多人赌博直到一人赢光) 先看两人:玩家 1 持有 \(j\)、总额 \(n\),每局各以 1/2 概率赢或输 1 单位。期望局数 \(m_j\) 满足 \(m_j=1+\frac12m_{j+1}+\frac12m_{j-1}\),\(m_0=m_n=0\),解得
例 5j(均匀变量之和超过 1 所需个数的期望为 \(e\)) 令 \(N(x)=\min\{n:\sum_{i\le n}U_i>x\}\),\(m(x)=E[N(x)]\),\(x\in[0,1]\)。对 \(U_1=y\) 条件化:\(y>x\) 时只需 1 个;\(y\le x\) 时需 \(1+N(x-y)\)。故
7.5.3 通过条件化计算概率
令 \(X=I_E\),则 \(E[X]=P(E)\),\(E[X\mid Y=y]=P(E\mid Y=y)\):
例 5k(最佳奖品问题 / 秘书问题,secretary problem) \(n\) 个奖品依次出现,只能看到相对名次,拒绝后不能回头,目标是最大化选中最好者的概率。策略:拒绝前 \(k\) 个,之后接受第一个比前 \(k\) 个都好的。条件于最佳者的位置 \(i\)(均匀):\(i\le k\) 时失败;\(i>k\) 时成功当且仅当前 \(i-1\) 个中的最好者落在前 \(k\) 个里,概率 \(\frac{k}{i-1}\)。故
例 5l(均匀先验下的二项分布) \(U\sim U(0,1)\),\(X\mid U=p\sim\text{Bin}(n,p)\)。
例 5m、5n \(X,Y\) 独立连续时,\(P\{X<Y\}=\int F_X(y)f_Y(y)\,dy\);\(P\{X+Y<a\}=\int F_X(a-y)f_Y(y)\,dy\)(卷积公式)。
7.5.4 条件方差
定义 \(\mathrm{Var}(X\mid Y)=E\big[(X-E[X\mid Y])^2\mid Y\big]=E[X^2\mid Y]-(E[X\mid Y])^2\)。对它取期望,并计算 \(E[X\mid Y]\) 的方差:
命题 5.2(全方差公式,law of total variance)
推导拆解:两式相加时,\(E[(E[X\mid Y])^2]\) 一正一负正好抵消,剩下 \(E[X^2]-(E[X])^2=\mathrm{Var}(X)\)。第一式用了全期望公式 \(E\big[E[X^2\mid Y]\big]=E[X^2]\);第二式就是方差定义 \(\mathrm{Var}(Z)=E[Z^2]-(EZ)^2\),取 \(Z=E[X\mid Y]\),再用 \(E[Z]=E[X]\)。 金融直觉:这就是方差版的「情景分析」。数值例:牛市(概率 0.5)收益均值 \(+10\%\)、波动 \(10\%\);熊市(概率 0.5)均值 \(-10\%\)、波动 \(20\%\)。组内项 \(=0.5\times0.01+0.5\times0.04=0.025\);组间项:情景均值以等概率取 \(\pm10\%\),方差 \(=0.01\)。总方差 \(0.035\),总波动约 \(18.7\%\)。它也是 CFA 里 ANOVA「总平方和 = 组内平方和 + 组间平方和」的总体版本。
例 5o(火车站乘客,过度离散) 到时刻 \(t\) 为止到达人数 \(N(t)\sim\text{Poisson}(\lambda t)\),火车到达时刻 \(Y\sim U(0,T)\) 与之独立。\(E[N(Y)\mid Y]=\mathrm{Var}(N(Y)\mid Y)=\lambda Y\),所以
例 5p(随机和的方差,复合分布) \(X_i\) i.i.d.,\(N\) 为与之独立的非负整数随机变量。\(E[\sum^NX_i\mid N]=NE[X]\),\(\mathrm{Var}(\sum^NX_i\mid N)=N\mathrm{Var}(X)\),故
推导拆解:对 \(N\) 条件化,套用全方差公式。组内项:\(E[N\,\mathrm{Var}(X)]=E[N]\mathrm{Var}(X)\);组间项:\(\mathrm{Var}(N\,E[X])=(E[X])^2\mathrm{Var}(N)\)(常数平方提出方差)。第一项是「每笔金额的随机性」,第二项是「笔数的随机性」。 数值检查练习 4:\(E[N]=\mathrm{Var}(N)=200\)(Poisson 的均值等于方差),\(\mathrm{Var}(X)=500^2\),\(E[X]=300\),代入得 \(200\times250000+90000\times200=6.8\times10^7\)。 信用风险里的「损失 = 违约笔数 × 每笔违约损失」也是这个结构:只算违约笔数不确定性、忽略违约损失率(LGD)的不确定性,就会低估损失方差。
原书理论题 7.20 还给出条件协方差公式:
7.6 条件期望与预测
7.6.1 条件期望是最优预测
观测到 \(X\) 后用 \(g(X)\) 预测 \(Y\),以均方误差 \(E[(Y-g(X))^2]\) 为准则。
命题 6.1 对任何函数 \(g\),
证明:把 \(Y-g(X)\) 写成 \((Y-E[Y\mid X])+(E[Y\mid X]-g(X))\) 再平方。给定 \(X\) 时第二项是常数,而 \(E\big[Y-E[Y\mid X]\,\big|\,X\big]=0\),所以交叉项的条件期望为 0;剩下两个平方项,第二项非负。再对 \(X\) 取期望即可。
推导拆解:记 \(m(X)=E[Y\mid X]\)。展开:
\[(Y-g)^2=(Y-m)^2+2(Y-m)(m-g)+(m-g)^2.\]对中间项取条件期望:给定 \(X\) 后 \(m-g\) 是已知数,提出来得 \(2(m-g)\,E[Y-m\mid X]=2(m-g)(m-m)=0\)。于是 \(E[(Y-g)^2\mid X]=E[(Y-m)^2\mid X]+(m-g)^2\ge E[(Y-m)^2\mid X]\),两边再取期望(全期望公式)即得命题。等号当且仅当 \(g(X)=m(X)\)(几乎必然)。 白话:任何预测的均方误差 = 不可消除的噪声 + 你的预测偏离条件期望的平方。第一部分是数据本身的随机性,再好的模型也降不下去;模型能做的只是压低第二部分。
直观:没有数据时,\(E[(Y-c)^2]\) 在 \(c=E[Y]\) 处最小;观测到 \(X=x\) 后,同样的问题在条件分布下进行,最优就是 \(E[Y\mid X=x]\)。
这条命题就是所有以均方误差为损失的收益预测模型(线性回归、树模型、神经网络)的目标:它们都在逼近 \(E[\text{未来收益}\mid\text{特征}]\)。
例 6a(父子身高) \(Y=X+1+e\),\(e\sim N(0,4)\) 与 \(X\) 独立。父亲 72 英寸,儿子身高的最优预测 \(E[Y\mid X=72]=73\)。
例 6b(带噪信号的估计,贝叶斯收缩) 发送信号 \(S\sim N(\mu,\sigma^2)\),接收 \(R\mid S=s\sim N(s,1)\)。 \(f_{S|R}(s|r)\propto e^{-(s-\mu)^2/2\sigma^2}e^{-(r-s)^2/2}\)(\(\propto\) 读作「正比于」,即省略了与 \(s\) 无关的常数因子),配方后
推导拆解:两个指数相乘,指数相加。只看含 \(s\) 的部分:
\[-\frac12\Big[\frac{(s-\mu)^2}{\sigma^2}+(r-s)^2\Big]=-\frac12\Big[\Big(\frac1{\sigma^2}+1\Big)s^2-2\Big(\frac{\mu}{\sigma^2}+r\Big)s\Big]+\text{常数}.\]和正态密度的指数 \(-\frac{(s-m)^2}{2v}=-\frac12\big[\frac1vs^2-\frac{2m}{v}s\big]+\text{常数}\) 对照系数:\(\frac1v=\frac1{\sigma^2}+1=\frac{1+\sigma^2}{\sigma^2}\),所以 \(v=\frac{\sigma^2}{1+\sigma^2}\);\(\frac mv=\frac\mu{\sigma^2}+r\),所以 \(m=v\big(\frac\mu{\sigma^2}+r\big)=\frac{\mu+r\sigma^2}{1+\sigma^2}\)。 一个好记的规律:精度(方差的倒数)相加,后验均值是按精度加权的平均。先验精度 \(1/\sigma^2\),观测精度 1。 金融直觉:分析师给某股票的目标收益是先验,你自己的模型信号是观测。模型越不靠谱(噪声越大),你越应该向分析师共识靠拢。量化实战第 4 点里,观测权重只有 0.2,说明回测 alpha 应该打两折。
例 6c(最优量化器,quantizer) 给定分点 \(a_i\),当 \(X\in(a_i,a_{i+1}]\) 时输出 \(y_i\)。 (a) 由命题 6.1,最优 \(y_i=E[X\mid a_i<X\le a_{i+1}]\); (b) 最优输出 \(Y=E[X\mid I]\)(\(I\) 为区间编号),所以 \(E[Y]=E[X]\); (c) 由全方差公式 \(\mathrm{Var}(X)=E[(X-Y)^2]+\mathrm{Var}(Y)\)。 在量化中把连续因子离散成分位数组(如十分位)时,组内用条件均值代表整组是均方最优的,离散化损失的信息正是 \(E[(X-Y)^2]\)。
7.6.2 最优线性预测
若只知道均值、方差和相关系数,就在线性函数中找最优:最小化 \(E[(Y-a-bX)^2]\)。对 \(a,b\) 求偏导令其为零,得
最优线性预测为 \(\mu_y+\rho\frac{\sigma_y}{\sigma_x}(X-\mu_x)\),其均方误差
推导拆解:对 \(a\) 求偏导(链式法则,内层对 \(a\) 的导数是 \(-1\)):\(-2E[Y-a-bX]=0\),得 \(a=\mu_y-b\mu_x\)。代回后目标变为 \(E\big[\big((Y-\mu_y)-b(X-\mu_x)\big)^2\big]=\sigma_y^2-2b\,\mathrm{Cov}(X,Y)+b^2\sigma_x^2\),这是 \(b\) 的二次函数,开口向上,在 \(b=\mathrm{Cov}/\sigma_x^2\) 处最小。把这个 \(b\) 代回:\(\sigma_y^2-\frac{\mathrm{Cov}^2}{\sigma_x^2}=\sigma_y^2\big(1-\frac{\mathrm{Cov}^2}{\sigma_x^2\sigma_y^2}\big)=\sigma_y^2(1-\rho^2)\),就是上面的误差公式。
这就是总体版本的一元线性回归:\(b\) 是回归斜率,\(\rho^2\) 是可解释方差比例 \(R^2\)。
例 6d 二元正态时 \(E[Y\mid X=x]=\mu_y+\rho\frac{\sigma_y}{\sigma_x}(x-\mu_x)\) 本身就是线性的,所以最优线性预测就是最优预测。非正态时二者可以差别很大,非线性模型的价值就在这里。
量化实战
1. beta 与 IC。 资产对市场的 beta \(=\mathrm{Cov}(R_i,R_m)/\mathrm{Var}(R_m)\) 就是最优线性预测的斜率;最小方差对冲比率同理。因子的 IC 是因子值与下期收益的相关系数 \(\rho\),由 \(\sigma_y^2(1-\rho^2)\),IC = 0.05 的因子只能解释 \(0.25\%\) 的收益方差——单只股票的收益几乎全是噪声,因子的价值只能靠大量股票、大量期数的横截面平均体现出来(这正是「基本定律」IR ≈ IC·\(\sqrt{\text{breadth}}\) 的直觉,见第 11 册)。
2. regime 模型的波动分解。 用全方差公式把收益方差分为「状态内波动」和「状态间均值差」两部分,可以判断 regime 切换主要改变的是波动还是漂移。
3. 成交量与复合分布。 日成交额 = 随机笔数 × 每笔金额,均值 \(E[N]E[X]\),方差 \(E[N]\mathrm{Var}(X)+(E[X])^2\mathrm{Var}(N)\)。做执行算法的成交量预测、估计 VWAP 跟踪误差时都用到。
4. 贝叶斯收缩与回测选择偏差。 很多策略回测后挑出表现最好的,其真实 alpha 往往远低于回测值;按例 6b 把回测 alpha 向先验均值收缩,可以显著减小估计误差。
import numpy as np
rng = np.random.default_rng(7)
# ---------- 1. 最优线性预测:b = Cov/Var,残差方差 = σy²(1-ρ²) ----------
n, ic = 1_000_000, 0.05
x = rng.standard_normal(n) # 标准化因子值
sy = 0.02 # 下期收益波动 2%
y = sy * (ic * x + np.sqrt(1 - ic**2) * rng.standard_normal(n))
b = np.cov(x, y)[0, 1] / x.var(ddof=1)
a = y.mean() - b * x.mean()
mse = np.mean((y - a - b * x) ** 2)
print(f"斜率 b = {b:.5f} (理论 ρσy/σx = {ic*sy:.5f})")
print(f"预测后残差方差 / 原方差 = {mse / y.var():.4f} (理论 1-ρ² = {1-ic**2:.4f})")
# ---------- 2. 全方差公式:两状态市场 ----------
p_bull = 0.7
mu = {"bull": 0.0008, "bear": -0.0015}
sd = {"bull": 0.008, "bear": 0.020}
T = 2_000_000
state = rng.random(T) < p_bull
r = np.where(state, rng.normal(mu["bull"], sd["bull"], T),
rng.normal(mu["bear"], sd["bear"], T))
within = p_bull * sd["bull"]**2 + (1 - p_bull) * sd["bear"]**2 # E[Var(R|S)]
m_all = p_bull * mu["bull"] + (1 - p_bull) * mu["bear"]
between = p_bull * (mu["bull"] - m_all)**2 + (1 - p_bull) * (mu["bear"] - m_all)**2 # Var(E[R|S])
print(f"\n总方差 模拟 = {r.var():.4e}, 公式 = {within + between:.4e}")
print(f" 组内(状态内波动) = {within:.4e} 占 {within/(within+between):.2%}")
print(f" 组间(均值切换) = {between:.4e} 占 {between/(within+between):.2%}")
# ---------- 3. 随机和:日成交额 = 随机笔数 × 每笔金额 ----------
days = 200_000
lam = 500 # 平均每日 500 笔
N = rng.poisson(lam, days)
mu_s, sig_s = np.log(2e4), 1.0 # 每笔金额对数正态
ES = np.exp(mu_s + sig_s**2 / 2)
VS = (np.exp(sig_s**2) - 1) * np.exp(2 * mu_s + sig_s**2)
tot = np.array([rng.lognormal(mu_s, sig_s, k).sum() for k in N])
print(f"\n日成交额均值 模拟 = {tot.mean():.4e}, E[N]E[X] = {lam*ES:.4e}")
print(f"日成交额方差 模拟 = {tot.var():.4e}, "
f"E[N]Var(X)+E[X]^2 Var(N) = {lam*VS + ES**2*lam:.4e}")
# ---------- 4. 正态共轭收缩:估计 1000 个策略的真实 alpha ----------
k, m0, tau = 1000, 0.0, 0.02 # 先验: alpha ~ N(0, 2%^2)(年化)
se = 0.04 # 每个策略回测估计的标准误 4%
alpha = rng.normal(m0, tau, k)
obs = alpha + rng.normal(0, se, k)
w_obs = tau**2 / (tau**2 + se**2) # 观测权重 σ²/(σ²+噪声方差)
post = m0 + w_obs * (obs - m0)
print(f"\n观测权重 = {w_obs:.2f}")
print(f"原始估计 RMSE = {np.sqrt(np.mean((obs - alpha)**2)):.4f}")
print(f"收缩估计 RMSE = {np.sqrt(np.mean((post - alpha)**2)):.4f} "
f"(理论 {np.sqrt(tau**2*se**2/(tau**2+se**2)):.4f})")
top = np.argsort(obs)[-10:]
print(f"回测最好的10个: 观测均值 {obs[top].mean():.3f}, 真实均值 {alpha[top].mean():.3f}, "
f"收缩后 {post[top].mean():.3f}")
关键输出:
斜率 b = 0.00101 (理论 ρσy/σx = 0.00100)
预测后残差方差 / 原方差 = 0.9974 (理论 1-ρ² = 0.9975)
总方差 模拟 = 1.6613e-04, 公式 = 1.6591e-04
组内(状态内波动) = 1.6480e-04 占 99.33%
组间(均值切换) = 1.1109e-06 占 0.67%
日成交额均值 模拟 = 1.6484e+07, E[N]E[X] = 1.6487e+07
日成交额方差 模拟 = 1.4689e+12, E[N]Var(X)+E[X]^2 Var(N) = 1.4778e+12
观测权重 = 0.20
原始估计 RMSE = 0.0396
收缩估计 RMSE = 0.0174 (理论 0.0179)
回测最好的10个: 观测均值 0.123, 真实均值 0.029, 收缩后 0.025
解读:IC 为 0.05 的因子只把单只股票收益的方差降低了 0.25%;日频 regime 模型中,波动几乎全部来自状态内部,均值切换只贡献不到 1%——日频上「识别牛熊」主要是识别波动环境,而不是识别方向;回测最好的 10 个策略观测到的年化 alpha 是 12.3%,真实只有 2.9%,收缩估计(2.5%)远比原始估计可靠。
本章小结
条件期望 \(E[X\mid Y]\) 是 \(Y\) 的函数。全期望公式把难算的期望拆成「先条件、再平均」,首步分析、随机和、通过条件化求概率都是它的应用;全方差公式把方差拆成组内与组间两部分,解释了随机强度带来的过度离散,也给出了复合分布的方差。\(E[Y\mid X]\) 是均方误差下的最优预测;只用一阶、二阶矩时,最优线性预测的斜率是 \(\mathrm{Cov}/\mathrm{Var}\)、残差方差是 \(\sigma_y^2(1-\rho^2)\),正态情形下两者重合。贝叶斯收缩按方差反比加权先验与观测,是处理「噪声大、样本少」的标准做法。
| 概念 / 公式 | 内容 |
|---|---|
| 全期望公式 | \(E[X]=E\big[E[X\mid Y]\big]\) |
| 条件化求概率 | \(P(E)=\int P(E\mid Y=y)f_Y(y)\,dy\) |
| 全方差公式 | \(\mathrm{Var}(X)=E[\mathrm{Var}(X\mid Y)]+\mathrm{Var}(E[X\mid Y])\) |
| 随机和 | \(E[\sum^NX_i]=E[N]E[X]\);\(\mathrm{Var}=E[N]\mathrm{Var}(X)+(EX)^2\mathrm{Var}(N)\) |
| 条件协方差公式 | \(\mathrm{Cov}(X,Y)=E[\mathrm{Cov}(X,Y\mid Z)]+\mathrm{Cov}(E[X\mid Z],E[Y\mid Z])\) |
| 最优预测 | \(\arg\min_g E[(Y-g(X))^2]=E[Y\mid X]\) |
| 最优线性预测 | \(\mu_y+\rho\frac{\sigma_y}{\sigma_x}(X-\mu_x)\),误差 \(\sigma_y^2(1-\rho^2)\) |
| 正态收缩 | \(E[S\mid R=r]=\frac{1}{1+\sigma^2}\mu+\frac{\sigma^2}{1+\sigma^2}r\) |
| 秘书问题 | 放过前 \(n/e\) 个,成功率 \(\approx1/e\) |
练习
基础
- 某股票明天涨的概率 0.55,上涨时平均涨 1.2%,下跌时平均跌 1.3%。求明天的期望收益。 答案:\(0.55\times1.2\%-0.45\times1.3\%=0.075\%\)。
- 矿工问题中若门 2 回原地只需 2 小时,其他不变,求 \(E[X]\)。 答案:\(E[X]=\frac13(3+2+E X+7+E X)\),\(E[X]=12\)。
- 证明:若 \(X,Y\) 独立,则 \(E[X\mid Y]=E[X]\);并证明 \(E[g(X)Y\mid X]=g(X)E[Y\mid X]\)。
- 每天订单数 \(N\sim\text{Poisson}(200)\),每单数量均值 300 股、标准差 500 股。求日成交股数的均值和标准差。 答案:均值 60000;方差 \(200(500^2+300^2)=6.8\times10^7\),标准差约 8246。
- 因子 IC = 0.1、股票收益波动 30%(年化),因子已标准化。求最优线性预测的斜率及残差波动。 答案:斜率 0.03;残差波动 \(30\%\sqrt{1-0.01}\approx29.85\%\)。
进阶
- 两资产在每个状态 \(Z\) 内部不相关,但状态 \(Z\in\{\text{好},\text{坏}\}\) 下它们的条件均值同时为 \(+m\) 或 \(-m\)(各 1/2)。用条件协方差公式求无条件协方差。 答案:\(\mathrm{Cov}=0+m^2=m^2\)。
- 证明 \(\mathrm{Cov}(X,E[Y\mid X])=\mathrm{Cov}(X,Y)\)(原书理论题 7.28)。说明为何「均值独立(\(E[Y\mid X]\) 为常数)⇒ 不相关」,但反之不成立。
- 两个无偏信号 \(X_1,X_2\) 估计同一 \(\mu\),方差 \(\sigma_1^2,\sigma_2^2\),误差独立。求 \(\lambda X_1+(1-\lambda)X_2\) 方差最小的 \(\lambda\)。 答案:\(\lambda=\frac{\sigma_2^2}{\sigma_1^2+\sigma_2^2}\)(反方差加权,理论题 7.17;多信号合成的基础)。
- Kelly 策略:每次下注赢的概率 \(p>1/2\),押当前财富的 \(2p-1\),赔率 1:1。用全期望公式证明 \(n\) 次后期望财富为 \(x[1+(2p-1)^2]^n\)(原书习题 7.67)。 提示:对每一步条件化,\(E[W_{k+1}\mid W_k]=W_k[1+(2p-1)^2]\)。
- 在秘书问题中,若采用「放过前一半」的策略,证明成功率大于 1/4。 提示:至少选到某个奖品的概率为 1/2,且所选者是全局最好的条件概率至少 1/2。
原书推荐习题:Problems 7.53(囚犯三门)、7.57(复合和)、7.59–7.60(联合下注)、7.64–7.65(混合分布的均值方差)、7.67(Kelly)、7.68–7.69(事故倾向,混合 Poisson)、7.78(两信封问题);Theoretical Exercises 7.20(条件协方差公式)、7.25–7.29(条件期望的性质)、7.38–7.39(线性与二次最优预测)、7.43;Self-Test 7.15(信息价值)、7.25(期望 p 值)、7.26。
原书对照
| 本章内容 | 原书章节 | PDF 页码(书内页码 = PDF − 13) |
|---|---|---|
| 条件期望定义 | 7.5.1 | p.326–328 |
| 通过条件化计算期望 | 7.5.2 | p.328–338 |
| 通过条件化计算概率(秘书问题) | 7.5.3 | p.338–341 |
| 条件方差 | 7.5.4 | p.341–343 |
| 条件期望与预测、最优线性预测 | 7.6 | p.343–347 |
| 习题 / 自测题 | — | p.365–379;自测解答 p.465–475 |