第 05b 章 矩阵范数、谱半径与条件数
对应原书:Horn & Johnson《Matrix Analysis》第 2 版,第 5 章 Norms for Vectors and Matrices 的 5.6–5.8 节(书 p.340–386,PDF p.360–406)。向量范数与对偶见第 05a 章。
矩阵既是 \(n^2\) 维向量,又可以相乘。度量矩阵"大小"时,我们希望乘积的大小能被因子的大小控制:\(|||AB|||\le|||A|||\,|||B|||\)。满足这条次乘性的范数叫矩阵范数。本章三个核心结论对量化都很实用:(1) 谱半径是所有矩阵范数的下确界,\(A^k\to0\) 当且仅当 \(\rho(A)<1\)——这是 VAR 平稳性、迭代算法收敛、网络冲击衰减的统一判据;(2) Neumann 级数 \((I-A)^{-1}=\sum A^k\),用于累计冲击和近似求逆;(3) 条件数 \(\kappa(A)=|||A|||\,|||A^{-1}|||\) 决定输入的相对误差在求逆、解方程中被放大多少倍——这正是均值–方差优化对预期收益估计误差极度敏感的原因。
学习目标
读完本章,你应当能够:
- 掌握矩阵范数的公理(特别是次乘性),熟悉 \(\ell_1\)、Frobenius、最大列和、最大行和与谱范数,知道 \(\max|a_{ij}|\) 不是矩阵范数。
- 理解诱导(算子)范数的定义与极小性,掌握它们之间的比较常数,能给谱范数做廉价估计。
- 证明 \(\rho(A)\le|||A|||\) 与 \(\rho(A)=\inf|||A|||\),掌握收敛矩阵定理、Gelfand 公式,理解非正规矩阵的瞬态放大。
- 会用 Neumann 级数、严格对角占优判据和"到奇异矩阵的距离"分析可逆性与近似逆。
- 推导逆矩阵和线性方程组的先验、后验误差界,理解条件数的几何意义 \(1/\kappa=\) 到奇异矩阵的相对距离。
- 把矩阵范数和条件数用于风险度量、VAR 稳定性、网络传染和组合优化的数值稳定性分析。
读前导读
这一章在解决什么问题。 一句话:给矩阵量"大小",并用这个大小回答三个实务问题——冲击会不会消失、累计冲击有多大、输入误差会被放大多少倍。
你在 CFA 里见过两类与此相关的事。第一类是"放大":杠杆把收益和损失按倍数放大,久期把收益率变动按倍数放大成价格变动。矩阵也是一个放大器:向量 \(x\)(比如一个组合、一组冲击)进去,\(Ax\) 出来。矩阵范数就是"这台放大器最多放大几倍"。第二类是"误差传导":你在 CFA 里学过均值–方差优化,也一定听过"Markowitz 权重对预期收益太敏感"这个抱怨。本章最后一节用条件数把这个抱怨量化:\(\Sigma w=\mu\) 中 \(\mu\) 的 1% 误差,最坏会让权重出现 \(\kappa(\Sigma)\)% 的误差,而 \(\kappa(\Sigma)\) 常常是几百。
中间的谱半径部分回答"冲击会不会消失"。AR(1) 模型 \(x_{t+1}=\phi x_t+\varepsilon_t\) 平稳要求 \(|\phi|<1\),你在 CFA 二级的时间序列部分见过。多变量的 VAR 把 \(\phi\) 换成矩阵 \(A\),对应的条件变成 \(\rho(A)<1\)(所有特征值的模都小于 1)。Neumann 级数 \((I-A)^{-1}=I+A+A^2+\cdots\) 就是几何级数 \(1/(1-r)=1+r+r^2+\cdots\) 的矩阵版本——和年金现值公式是同一个结构。
需要先想起来的数学。
- 特征值与谱半径。\(Ax=\lambda x\) 表示方向 \(x\) 被 \(A\) 作用后只伸缩、不转向,伸缩倍数是 \(\lambda\)。谱半径 \(\rho(A)=\max_i|\lambda_i|\) 是所有特征值中模最大的那个。例:\(A=\operatorname{diag}(0.5,-0.8)\) 的特征值是 \(0.5,-0.8\),\(\rho(A)=0.8\)。见 第 00 册第 06 章 线性代数速成。
- 向量范数。\(\|x\|_1=\sum|x_i|\)(总杠杆)、\(\|x\|_2=\sqrt{\sum x_i^2}\)(欧氏长度)、\(\|x\|_\infty=\max|x_i|\)(最大单票仓位)。例:\(x=(3,-4)\),三个范数分别是 7、5、4。第 05a 章有完整讨论。
- 几何级数与收敛。\(|r|<1\) 时 \(\sum_{k\ge0}r^k=1/(1-r)\);\(|r|\ge1\) 时发散。永续年金现值 \(C\sum_{k\ge1}(1+y)^{-k}=C/y\) 就是它。见 第 00 册第 04 章 级数与收敛。
- 上确界 inf/sup 与极限。\(\inf\)(下确界)是"最大的下界",不一定能取到。例:\(\{1/n\}\) 的下确界是 0,但 0 不在集合里。本章"\(\rho(A)=\inf|||A|||\)"就是这种"能无限逼近、未必取到"的意思。见 第 00 册第 01 章 函数极限与连续。
- 奇异值。\(\sigma_1\ge\cdots\ge\sigma_n\ge0\) 是 \(A^*A\) 特征值的平方根(\(A^*\) 是共轭转置,实矩阵就是 \(A^T\))。对称正定矩阵(如协方差矩阵)的奇异值就是特征值。第 02b 章讲过 SVD。
怎么读这一章。 核心必读是 5b.1、5b.2(三个常用范数的公式和含义)、5b.3(谱半径与收敛)、5b.4.2(Neumann 级数)和 5b.7(条件数)。5b.5 的比较常数表、极小性、对偶和多项式根界第一次可以只看结论;5b.6 可以完全跳过。建议读完 5b.7 后直接看实战 2,它把"条件数 = 误差放大倍数"用均值–方差优化演示得非常清楚。符号上注意:本章用三竖线 \(|||\cdot|||\) 表示矩阵范数,双竖线 \(\|\cdot\|\) 表示向量范数(以及 \(\|\cdot\|_1\)、\(\|\cdot\|_F\) 这种把矩阵当长向量看的范数)。
5b.1 矩阵范数(5.6 节开头)
5b.1.1 定义
定义 函数 \(|||\cdot|||:M_n\to\mathbf R\) 称为矩阵范数(matrix norm,又称环范数 ring norm),若对所有 \(A,B\in M_n\)、\(c\in\mathbf C\):
- \(|||A|||\ge0\);1a. \(|||A|||=0\iff A=0\);
- \(|||cA|||=|c|\,|||A|||\);
- \(|||A+B|||\le|||A|||+|||B|||\);
- \(|||AB|||\le|||A|||\,|||B|||\)(次乘性,submultiplicativity)。
只满足前四条的叫"矩阵上的向量范数"或"广义矩阵范数",第 5b.6 节简介。
直接推论:
- \(|||A^k|||\le|||A|||^k\);
- \(|||I|||=|||I^2|||\le|||I|||^2\),所以 \(|||I|||\ge1\);幂等矩阵(\(A^2=A\ne0\))都有 \(|||A|||\ge1\);
- \(A\) 非奇异时 \(|||A^{-1}|||\ge|||I|||/|||A|||\)。
白话解释:前三条公理和向量范数一样(非负、伸缩、三角不等式),矩阵范数多出来的只有第 4 条次乘性。它的意思是"连续做两次放大,总放大倍数不超过两次倍数之积"。这条性质让我们能用 \(|||A|||^k\) 控制 \(A^k\),也就是控制 VAR 模型中冲击传播 \(k\) 期后的大小。 三条推论的来路:\(|||A^k|||\le|||A|||^k\) 是把次乘性连用 \(k-1\) 次;\(|||I|||\ge1\) 是因为 \(|||I|||\le|||I|||^2\) 两边除以正数 \(|||I|||\);最后一条来自 \(|||I|||=|||AA^{-1}|||\le|||A|||\,|||A^{-1}|||\),移项即得。
5b.1.2 例子
- \(\ell_1\) 范数 \(\|A\|_1=\sum_{i,j}|a_{ij}|\) 是矩阵范数(展开乘积后添加非负项即可证明次乘性)。
- Frobenius 范数 \(\|A\|_F=(\sum|a_{ij}|^2)^{1/2}=(\operatorname{tr}A^*A)^{1/2}=\sqrt{\sigma_1^2+\cdots+\sigma_n^2}\) 是矩阵范数(对 \(\sum_ka_{ik}b_{kj}\) 用 Cauchy–Schwarz)。它酉不变:\(\|UAV\|_F=\|A\|_F\)。
- \(\max|a_{ij}|\) 不是矩阵范数:\(J=\begin{bmatrix}1&1\\1&1\end{bmatrix}\),\(J^2=2J\),\(\max|(J^2)_{ij}|=2>1=(\max|J_{ij}|)^2\)。但乘以 \(n\) 之后,\(n\max|a_{ij}|\) 是矩阵范数。(定理 5.7.11 说明这不是巧合:任何 \(M_n\) 上的范数乘以足够大的常数都会变成矩阵范数。)
- 列范数之和 \(N_\infty(A)=\sum_j\|a_j\|_\infty\) 也是矩阵范数,介于 \(\max|a_{ij}|\) 与 \(n\max|a_{ij}|\) 之间。
5b.2 诱导范数(算子范数)
5b.2.1 定义与基本性质
定义 5.6.1 / 5.6.3 设 \(\|\cdot\|\) 是 \(\mathbf C^n\) 上的向量范数,定义
称为由 \(\|\cdot\|\) 诱导的矩阵范数(induced matrix norm),又称算子范数或 lub 范数。它度量"\(A\) 最多把向量拉长多少倍"。
白话解释:把 \(A\) 想成一台机器,输入一个"长度为 1"的向量,看输出最长能有多长。"长度"用哪种向量范数量,诱导出来的矩阵范数就不同。两种写法等价:第二种是"输出长度 / 输入长度"这个比率的最大值,因为把 \(x\) 放大 \(c\) 倍,比率不变,所以只看 \(\|x\|=1\) 的向量就够了。lub 是 least upper bound(最小上界)的缩写,说的是 \(|||A|||\) 是满足 \(\|Ax\|\le C\|x\|\) 的最小常数 \(C\)。 小例子:\(A=\operatorname{diag}(2,3)\),用 \(\ell_2\) 量长度,单位圆被拉成半轴为 2 和 3 的椭圆,最长输出为 3,所以 \(|||A|||_2=3\)。
定理 5.6.2 诱导范数满足:(a) \(|||I|||=1\);(b) \(\|Ax\|\le|||A|||\,\|x\|\)(向量范数与矩阵范数相容);(c) 是矩阵范数;(d) \(|||A|||=\max_{\|x\|=\|y\|^D=1}|y^*Ax|\)(由第 05a 章对偶定理)。
次乘性的证明一行:\(\|ABx\|\le|||A|||\,\|Bx\|\le|||A|||\,|||B|||\,\|x\|\)。所以证明某个函数是矩阵范数的一个办法,是证明它由某个向量范数诱导。\(|||I|||=1\) 的范数称为单位的(unital);诱导范数都是单位的,\(\ell_1\) 矩阵范数和 Frobenius 范数不是(\(\|I\|_1=n\),\(\|I\|_F=\sqrt n\)),所以它们不是诱导范数。
5b.2.2 三个最常用的诱导范数
| 名称 | 诱导自 | 公式 |
|---|---|---|
| 最大列和范数 \(\vert \vert \vert A\vert \vert \vert _1\) | \(\ell_1\) | \(\max_j\sum_i\vert a_{ij}\vert \) |
| 最大行和范数 \(\vert \vert \vert A\vert \vert \vert _\infty\) | \(\ell_\infty\) | \(\max_i\sum_j\vert a_{ij}\vert \) |
| 谱范数 \(\vert \vert \vert A\vert \vert \vert _2\) | \(\ell_2\) | \(\sigma_1(A)=\sqrt{\lambda_{\max}(A^*A)}\) |
例 5.6.4 证明(列和):\(\|Ax\|_1=\|\sum_ix_ia_i\|_1\le\sum|x_i|\,\|a_i\|_1\le\|x\|_1\max_k\|a_k\|_1\);取 \(x=e_k\) 取等。
推导拆解:这里 \(a_i\) 表示 \(A\) 的第 \(i\) 列,\(e_k\) 是第 \(k\) 个分量为 1、其余为 0 的向量。 第一步:\(Ax=x_1a_1+\cdots+x_na_n\),矩阵乘向量就是"按 \(x\) 的分量给各列加权求和"。 第二步:对和用三角不等式,再把常数 \(|x_i|\) 提出来,得 \(\sum|x_i|\,\|a_i\|_1\)。 第三步:每个 \(\|a_i\|_1\) 都不超过最大的列和 \(\max_k\|a_k\|_1\),提出后剩下 \(\sum|x_i|=\|x\|_1\)。 第四步(说明上界取得到):取 \(x=e_k\)(\(k\) 是列和最大的那列),\(Ae_k=a_k\),比值恰好等于最大列和。 金融读法:\(x\) 是总杠杆为 1 的组合,最坏情况是把全部仓位押在"列和最大"的那个资产上——又一次"凸函数在 \(\ell_1\) 球上的最大值落在顶点"。 小例子:\(A=\begin{bmatrix}1&-2\\3&4\end{bmatrix}\),列和为 \(1+3=4\) 和 \(2+4=6\),所以 \(|||A|||_1=6\);行和为 3 和 7,所以 \(|||A|||_\infty=7\)。
例 5.6.6(谱范数):\(\max_{\|x\|_2=1}\|Ax\|_2^2=\max x^*A^*Ax=\lambda_{\max}(A^*A)=\sigma_1^2\)(第 04a 章 Rayleigh 商)。谱范数酉不变;对 Hermitian 矩阵 \(|||A|||_2=\rho(A)=\max|\lambda_i|\)。
定理 5.6.7 若 \(|||\cdot|||\) 是矩阵范数、\(S\) 非奇异,则 \(|||A|||_S=|||SAS^{-1}|||\) 也是矩阵范数;若前者由 \(\|\cdot\|\) 诱导,后者由 \(\|Sx\|\) 诱导。这个"相似换范数"的技巧在下一节证明 \(\rho(A)=\inf|||A|||\) 时是关键。
矩阵范数作为风险度量:
- 谱范数:\(|||\Sigma|||_2=\lambda_{\max}(\Sigma)\) 是所有 \(\|w\|_2=1\) 的组合中最大的方差。协方差估计误差 \(\Delta\Sigma\) 对任意组合方差的影响满足 \(|w^T\Delta\Sigma\,w|\le|||\Delta\Sigma|||_2\|w\|_2^2\)——这就是第 04a 章 Weyl 界之所以用谱范数的原因。
- \(\ell_1\to\ell_1\) 的视角:在总杠杆约束 \(\|w\|_1\le1\) 下,\(\max w^T\Sigma w\) 是凸函数在多面体上的最大值,落在顶点 \(\pm e_i\) 上,等于 \(\max_i\Sigma_{ii}\):总杠杆为 1 时,最坏情况就是全仓风险最大的那只股票。
- 因子暴露:设 \(X\in\mathbf R^{K\times N}\) 是因子载荷矩阵,组合的因子暴露是 \(Xw\)。单票仓位上限 \(\|w\|_\infty\le c\) 下最大单因子暴露为 \(|||X|||_\infty\,c\)(最大行绝对值和);总杠杆 \(\|w\|_1\le c\) 下为 \(c\max_{k,i}|X_{ki}|\)(\(\ell_1\to\ell_\infty\) 诱导范数等于最大元素绝对值)。
- 廉价的谱范数估计(习题 5.6.P21):\(|||A|||_2\le\sqrt{|||A|||_1|||A|||_\infty}\),对称矩阵就是 \(|||A|||_2\le|||A|||_1\)。对几千维的协方差矩阵,最大列和是 \(O(n^2)\) 计算,比求最大特征值便宜。另有 \(|||A|||_2\le\|A\|_F\le\sqrt{\operatorname{rank}A}\,|||A|||_2\)(5.6.P20、P24)。
5b.3 谱半径与收敛矩阵
5b.3.1 谱半径不超过任何矩阵范数
设 \(Ax=\lambda x\),令 \(X=[x\ x\ \cdots\ x]\),则 \(AX=\lambda X\),于是 \(|\lambda|\,|||X|||=|||AX|||\le|||A|||\,|||X|||\)。
定理 5.6.9 对任意矩阵范数和 \(A\) 的任意特征值 \(\lambda\):
特别地 \(\rho(A)\le|||A|||_1\)、\(\rho(A)\le|||A|||_\infty\)(最大列和、最大行和),\(|\lambda_{\max}|\le\sigma_1\),\(|\lambda_{\min}|\ge\sigma_n\)。
推导拆解:上面那段一行证明的思路是"把特征向量 \(x\) 复制成矩阵"。 为什么要复制:矩阵范数只对矩阵有定义,不能直接作用在向量 \(x\) 上,所以构造 \(X=[x\ x\ \cdots\ x]\)(\(n\) 列都是 \(x\)),\(X\ne0\)。 第一步:\(AX\) 的每一列是 \(Ax=\lambda x\),所以 \(AX=\lambda X\)。 第二步:两边取矩阵范数,左边用公理 2 得 \(|\lambda|\,|||X|||\),右边用次乘性 \(\le|||A|||\,|||X|||\)。 第三步:\(|||X|||>0\),两边约去,得 \(|\lambda|\le|||A|||\)。对所有特征值取最大即 \(\rho(A)\le|||A|||\)。 第二个不等式:把同样结论用于 \(A^{-1}\),它的特征值是 \(1/\lambda\),所以 \(1/|\lambda|\le|||A^{-1}|||\)。 实务价值:最大列和、最大行和都是 \(O(n^2)\) 次加法就能算出来,它们给出谱半径的免费上界。只要算出 \(|||A|||_\infty<1\),不必求特征值就知道 VAR 平稳(练习 3)。正规矩阵 \(\rho(A)=|||A|||_2\),一般矩阵可以严格小于(幂零矩阵 \(\rho=0\) 而范数不为零,5.6.P15)。
谱半径本身不是范数(5.6.P19):\(\rho(A)=0\) 不推出 \(A=0\),\(\rho(A+B)>\rho(A)+\rho(B)\)、\(\rho(AB)>\rho(A)\rho(B)\) 都可能发生。但它是所有矩阵范数的下确界:
引理 5.6.10 对任意 \(A\) 和 \(\varepsilon>0\),存在(诱导的)矩阵范数使
证明 Schur 分解 \(A=U\Delta U^*\),\(\Delta\) 上三角,对角元是特征值。令 \(D_t=\operatorname{diag}(t,t^2,\dots,t^n)\),则 \(D_t\Delta D_t^{-1}\) 的 \((i,j)\) 元(\(j>i\))为 \(t^{-(j-i)}d_{ij}\):\(t\) 越大,非对角元越小。取 \(t\) 充分大使非对角元的列绝对值和都小于 \(\varepsilon\),则 \(|||D_t\Delta D_t^{-1}|||_1\le\rho(A)+\varepsilon\)。由定理 5.6.7,\(|||B|||=|||(D_tU^*)B(D_tU^*)^{-1}|||_1\) 是诱导矩阵范数。\(\square\)
推导拆解:证明分三步,每步用一个工具。
- Schur 分解(第 02a 章):任何方阵都能用酉矩阵 \(U\)(复数版的正交矩阵,相当于旋转坐标轴,不改变长度)化成上三角 \(\Delta\),对角线就是特征值。上三角矩阵的"拉伸"由对角元(特征值)和对角线以上的元素两部分组成。
- 对角缩放:\(D_t\Delta D_t^{-1}\) 的 \((i,j)\) 元是 \(t^i\,d_{ij}\,t^{-j}=t^{-(j-i)}d_{ij}\)。对角元(\(i=j\))不变;对角线以上(\(j>i\))乘以 \(t\) 的负幂,\(t\) 取得很大时趋于 0。例如 \(\Delta=\begin{bmatrix}0.5&2\\0&0.6\end{bmatrix}\),\(t=100\) 时右上角变成 \(0.02\)。
- 换范数:于是 \(D_t\Delta D_t^{-1}\) 的最大列和 \(\le\max|\lambda_i|+\varepsilon\)。定理 5.6.7 保证"先换坐标、再算列和"仍是一个合法的诱导矩阵范数。 合起来:对每个 \(\varepsilon\) 都能造出一个范数,使 \(|||A|||\le\rho(A)+\varepsilon\);而定理 5.6.9 说任何范数都 \(\ge\rho(A)\)。所以 \(\rho(A)\) 是所有矩阵范数的下确界。实战 1 的 \(t=1,10,100\) 正是这一构造的数值演示。
直觉:总能找到一个"量尺"(坐标系),使 \(A\) 的拉伸倍数几乎就是谱半径。非对角元带来的"额外拉伸"可以通过拉伸坐标轴压到任意小,但不能完全消除(除非最大模特征值都是半单的——半单指该特征值对应的 Jordan 块都是 \(1\times1\),即几何重数等于代数重数,5.6.P38)。
5b.3.2 收敛矩阵
定理 5.6.12 \(\lim_{k\to\infty}A^k=0\) 当且仅当 \(\rho(A)<1\)。
证明 必要性:\(Ax=\lambda x\) 则 \(A^kx=\lambda^kx\to0\),需要 \(|\lambda|<1\)。充分性:由 5.6.10 存在矩阵范数 \(|||A|||<1\),于是 \(|||A^k|||\le|||A|||^k\to0\),再由有限维范数等价得逐元素收敛(引理 5.6.11)。\(\square\)
注意:判断收敛只需要某一个矩阵范数小于 1;可能 \(|||A|||_\alpha<1\) 而 \(|||A|||_\beta>1\)。
推论 5.6.13 对任意 \(\varepsilon>0\),存在常数 \(C\) 使 \(|(A^k)_{ij}|\le C(\rho(A)+\varepsilon)^k\)。不能取 \(\varepsilon=0\):\(A=\begin{bmatrix}a&1\\0&a\end{bmatrix}\) 时 \(A^k=\begin{bmatrix}a^k&ka^{k-1}\\0&a^k\end{bmatrix}\),Jordan 块带来多项式因子 \(k\)。
推论 5.6.14(Gelfand 公式) 对任意矩阵范数,
下界来自 \(\rho(A)^k=\rho(A^k)\le|||A^k|||\);上界来自对 \(A/(\rho(A)+\varepsilon)\) 用 5.6.12。定理 5.7.10 说明它对 \(M_n\) 上任何向量范数甚至预范数都成立。
推导拆解:要证 \(|||A^k|||^{1/k}\) 被夹在 \(\rho(A)\) 与 \(\rho(A)+\varepsilon\) 之间(\(k\) 足够大时)。 下界:\(A^k\) 的特征值是 \(\lambda_i^k\),所以 \(\rho(A^k)=\rho(A)^k\);再用定理 5.6.9 得 \(\rho(A)^k\le|||A^k|||\),两边开 \(k\) 次方。 上界:令 \(B=A/(\rho(A)+\varepsilon)\),它的谱半径 \(\rho(A)/(\rho(A)+\varepsilon)<1\),由定理 5.6.12 有 \(B^k\to0\),所以 \(k\) 足够大时 \(|||B^k|||<1\),即 \(|||A^k|||<(\rho(A)+\varepsilon)^k\),开 \(k\) 次方。 两边夹住、\(\varepsilon\) 任意小,极限就是 \(\rho(A)\)。 金融直觉:这和"年化收益率"是同一个动作。\(|||A^k|||\) 是冲击传播 \(k\) 期后的累计放大倍数,开 \(k\) 次方得到"平均每期放大倍数",就像把 \(k\) 年累计收益 \((1+R_k)\) 开 \(k\) 次方得到几何平均年收益。短期可能有瞬态放大(像头几年的异常收益),但长期的"年化"一定收敛到 \(\rho(A)\)。
量化含义:VAR 的平稳性与瞬态放大。VAR(1) 模型 \(x_{t+1}=Ax_t+\varepsilon_t\) 平稳当且仅当 \(\rho(A)<1\)(VAR(\(p\)) 先写成伴随形式);冲击的脉冲响应是 \(A^k\),其长期衰减速度由 \(\rho(A)\) 决定(Gelfand 公式),半衰期约为 \(\ln0.5/\ln\rho(A)\)。但非正规的 \(A\)(变量之间有强烈的单向影响)会出现瞬态放大:\(|||A^k|||\) 先上升后下降,即使 \(\rho(A)<1\)。实战 1 中 \(\rho(A)=0.6\),但 \(|||A^2|||_2=2.24\)——冲击在头两期被放大一倍多,之后才衰减。只看特征值会严重低估短期风险。正规的 \(A\)(如对称矩阵)没有这个现象,因为 \(|||A^k|||_2=\rho(A)^k\)。
5b.4 矩阵幂级数与 Neumann 级数
5b.4.1 矩阵幂级数
由 \(|||\sum a_kA^k|||\le\sum|a_k|\,|||A|||^k\),若 \(|||A|||\) 小于标量级数 \(\sum a_kz^k\) 的收敛半径 \(R\),矩阵级数收敛;再由 5.6.10:
定理 5.6.15 若 \(\rho(A)<R\),则 \(\sum a_kA^k\) 收敛。
于是 \(e^A=\sum A^k/k!\) 对一切 \(A\) 有定义(\(R=\infty\)),\(\log(I-A)=-\sum_{k\ge1}A^k/k\) 在 \(\rho(A)<1\) 时有定义。对可对角化的 \(A=S\Lambda S^{-1}\),本原矩阵函数 \(f(A)=Sf(\Lambda)S^{-1}\) 与 \(S\) 的选取无关,并与幂级数定义一致。(连续时间 Markov 链的转移矩阵 \(e^{Qt}\)、仿射期限结构模型中的 \(e^{Kt}\) 都属此类。)
5b.4.2 Neumann 级数
推论 5.6.16(Neumann 级数) 若某个矩阵范数满足 \(|||A|||<1\),则 \(I-A\) 非奇异,且
证明:\((I-A)\sum_{k=0}^NA^k=I-A^{N+1}\to I\)。
金融直觉:这是永续年金公式的矩阵版。标量情形 \(1+r+r^2+\cdots=1/(1-r)\)(\(|r|<1\)),证明方法也一样——"错位相减":\((1-r)(1+r+\cdots+r^N)=1-r^{N+1}\),你在推导年金现值公式时用过。矩阵版唯一要多注意的是乘法顺序,但 \(A\) 的幂彼此可交换,所以没有问题。 条件 \(|||A|||<1\) 保证 \(|||A^{N+1}|||\le|||A|||^{N+1}\to0\);更弱的条件 \(\rho(A)<1\) 也够(定理 5.6.12)。 读法:\(I\) 是初始冲击本身,\(A\) 是第一轮传导,\(A^2\) 是第二轮……\((I-A)^{-1}\) 就是把所有轮次加总的"总乘数",就像宏观里的投资乘数 \(1/(1-\text{MPC})\)。
几条实用推论(原书正文练习):
- 若 \(|||I|||=1\) 且 \(|||A|||<1\):\(\dfrac1{1+|||A|||}\le|||(I-A)^{-1}|||\le\dfrac1{1-|||A|||}\)。
- 近似逆:若 \(|||BA-I|||<1\),则 \(A,B\) 都非奇异。
- 到奇异矩阵的距离:若 \(A\) 非奇异而 \(A+E\) 奇异,则 \(|||E|||\ge1/|||A^{-1}|||\)。因为 \(A+E=A(I+A^{-1}E)\),若 \(|||A^{-1}E|||<1\) 则非奇异。对诱导范数这个下界是可以达到的(5.6.P49):
谱范数下就是 \(\sigma_n(A)\),最近的奇异矩阵是把 SVD 中最小奇异值置零(Eckart–Young 的特例,5.6.P52)。并且这一性质刻画了诱导范数(5.6.P50–P51)。
白话解释:"奇异"就是不可逆,相当于某个方向被压扁成 0。到奇异矩阵的距离,就是"最少要改动多少,才能把某个方向压扁"。最省力的做法是去压本来就最扁的那个方向(最小奇异值 \(\sigma_n\) 对应的方向),改动量正好是 \(\sigma_n\)。 对协方差矩阵:\(\lambda_{\min}\) 就是 \(\Sigma\) 离"某个组合方差为 0"(即存在完全对冲、有资产可被其他资产精确复制)还有多远。\(\lambda_{\min}\) 很小,意味着估计误差稍大一点,\(\hat\Sigma\) 就可能显示出一个"零风险组合"——这正是套利幻觉的来源。
推论 5.6.17(Levy–Desplanques 定理) 若 \(|a_{ii}|>\sum_{j\ne i}|a_{ij}|\) 对所有 \(i\) 成立(严格对角占优),则 \(A\) 非奇异。证明:\(D=\operatorname{diag}(a_{ii})\),\(|||I-D^{-1}A|||_\infty<1\),用 Neumann 级数。第 06 章会从 Geršgorin 圆盘重新得到并改进它。
量化含义:网络传染与投入产出。设 \(W_{ij}\) 是机构 \(i\) 对机构 \(j\) 的风险敞口比例,初始冲击 \(s\) 引起的一阶损失是 \(Ws\),二阶 \(W^2s\)……累计损失 \(\sum_kW^ks=(I-W)^{-1}s\)。若每个机构对外敞口之和都小于 1(\(|||W|||_\infty<1\)),级数收敛,系统"吸收"冲击;\(\rho(W)\) 越接近 1,累计放大倍数越大,\(\rho(W)\ge1\) 时冲击不衰减。Leontief 投入产出模型、VAR 的长期乘数 \((I-A)^{-1}\)、DebtRank 类传染指标都是同一结构。实战 1 第 3 部分演示。
5b.5 诱导范数的极小性与特殊矩阵范数
5b.5.1 诱导范数之间的比较
定理 5.6.18 设 \(|||\cdot|||_\alpha,|||\cdot|||_\beta\) 分别由 \(\|\cdot\|_\alpha,\|\cdot\|_\beta\) 诱导,\(R_{\alpha\beta}=\max_x\|x\|_\alpha/\|x\|_\beta\)。则
诱导范数之间的比较常数是对称的:若 \(|||A|||_\alpha\le C|||A|||_\beta\) 对一切 \(A\) 成立,则 \(|||A|||_\beta\le C|||A|||_\alpha\) 也成立。由此,两个诱导范数相等当且仅当诱导它们的向量范数成比例(引理 5.6.23)。
习题 5.6.P23 的常数表(\(|||A|||_\alpha\le C|||A|||_\beta\),行为 \(\alpha\)、列为 \(\beta\)):
| \(\alpha\backslash\beta\) | \(\vert \vert \vert \cdot\vert \vert \vert _1\) | \(\vert \vert \vert \cdot\vert \vert \vert _2\) | \(\vert \vert \vert \cdot\vert \vert \vert _\infty\) | \(|\cdot|_1\) | \(|\cdot|_F\) | \(n\max\vert a_{ij}\vert \) |
|---|---|---|---|---|---|---|
| \(\vert \vert \vert \cdot\vert \vert \vert _1\) | 1 | \(\sqrt n\) | \(n\) | 1 | \(\sqrt n\) | 1 |
| \(\vert \vert \vert \cdot\vert \vert \vert _2\) | \(\sqrt n\) | 1 | \(\sqrt n\) | 1 | 1 | 1 |
| \(\vert \vert \vert \cdot\vert \vert \vert _\infty\) | \(n\) | \(\sqrt n\) | 1 | 1 | \(\sqrt n\) | 1 |
| \(|\cdot|_1\) | \(n\) | \(n^{3/2}\) | \(n\) | 1 | \(n\) | \(n\) |
| \(|\cdot|_F\) | \(\sqrt n\) | \(\sqrt n\) | \(\sqrt n\) | 1 | 1 | 1 |
| \(n\max\vert a_{ij}\vert \) | \(n\) | \(n\) | \(n\) | \(n\) | \(n\) | 1 |
例如 \(\|A\|_F\le\sqrt n|||A|||_2\)(第 5 行第 2 列)。左上 \(3\times3\) 块对称,体现了定理 5.6.18。
5b.5.2 诱导 ⇔ 极小
定义 5.6.31 矩阵范数 \(|||\cdot|||\) 称为极小的,若满足 \(N\le|||\cdot|||\) 的矩阵范数 \(N\) 只有它自己。
定理 5.6.32 矩阵范数是诱导范数,当且仅当它是极小的。
关键构造:对任意矩阵范数 \(|||\cdot|||\) 和 \(z\ne0\),\(\|x\|_z=|||xz^*|||\) 是一个与它相容的向量范数,后者诱导的范数 \(N_z\) 满足 \(N_z\le|||\cdot|||\)(次乘性)。所以任何矩阵范数之下都"压着"一个诱导范数。判断收敛时我们偏好尽量小的范数,诱导范数是最好的选择。例:\(\max\{|||A|||_1,|||A|||_\infty\}\) 是单位的矩阵范数,但不是诱导范数(对 \(A_0=\begin{bmatrix}1&0\\1&3\end{bmatrix}\),\(|||A_0|||_1=3<4\),严格大于一个诱导范数)。
5b.5.3 谱范数的特殊地位
酉不变范数:\(\|UAV\|=\|A\|\) 对一切酉 \(U,V\)。Frobenius 范数和谱范数都是。
定理 5.6.34 若 \(|||\cdot|||\) 是酉不变矩阵范数,则 \(|||A|||_2\le|||A|||\) 对一切 \(A\):谱范数是最小的酉不变矩阵范数。若它还是诱导范数,它就是谱范数。
定理 5.6.35 谱范数是唯一自伴(\(|||A^*|||=|||A|||\))的诱导矩阵范数。(\(|||A^*|||_1=|||A|||_\infty\),所以列和、行和范数不自伴。)
定理 5.6.36 由绝对向量范数诱导的矩阵范数,对对角矩阵取值 \(|||\Lambda|||=\max|\lambda_i|\)(第 06 章 Bauer–Fike 定理要用这条)。
谱范数不是绝对的(5.6.P40):\(\begin{bmatrix}1&1\\1&1\end{bmatrix}\) 与 \(\begin{bmatrix}1&1\\1&-1\end{bmatrix}\) 元素绝对值相同,谱范数分别为 2 和 \(\sqrt2\);把一个元素置零可能增大谱范数(\(\begin{bmatrix}1&1\\-1&1\end{bmatrix}\) 为 \(\sqrt2\),\(\begin{bmatrix}1&1\\0&1\end{bmatrix}\) 为 \((1+\sqrt5)/2\))。但 \(|||A|||_2\le|||\,|A|\,|||_2\)。对协方差矩阵而言:把一个相关系数改小,最大特征值不一定变小(若该相关系数为负)。
5b.5.4 矩阵范数的对偶与迹范数
\(M_n\) 带 Frobenius 内积,可以定义矩阵范数的对偶 \(\|A\|^D=\max_{\|B\|=1}|\operatorname{tr}B^*A|\)。一般而言,矩阵范数的对偶未必是矩阵范数(\(\|\cdot\|_1\) 的对偶是 \(\max|a_{ij}|\))。但:
定理 5.6.41 诱导范数的对偶是矩阵范数。
例(迹范数) 谱范数的对偶是
称为迹范数或核范数(nuclear norm)。由定理 5.6.42,它是酉不变矩阵范数——奇异值之和既次可加又次乘,这一点远非显然。
量化含义:核范数是"矩阵秩的凸替代"。低秩协方差 / 收益矩阵补全(缺失数据填充)、低秩因子模型估计、稳健 PCA 都用核范数惩罚 \(\min\|X-Y\|_F^2+\tau|||X|||_{\operatorname{tr}}\),其解是对 \(Y\) 的奇异值做软阈值(奇异值减 \(\tau/2\) 再截到非负)。这与第 04a 章的特征值裁剪是同一类操作。
5b.5.5 多项式根的界(5.6.P27–P35,选读)
首一多项式 \(p(z)=z^n+a_{n-1}z^{n-1}+\cdots+a_0\) 的根是其伴随矩阵 \(C(p)\) 的特征值,所以任何根 \(\tilde z\) 满足 \(|\tilde z|\le|||C(p)|||\)。取不同的范数得到经典的根界:
- 最大行和 ⟹ Cauchy 界 \(|\tilde z|\le\max\{|a_0|,1+|a_1|,\dots,1+|a_{n-1}|\}\);
- 最大列和 ⟹ Montel 界 \(|\tilde z|\le\max\{1,|a_0|+\cdots+|a_{n-1}|\}\);
- 谱范数 ⟹ Carmichael–Mason 界 \(|\tilde z|\le\sqrt{1+|a_0|^2+\cdots+|a_{n-1}|^2}\),以及更精确的 \(\sigma_1(C(p))\);
- Kakeya 定理(5.6.P30):系数 \(a_n\ge a_{n-1}\ge\cdots\ge a_0\ge0\) 的多项式所有根在单位圆盘内。
AR(\(p\)) 模型 \(x_t=\phi_1x_{t-1}+\cdots+\phi_px_{t-p}+\varepsilon_t\) 的平稳性等价于 \(z^p-\phi_1z^{p-1}-\cdots-\phi_p\) 的根都在单位圆内。这些界给出快速的必要/充分检查(练习 8)。
5b.5.6 其他习题要点
- 5.6.P11:\(|||AA^*|||_2=|||A^*A|||_2=|||A|||_2^2\)。
- 5.6.P10:Hadamard 不等式 \(|\det A|\le\prod_j\|a_j\|_2\);以及 \(|\det A|\le\prod_j\|a_j\|_1\)。对协方差矩阵:\(\det\Sigma\le\prod\Sigma_{ii}\)(广义方差不超过方差之积,等号当且仅当不相关)。
- 5.6.P12:两个半正定矩阵的交换子 \(|||AB-BA|||_2\le\frac12|||A|||_2|||B|||_2\)。
- 5.6.P38:存在矩阵范数使 \(|||A|||=\rho(A)\),当且仅当 \(A\) 的每个最大模特征值都是半单的。
5b.6 矩阵上的向量范数(5.7 节,简介)
有些应用不需要次乘性。本节研究 \(M_n\) 上一般的范数 \(G\):
- 定理 5.7.10(广义 Gelfand 公式):对 \(M_n\) 上任何预范数 \(f\),\(\lim f(A^k)^{1/k}=\rho(A)\)。所以用 \(\max|a_{ij}|\) 这种非矩阵范数也可以估计谱半径和判断 \(A^k\to0\)。
- 定理 5.7.11:\(\gamma G\) 是矩阵范数当且仅当 \(\gamma\ge c(G)=\max_{G(A)=G(B)=1}G(AB)\)。例:\(\max|a_{ij}|\) 的 \(c=n\)。
- 相容性(5.7.12–5.7.17):\(G\) 与 \(\mathbf C^n\) 上某个范数相容(\(\|Ax\|\le G(A)\|x\|\))当且仅当 \(G(A_1)\cdots G(A_k)\ge\rho(A_1\cdots A_k)\) 对一切乘积成立。
- 谱占优(5.7.19–5.7.20):\(G(A)\ge\rho(A)\) 对一切 \(A\),当且仅当对每个 \(A\) 有 \(G(A^k)\le\gamma_AG(A)^k\)。
- 数值半径(5.7 例 4、5.7.P20–P25):\(r(A)=\max_{\|x\|_2=1}|x^*Ax|\) 是范数但不是矩阵范数,满足 \(\tfrac12|||A|||_2\le r(A)\le|||A|||_2\),正规时等于 \(\rho(A)\);幂不等式 \(r(A^m)\le r(A)^m\);\(4r(\cdot)\) 是矩阵范数且常数 4 最优。
这些内容与量化实务没有直接关联,需要时回查原书 PDF p.391–401。
5b.7 条件数(5.8 节)
5b.7.1 逆矩阵的扰动
要计算 \(A^{-1}\),实际处理的是 \(B=A+\Delta A\)(\(\Delta A\) 来自数据误差或舍入误差)。设 \(|||A^{-1}\Delta A|||<1\),则 \(B=A(I+A^{-1}\Delta A)\) 非奇异。由恒等式
和 \(|||B^{-1}|||\le|||A^{-1}|||/(1-|||A^{-1}\Delta A|||)\),得到
其中
称为(求逆的)条件数(condition number)。总有 \(\kappa(A)\ge|||I|||\ge1\)。
推导拆解:从恒等式到 (5.8.4) 的中间步骤。
- 恒等式 \(A^{-1}-B^{-1}=A^{-1}(B-A)B^{-1}=A^{-1}(\Delta A)B^{-1}\):把右边展开,\(A^{-1}BB^{-1}-A^{-1}AB^{-1}=A^{-1}-B^{-1}\),直接验证即可。这是标量 \(\frac1a-\frac1b=\frac{b-a}{ab}\) 的矩阵版。
- 取范数并用次乘性:\(|||A^{-1}-B^{-1}|||\le|||A^{-1}|||\,|||\Delta A|||\,|||B^{-1}|||\)。
- 控制 \(|||B^{-1}|||\):\(B^{-1}=(I+A^{-1}\Delta A)^{-1}A^{-1}\),第一个因子用 Neumann 级数的界 \(\le1/(1-|||A^{-1}\Delta A|||)\)。
- 两边除以 \(|||A^{-1}|||\),再把 \(|||\Delta A|||\) 写成 \(|||A|||\cdot\frac{|||\Delta A|||}{|||A|||}\),凑出 \(|||A|||\,|||A^{-1}|||=\kappa(A)\) 乘以相对误差。 要点:左边是输出(逆矩阵)的相对误差,右边是输入(\(A\))的相对误差乘以约 \(\kappa(A)\)。这就是"条件数 = 相对误差放大倍数"的来源。若进一步 \(|||A^{-1}|||\,|||\Delta A|||<1\),
这是先验界:只用计算前已知的量。\(\kappa(A)\,|||\Delta A|||/|||A|||\ll1\) 时,右端约为 \(\kappa(A)\) 乘以数据的相对误差。条件数就是相对误差的放大倍数。\(\kappa\) 大称病态(ill conditioned),接近 1 称良态;这些说法都相对于所选的范数(不同范数下的条件数互相等价,5.8.P5)。
谱范数下(最常用):
几条性质:\(\kappa_2(UAV)=\kappa_2(A)\)(酉变换不恶化条件数,这是 QR、SVD、Householder 变换数值稳定的根源);\(\kappa_2(A)=1\) 当且仅当 \(A\) 是酉矩阵的数量倍;\(\kappa(AB)\le\kappa(A)\kappa(B)\)。
金融直觉:协方差矩阵的 \(\kappa_2=\lambda_{\max}/\lambda_{\min}\) 是"风险最大的方向"与"风险最小的方向"的方差之比。在股票市场里,\(\lambda_{\max}\) 对应市场因子(所有股票同涨同跌),\(\lambda_{\min}\) 对应某个几乎无风险的多空对冲组合(比如两只高度相关股票的价差)。\(\Sigma^{-1}\) 把方差小的方向放大 \(1/\lambda_{\min}\) 倍,所以均值–方差优化会大举押注那些"看起来几乎无风险"的对冲组合;而这些方向上的方差恰恰是样本里估计得最不准的。 数值例子:两只股票波动率都是 20%、相关系数 0.95,\(\Sigma\) 的特征值是 \(0.04\times1.95=0.078\) 和 \(0.04\times0.05=0.002\),\(\kappa_2=39\)。相关系数升到 0.99,\(\kappa_2=199\)。
5b.7.2 线性方程组的扰动
解 \(Ax=b\),实际解的是 \((A+\Delta A)(x+\Delta x)=b+\Delta b\)。展开得 \(\Delta x=(A+\Delta A)^{-1}(\Delta b-\Delta A\,x)\),再用 \(\|b\|\le|||A|||\,\|x\|\):
后验界:已有计算解 \(\hat x\),残差 \(r=b-A\hat x\)。由 \(x-\hat x=A^{-1}r\),
良态问题中,解的相对误差与相对残差同阶;病态问题中残差很小的解仍可能离真解很远(5.8.P8:\(\kappa\approx4\times10^6\) 时,相对残差 \(7\times10^{-4}\) 的解相对误差高达 \(1.4\times10^3\))。
推导拆解:后验界 (5.8.10) 只要三步。
- 真解满足 \(Ax=b\),计算解满足 \(A\hat x=b-r\),相减得 \(A(x-\hat x)=r\),即 \(x-\hat x=A^{-1}r\)。
- 取范数:\(\|x-\hat x\|\le|||A^{-1}|||\,\|r\|\)。
- 再用 \(\|b\|=\|Ax\|\le|||A|||\,\|x\|\),即 \(\frac1{\|x\|}\le\frac{|||A|||}{\|b\|}\),两式相乘得 \(\frac{\|x-\hat x\|}{\|x\|}\le|||A|||\,|||A^{-1}|||\frac{\|r\|}{\|b\|}\)。 先验界 (5.8.9) 的思路相同,只是 \(\Delta x\) 同时来自 \(\Delta b\) 和 \(\Delta A\) 两个来源,分母多了一项 Neumann 级数修正。 白话解释:残差 \(r\) 是"代回去差多少",误差 \(x-\hat x\) 是"答案错多少"。病态时两者可以差 \(\kappa\) 倍。类比回测:一个模型在样本内拟合误差很小(残差小),不代表参数估得准(误差小);如果自变量高度共线(病态),参数可以离真值很远而拟合优度几乎不变。
逐元素敏感度:令 \(C=A^{-1}\),则
若 \(A^{-1}\) 有很大的元素,解的某些分量对 \(b\) 和 \(A\) 的某些元素必然高度敏感,这与算法无关,是问题本身的性质。
5b.7.3 条件数的几何意义与几条警示
- 到奇异矩阵的相对距离(5.8.P13):对诱导范数,
\[\frac1{\kappa(A)}=\frac{\operatorname{dist}(A,\{\text{奇异矩阵}\})}{|||A|||}.\]条件数为 \(10^6\) 的矩阵,只要改动其范数的百万分之一就可能变成奇异矩阵。
- 非正规矩阵的病态不体现在特征值上(5.8.P2–P4):任何范数下 \(\kappa(A)\ge\rho(A)\rho(A^{-1})\),即特征值模之比大必病态;但反之不然。\(B_\epsilon=\begin{bmatrix}1&-1\\1&-1-\epsilon\end{bmatrix}\) 的特征值模之比有界,条件数却是 \(O(\epsilon^{-1})\)。对非正规矩阵要看奇异值之比。
- 行列式小不代表病态(5.8.P7):\(\epsilon I\) 的行列式是 \(\epsilon^n\),条件数是 1。用 \(\det\Sigma\) 接近 0 判断协方差"近奇异"是错误的;应该看 \(\lambda_{\min}/\lambda_{\max}\)。
- Hilbert 矩阵(5.8.P9):\(H_n=[1/(i+j-1)]\) 元素有界、谱半径不大,但 \(\kappa(H_n)\sim e^{3.5n}\)(\(\kappa(H_8)\sim1.5\times10^{10}\))。病态来自最小特征值极小。
- 正规方程把条件数平方(5.8.P10):\(\kappa_2(A^*A)=\kappa_2(A)^2\)。所以最小二乘(因子回归、横截面回归)应该用 QR 或 SVD 而不是解 \(X^TX\beta=X^Ty\)(第 02a 章实战已演示)。
量化含义:均值–方差优化为什么是"误差放大器"。无约束最优权重 \(w^*\propto\Sigma^{-1}\mu\) 就是解线性方程组 \(\Sigma w=\mu\)。由 (5.8.9):
- \(\mu\) 的误差被放大至多 \(\kappa(\Sigma)\) 倍。当 \(\mu\) 主要沿高方差方向(例如预期收益与市场 beta 成正比的 CAPM 式结构),而误差落在低方差方向时,放大倍数接近 \(\kappa\)。股票数多、相关性强时 \(\kappa(\Sigma)\) 动辄几百上千,1% 的预期收益误差就可能让权重面目全非——Michaud 称均值–方差优化为"误差最大化器",这是它的线性代数解释。
- \(\Sigma\) 的估计误差:若 \(\kappa(\Sigma)\cdot\|\Delta\Sigma\|_2/\|\Sigma\|_2\ge1\),先验界 (5.8.9) 失效——估计误差已经超过了 \(\Sigma\) 到奇异矩阵的距离,样本协方差在最小特征方向上的信息基本是噪声。典型的 \(N/T\) 下这几乎总是成立的(第 04a 章实战 2)。
- 对策:降低 \(\kappa(\hat\Sigma)\)——收缩(向 \(\nu I\) 或因子结构收缩)、特征值裁剪、因子模型、加 \(\ell_2\) 正则(等价于 \(\Sigma+\gamma I\))、加约束(多头、仓位上限)。实战 2 显示:收缩使 \(\|\hat\Sigma-\Sigma\|_2\) 变大,权重误差却大幅变小——因为决定权重误差的是 \(\hat\Sigma^{-1}\) 的误差,而它由条件数控制。
量化实战
实战 1:矩阵范数作为风险度量、VAR 的瞬态放大与网络传染
import numpy as np
rng = np.random.default_rng(8)
norm2 = lambda M: np.linalg.norm(M, 2)
# ---------- 1. 矩阵范数作为风险度量 ----------
n = 30
B = rng.normal(1, 0.3, (n, 1))
Sigma = 0.02 * B @ B.T + np.diag(rng.uniform(0.01, 0.09, n))
lam = np.linalg.eigvalsh(Sigma)
print(f"‖Σ‖₂ = λ_max = {norm2(Sigma):.4f}:‖w‖₂=1 的组合中的最大方差")
w = np.linalg.eigh(Sigma)[1][:, -1]
print(f" 验证:第一主成分组合的方差 {w @ Sigma @ w:.4f}")
print(f"max_(‖w‖₁≤1) wᵀΣw = max_i Σ_ii = {Sigma.diagonal().max():.4f}(ℓ1 球上凸函数的最大值在顶点 ±e_i)")
n1, ninf = np.abs(Sigma).sum(0).max(), np.abs(Sigma).sum(1).max()
print(f"廉价上界 √(|||Σ|||₁·|||Σ|||∞) = {np.sqrt(n1 * ninf):.4f} ≥ ‖Σ‖₂;"
f"Frobenius ‖Σ‖_F = {np.linalg.norm(Sigma):.4f} ≥ ‖Σ‖₂")
# ---------- 2. 非正规 VAR:ρ(A)<1 但先放大后衰减;Gelfand 公式 ----------
A = np.array([[0.5, 2.0],
[0.0, 0.6]]) # 上三角:特征值 0.5, 0.6,强交叉影响
rho = max(abs(np.linalg.eigvals(A)))
print(f"\nρ(A) = {rho}, ‖A‖₂ = {norm2(A):.3f}")
for k in [1, 2, 3, 5, 10, 20, 50, 200]:
Ak = np.linalg.matrix_power(A, k)
print(f" k={k:>3}: ‖A^k‖₂ = {norm2(Ak):8.4f} ‖A^k‖₂^(1/k) = {norm2(Ak)**(1/k):.4f}")
# 引理 5.6.10:对角相似 D_t 把非对角元压小,得到 |||A||| ≤ ρ(A)+ε 的矩阵范数
for t in [1, 10, 100]:
Dt = np.diag([t, t**2])
print(f" t={t:>3}: |||D_t A D_t⁻¹|||₁ = {np.abs(Dt @ A @ np.linalg.inv(Dt)).sum(0).max():.4f}")
# ---------- 3. Neumann 级数:网络传染的累计冲击 (I - A)⁻¹ = Σ A^k ----------
m = 6
W = rng.uniform(0, 1, (m, m)); np.fill_diagonal(W, 0)
W = 0.8 * W / W.sum(1, keepdims=True) # 每行和 0.8 < 1 ⇒ |||W|||∞ < 1
shock = np.zeros(m); shock[0] = 1.0 # 机构 0 受到单位冲击
total = np.linalg.solve(np.eye(m) - W, shock)
partial, term = shock.copy(), shock.copy()
for k in range(1, 31):
term = W @ term; partial += term
print(f"\n|||W|||∞ = {np.abs(W).sum(1).max():.2f},ρ(W) = {max(abs(np.linalg.eigvals(W))):.3f}")
print("累计冲击 (I-W)⁻¹e₀ :", total.round(3))
print("Neumann 前 30 项 :", partial.round(3), f" 误差 {np.abs(total - partial).max():.1e}")
关键输出:
‖Σ‖₂ = λ_max = 0.6724:‖w‖₂=1 的组合中的最大方差
验证:第一主成分组合的方差 0.6724
max_(‖w‖₁≤1) wᵀΣw = max_i Σ_ii = 0.1208(ℓ1 球上凸函数的最大值在顶点 ±e_i)
廉价上界 √(|||Σ|||₁·|||Σ|||∞) = 0.8745 ≥ ‖Σ‖₂;Frobenius ‖Σ‖_F = 0.7256 ≥ ‖Σ‖₂
ρ(A) = 0.6, ‖A‖₂ = 2.143
k= 1: ‖A^k‖₂ = 2.1425 ‖A^k‖₂^(1/k) = 2.1425
k= 2: ‖A^k‖₂ = 2.2429 ‖A^k‖₂^(1/k) = 1.4976
k= 3: ‖A^k‖₂ = 1.8370 ‖A^k‖₂^(1/k) = 1.2247
k= 5: ‖A^k‖₂ = 0.9340 ‖A^k‖₂^(1/k) = 0.9864
k= 10: ‖A^k‖₂ = 0.1016 ‖A^k‖₂^(1/k) = 0.7956
k= 20: ‖A^k‖₂ = 0.0007 ‖A^k‖₂^(1/k) = 0.6961
k= 50: ‖A^k‖₂ = 0.0000 ‖A^k‖₂^(1/k) = 0.6371
k=200: ‖A^k‖₂ = 0.0000 ‖A^k‖₂^(1/k) = 0.6091
t= 1: |||D_t A D_t⁻¹|||₁ = 2.6000
t= 10: |||D_t A D_t⁻¹|||₁ = 0.8000
t=100: |||D_t A D_t⁻¹|||₁ = 0.6200
|||W|||∞ = 0.80,ρ(W) = 0.800
累计冲击 (I-W)⁻¹e₀ : [1.73 0.869 0.964 0.828 0.949 0.916]
Neumann 前 30 项 : [1.729 0.868 0.963 0.827 0.948 0.915] 误差 1.1e-03
读法:
- 不同范数回答不同的风险问题。\(\ell_2\) 归一化下最坏组合是第一主成分,方差 0.672;总杠杆为 1 时最坏是全仓方差最大的那只股票,方差只有 0.121——两种归一化下"最坏"的含义完全不同。廉价上界 0.875 和 Frobenius 范数 0.726 都给出 \(\lambda_{\max}\) 的上界,无需特征分解。
- VAR 系数矩阵的两个特征值是 0.5、0.6,看似"很快衰减",但交叉系数 2.0 使冲击在第 2 期被放大到 2.24 倍,第 5 期才回落到 1 以下。\(\|A^k\|^{1/k}\) 缓慢收敛到 \(\rho=0.6\)(Gelfand 公式)。引理 5.6.10 的对角缩放把最大列和从 2.6 压到 0.62,逼近谱半径。
- 网络中每个机构对外敞口之和为 0.8,Neumann 级数收敛,误差按 \(0.8^{31}\approx10^{-3}\) 衰减。初始冲击 1 被放大成机构 0 自身的 1.73 和其他机构各约 0.83–0.96。
实战 2:条件数与均值–方差优化的稳定性
场景:40 只股票分 4 个行业,行业内相关 0.9、行业间 0.35,预期收益与"对市场组合的协方差"成正比(CAPM 式)。
import numpy as np
rng = np.random.default_rng(13)
norm2 = lambda M: np.linalg.norm(M, 2)
cond = lambda M: np.linalg.cond(M, 2)
# ---------- 构造一个"真实"协方差:行业内高相关 ----------
n = 40
ind = np.repeat(np.arange(4), 10) # 4 个行业各 10 只
R = 0.35 + 0.55 * (ind[:, None] == ind[None, :]) # 行业内相关 0.9,行业间 0.35
np.fill_diagonal(R, 1.0)
vol = rng.uniform(0.2, 0.4, n)
Sigma = R * np.outer(vol, vol)
mu = 2.0 * Sigma @ np.ones(n) / n # "CAPM 式"预期收益:与市场协方差成正比
def mvo(S, m): # 无约束均值-方差:w ∝ Σ⁻¹μ
return np.linalg.solve(S, m)
w0 = mvo(Sigma, mu)
print(f"κ₂(Σ) = {cond(Sigma):.0f}")
# ---------- 1. μ 的相对误差被放大多少?(5.8.9 中 ΔA = 0 的情形) ----------
amps = []
for _ in range(2000):
d = rng.standard_normal(n); d *= 0.01 * np.linalg.norm(mu) / np.linalg.norm(d) # 1% 相对误差
dw = mvo(Sigma, mu + d) - w0
amps.append((np.linalg.norm(dw) / np.linalg.norm(w0)) / 0.01)
print(f"μ 有 1% 相对误差时,权重相对误差的放大倍数:中位数 {np.median(amps):.1f},"
f"最大 {np.max(amps):.1f},理论上界 κ = {cond(Sigma):.0f}")
# 最坏方向:μ 的误差沿 Σ 的最小特征向量
lam, V = np.linalg.eigh(Sigma)
d = V[:, 0] * 0.01 * np.linalg.norm(mu)
dw = mvo(Sigma, mu + d) - w0
print(f"沿最小特征向量的 1% 误差:放大 {(np.linalg.norm(dw)/np.linalg.norm(w0))/0.01:.1f} 倍")
# ---------- 2. Σ 的估计误差:先验界何时失效?收缩的作用 ----------
T = 250
L = np.linalg.cholesky(Sigma)
for delta in [0.0, 0.2, 0.5]:
errs, ks, rs = [], [], []
for _ in range(100):
X = rng.standard_normal((T, n)) @ L.T
S = np.cov(X, rowvar=False)
Sd = (1 - delta) * S + delta * np.trace(S) / n * np.eye(n) # 向 νI 收缩
w = mvo(Sd, mu)
errs.append(np.linalg.norm(w - w0) / np.linalg.norm(w0))
ks.append(cond(Sd)); rs.append(norm2(Sd - Sigma) / norm2(Sigma))
print(f"δ={delta:.1f}: κ(Σ̂)≈{np.mean(ks):5.0f} ‖ΔΣ‖/‖Σ‖≈{np.mean(rs):.3f} "
f"κ(Σ)·‖ΔΣ‖/‖Σ‖≈{cond(Sigma)*np.mean(rs):5.1f} 权重相对误差≈{np.mean(errs):.2f}")
# ---------- 3. 后验界:残差小 ≠ 解准确(5.8.10) ----------
eps = 1e-6
Bm = np.array([[1, -1], [1, -1 - eps]])
b = np.array([1.0, 1.0]); x_true = np.array([1.0, 0.0])
x_hat = np.array([1 + eps**-0.5, eps**-0.5]) # 原书 5.8.P8 的近似解
r = b - Bm @ x_hat
rel_res = np.linalg.norm(r) / np.linalg.norm(b)
rel_err = np.linalg.norm(x_hat - x_true) / np.linalg.norm(x_true)
print(f"\nκ(B_ε) = {cond(Bm):.2e},相对残差 {rel_res:.1e},相对误差 {rel_err:.1e},"
f"界 κ·相对残差 = {cond(Bm) * rel_res:.1e}")
# ---------- 4. 到最近奇异矩阵的距离 = σ_min = 1/‖Σ⁻¹‖₂ ----------
print(f"\n‖Σ⁻¹‖₂⁻¹ = {1 / norm2(np.linalg.inv(Sigma)):.5f},σ_min(Σ) = {lam[0]:.5f};"
f"相对距离 σ_min/σ_max = {lam[0]/lam[-1]:.2e} = 1/κ")
X_f = rng.standard_normal((500, 3)); X_f[:, 2] = X_f[:, 1] + 1e-3 * X_f[:, 2]
print(f"近共线因子回归:κ(X) = {cond(X_f):.2e},κ(XᵀX) = {cond(X_f.T @ X_f):.2e} ≈ κ(X)²")
关键输出:
κ₂(Σ) = 469
μ 有 1% 相对误差时,权重相对误差的放大倍数:中位数 239.8,最大 342.0,理论上界 κ = 469
沿最小特征向量的 1% 误差:放大 457.5 倍
δ=0.0: κ(Σ̂)≈ 750 ‖ΔΣ‖/‖Σ‖≈0.118 κ(Σ)·‖ΔΣ‖/‖Σ‖≈ 55.4 权重相对误差≈7.50
δ=0.2: κ(Σ̂)≈ 73 ‖ΔΣ‖/‖Σ‖≈0.205 κ(Σ)·‖ΔΣ‖/‖Σ‖≈ 96.0 权重相对误差≈1.89
δ=0.5: κ(Σ̂)≈ 20 ‖ΔΣ‖/‖Σ‖≈0.483 κ(Σ)·‖ΔΣ‖/‖Σ‖≈226.4 权重相对误差≈1.38
κ(B_ε) = 4.00e+06,相对残差 7.1e-04,相对误差 1.4e+03,界 κ·相对残差 = 2.8e+03
‖Σ⁻¹‖₂⁻¹ = 0.00419,σ_min(Σ) = 0.00419;相对距离 σ_min/σ_max = 2.13e-03 = 1/κ
近共线因子回归:κ(X) = 2.02e+03,κ(XᵀX) = 4.06e+06 ≈ κ(X)²
读法:
- \(\mu\) 的误差:真实协方差的条件数 469。预期收益 1% 的随机相对误差,使权重的相对误差变成 2.4 倍(放大约 240 倍);误差恰好落在最小特征方向时放大 458 倍,几乎达到理论上界 \(\kappa\)。上界之所以几乎取到,是因为 CAPM 式的 \(\mu\) 主要沿最大特征方向(市场方向)——这正是实务中最常见的结构。
- \(\Sigma\) 的误差:250 天、40 只股票,样本协方差的相对误差约 12%,而 \(\Sigma\) 到奇异矩阵的相对距离只有 \(1/469\approx0.2\%\)。\(\kappa\cdot\|\Delta\Sigma\|/\|\Sigma\|=55\gg1\),先验界失效,样本协方差的逆基本不可信:用它算出的权重相对误差高达 750%。向 \(\nu I\) 收缩 50% 后,\(\|\hat\Sigma-\Sigma\|\) 反而变大(48%),但 \(\kappa(\hat\Sigma)\) 从 750 降到 20,权重误差降到 138%。对优化而言,"估计得准"不如"逆得稳"。
- 小残差不等于准确:病态 \(2\times2\) 系统中相对残差 \(7\times10^{-4}\),相对误差 \(1.4\times10^3\),后验界 \(\kappa\cdot\) 相对残差 \(=2.8\times10^3\) 正确地给出了警告。
- 到奇异矩阵的距离等于最小特征值,相对距离等于 \(1/\kappa\)。近共线的因子使 \(\kappa(X^TX)=\kappa(X)^2\)。
本章小结
矩阵范数是加上次乘性 \(|||AB|||\le|||A|||\,|||B|||\) 的范数。由向量范数诱导的算子范数 \(|||A|||=\max\|Ax\|/\|x\|\) 都是矩阵范数,并且恰好是极小的矩阵范数;最常用的是最大列和、最大行和与谱范数 \(\sigma_1\),谱范数是最小的酉不变矩阵范数,迹范数(奇异值之和)是它的对偶。谱半径不超过任何矩阵范数,又是所有矩阵范数的下确界,由此得到 \(A^k\to0\iff\rho(A)<1\)、Gelfand 公式 \(\rho(A)=\lim|||A^k|||^{1/k}\)、矩阵幂级数的收敛判据和 Neumann 级数 \((I-A)^{-1}=\sum A^k\);非正规矩阵在 \(\rho<1\) 时仍可能出现瞬态放大。到奇异矩阵的距离等于 \(1/|||A^{-1}|||\),严格对角占优矩阵非奇异。条件数 \(\kappa(A)=|||A|||\,|||A^{-1}|||\) 是求逆与解方程时相对误差的放大倍数,谱范数下等于 \(\sigma_1/\sigma_n\),其倒数是到奇异矩阵的相对距离;后验界提醒残差小不等于解准确,正规方程会把条件数平方。对量化,最重要的结论是:均值–方差权重 \(\Sigma^{-1}\mu\) 的误差被 \(\kappa(\Sigma)\) 放大,当估计误差超过 \(\Sigma\) 到奇异矩阵的距离时先验界失效,降低条件数(收缩、裁剪、因子模型、正则化)比单纯追求协方差估计的精度更重要。
| 概念 / 定理 | 公式 | 量化用途 |
|---|---|---|
| 次乘性 | \(\vert \vert \vert AB\vert \vert \vert \le\vert \vert \vert A\vert \vert \vert \,\vert \vert \vert B\vert \vert \vert \) | 多步冲击的界 |
| 诱导范数 | \(\vert \vert \vert A\vert \vert \vert =\max_{x\ne0}|Ax|/|x|\) | 最大放大倍数 |
| 列和 / 行和 / 谱 | \(\max_j\sum_i\vert a_{ij}\vert \);\(\max_i\sum_j\vert a_{ij}\vert \);\(\sigma_1\) | 风险与暴露上界 |
| 谱范数上界 | \(\vert \vert \vert A\vert \vert \vert _2\le\sqrt{\vert \vert \vert A\vert \vert \vert _1\vert \vert \vert A\vert \vert \vert _\infty}\) | 廉价估计 \(\lambda_{\max}\) |
| 谱半径 | \(\rho(A)\le\vert \vert \vert A\vert \vert \vert \),\(\rho(A)=\inf\vert \vert \vert A\vert \vert \vert \) | |
| 收敛矩阵 | \(A^k\to0\iff\rho(A)<1\) | VAR 平稳性 |
| Gelfand | \(\rho(A)=\lim\vert \vert \vert A^k\vert \vert \vert ^{1/k}\) | 冲击衰减速度 |
| Neumann 级数 | \(\vert \vert \vert A\vert \vert \vert <1\Rightarrow(I-A)^{-1}=\sum A^k\) | 网络传染、长期乘数 |
| 到奇异距离 | \(\operatorname{dist}(A,\mathcal S)=1/\vert \vert \vert A^{-1}\vert \vert \vert \)(诱导范数) | 近奇异判断 |
| Levy–Desplanques | 严格对角占优 ⇒ 非奇异 | 快速可逆性检查 |
| 迹(核)范数 | \(\sum\sigma_i\),谱范数的对偶 | 低秩估计 |
| 条件数 | \(\kappa(A)=\vert \vert \vert A\vert \vert \vert \,\vert \vert \vert A^{-1}\vert \vert \vert \),\(\kappa_2=\sigma_1/\sigma_n\) | 优化稳定性 |
| 方程组扰动 | \(\frac{|\Delta x|}{|x|}\lesssim\kappa\big(\frac{|\Delta b|}{|b|}+\frac{\vert \vert \vert \Delta A\vert \vert \vert }{\vert \vert \vert A\vert \vert \vert }\big)\) | \(\Sigma^{-1}\mu\) 的误差 |
| 后验界 | \(\frac{|x-\hat x|}{|x|}\le\kappa\frac{|r|}{|b|}\) | 残差小 ≠ 准确 |
| 正规方程 | \(\kappa(A^*A)=\kappa(A)^2\) | 回归用 QR / SVD |
练习
基础
- 计算 \(A=\begin{bmatrix}1&-2\\3&4\end{bmatrix}\) 的 \(|||A|||_1\)、\(|||A|||_\infty\)、\(\|A\|_F\),并用 \(\sqrt{|||A|||_1|||A|||_\infty}\) 与 \(\|A\|_F\) 给出 \(|||A|||_2\) 的两个上界。 答案要点:\(|||A|||_1=6\),\(|||A|||_\infty=7\),\(\|A\|_F=\sqrt{30}\approx5.48\);上界 \(\sqrt{42}\approx6.48\) 与 \(5.48\)(真值约 5.12)。
- 证明 \(\max|a_{ij}|\) 不是矩阵范数,但 \(n\max|a_{ij}|\) 是。
- VAR(1) 系数矩阵 \(A=\begin{bmatrix}0.5&0.3\\0.2&0.4\end{bmatrix}\)。不求特征值,用某个诱导范数证明模型平稳。 答案要点:\(|||A|||_\infty=\max(0.8,0.6)=0.8<1\),故 \(\rho(A)<1\)。
- 协方差矩阵特征值为 \(0.001\) 与 \(0.1\)(两只资产)。求 \(\kappa_2\);若 \(\mu\) 有 2% 的相对误差,\(\Sigma^{-1}\mu\) 的相对误差最多多少? 答案要点:\(\kappa=100\);最多 200%。
- 证明对任何矩阵范数和非奇异 \(A\),\(\kappa(A)\ge\rho(A)\rho(A^{-1})\),并举例说明等号可以严格不成立。 提示:\(\rho\le|||\cdot|||\);例子 \(\begin{bmatrix}1&t\\0&1\end{bmatrix}\),特征值比为 1,谱条件数随 \(t\) 增大。
进阶
- 证明 \(|||A|||_2\le\sqrt{|||A|||_1|||A|||_\infty}\)。 提示:\(|||A|||_2^2=\rho(A^*A)\le|||A^*A|||_1\le|||A^*|||_1|||A|||_1=|||A|||_\infty|||A|||_1\)。
- 设 \(\Sigma_\gamma=\Sigma+\gamma I\)(岭正则化)。求 \(\kappa_2(\Sigma_\gamma)\) 关于 \(\gamma\) 的表达式,证明它单调递减,并求使 \(\kappa_2\le K\) 的最小 \(\gamma\)。 答案要点:\(\kappa=\frac{\lambda_n+\gamma}{\lambda_1+\gamma}\);\(\gamma_{\min}=\max\big(0,\frac{\lambda_n-K\lambda_1}{K-1}\big)\)。
- AR(\(p\)) 模型 \(x_t=\sum_{i=1}^p\phi_ix_{t-i}+\varepsilon_t\)。(a) 证明若 \(\sum|\phi_i|<1\),则模型平稳。(b) 说明为什么直接对伴随矩阵用 \(|||\cdot|||_1\) 或 \(|||\cdot|||_\infty\) 得不到这个结论,而用对角相似 \(D^{-1}CD\)(定理 5.6.7)可以。 提示:(a) 若 \(|z|\ge1\),\(|\sum\phi_iz^{p-i}|\le|z|^{p-1}\sum|\phi_i|<|z|^p\),所以 \(z\) 不是 \(z^p-\sum\phi_iz^{p-i}\) 的根。(b) 伴随矩阵的次对角元都是 1,行和、列和都至少为 1;对角缩放可以把次对角元压小(参考第 06 章加权 Geršgorin)。
- 网络传染模型 \(x=Wx+s\)。证明若 \(W\ge0\)(逐元素)且 \(\rho(W)<1\),则累计损失 \((I-W)^{-1}s\ge s\);若某个机构的对外敞口之和大于 1,系统是否一定不稳定? 提示:Neumann 级数各项非负;不一定,稳定性由 \(\rho(W)\) 决定,而 \(\rho(W)\le|||W|||_\infty\) 只是上界(参考第 06 章不可约非负矩阵)。
- 编程:对 \(n=5,\dots,12\) 计算 Hilbert 矩阵的谱条件数,验证 \(\log\kappa(H_n)\) 关于 \(n\) 近似线性(斜率约 3.5);用
np.linalg.solve解 \(H_nx=H_n\mathbf 1\),观察解的误差如何随 \(\kappa\) 增大。
原书推荐习题
- 5.6.P5、P20、P21、P23:矩阵范数之间的比较常数与实用估计。
- 5.6.P27–P28:用伴随矩阵和矩阵范数界多项式的根(Cauchy、Montel、Carmichael–Mason 界)。
- 5.6.P38–P39:何时存在矩阵范数使 \(|||A|||=\rho(A)\)。
- 5.6.P47–P53:到奇异矩阵的距离与条件数的几何意义。
- 5.7.P20–P22:数值半径与谱范数的比较。
- 5.8.P3、P8、P9、P10:非正规病态、小残差大误差、Hilbert 矩阵、正规方程条件数平方——数值实践中最重要的四个警示。
原书对照
| 本章小节 | 原书小节 | 书页 | PDF 页 |
|---|---|---|---|
| 5b.1 矩阵范数 | 5.6 Matrix norms(定义与例子) | 340–343 | 360–363 |
| 5b.2 诱导范数 | 5.6(诱导范数,5.6.1–5.6.7) | 343–346 | 363–366 |
| 5b.3 谱半径与收敛矩阵 | 5.6(5.6.8–5.6.14) | 346–349 | 366–369 |
| 5b.4 矩阵幂级数与 Neumann 级数 | 5.6(5.6.15–5.6.17) | 350–352 | 370–372 |
| 5b.5 诱导范数的极小性与特殊矩阵范数 | 5.6(5.6.18–5.6.42)及习题 5.6 | 352–370 | 372–390 |
| 5b.6 矩阵上的向量范数 | 5.7 Vector norms on matrices(含习题) | 371–381 | 391–401 |
| 5b.7 条件数 | 5.8 Condition numbers: inverses and linear systems(含习题) | 381–386 | 401–406 |
延伸阅读:线性方程组误差分析的标准参考是 Stewart《Introduction to Matrix Computations》(1973)与 Higham《Accuracy and Stability of Numerical Algorithms》;均值–方差优化对估计误差的敏感性见 Michaud(1989)"The Markowitz Optimization Enigma"。下一章(第 06 章)用 Geršgorin 圆盘等工具直接从矩阵元素定位特征值,并给出一般矩阵(不一定对称)的特征值扰动界。