量化交易中文教材

第 17 章 图模型:有向图与无向图

本章合并了 Wasserman 原书第 17 章(有向图与条件独立)与第 18 章(无向图)。两章的共同主题是:用图来表示多个变量之间的条件独立关系。有向无环图(DAG)用箭头表示"谁生成谁",配合干预运算,它是第 16 章反事实框架之外的另一种因果语言;无向图用边表示"给定其余变量后仍然相关",在多元正态下它与精度矩阵的零元一一对应。

与量化交易的距离而言,这两章比前几章远一些,所以本章适度压缩:保留定义、关键定理和读图规则,略去部分证明。但其中有三个思想在量化中非常实用,会讲透:碰撞点偏差(幸存者偏差的图模型解释)、观察与干预的区别、以及精度矩阵与偏相关网络。

学习目标

  1. 理解条件独立 \(X\amalg Y\mid Z\) 的定义及其基本性质,知道条件独立与边际独立互不蕴含。
  2. 会写出 DAG 的马尔可夫因子分解 \(f(v)=\prod f(x_i\mid\pi_i)\),并用马尔可夫条件列出独立关系。
  3. 掌握 d-分离的三条规则(链、分叉、碰撞点),会判断任意两个变量在给定条件集下是否独立;理解"以碰撞点为条件会制造相关"。
  4. 区分观察条件化 \(\mathbb P(Z\mid Y=y)\) 与干预条件化 \(\mathbb P(Z\mid Y:=y)\),会用"删除入箭头"的规则计算干预分布。
  5. 会读无向图:缺边 ⟺ 给定其余变量条件独立;图分离 ⟹ 条件独立;知道团分解与 Hammersley–Clifford 定理的含义。
  6. 会用精度矩阵与偏相关构建资产之间的条件依赖网络。

读前导读

这一章在解决什么问题

一句话:本章教你用一张"箭头图"来回答"哪些变量之间的关联是真的、哪些是被样本筛选或共同原因制造出来的"。

你在 CFA 里见过单因子模型:\(R_i=\alpha_i+\beta_iR_M+\varepsilon_i\),并假设不同股票的 \(\varepsilon_i\) 互不相关。这个假设的意思就是"知道市场收益之后,两只股票之间不再有额外的联系"——这就是本章的条件独立。图模型把这类判断画成图:市场指向每只股票,股票之间没有直接连线。图一旦画出来,哪些变量在什么条件下独立,就可以直接"读"出来,不用每次做代数。

本章的第二个主题是观察与干预的区别。CFA 的回归章节反复强调"相关不等于因果",但没告诉你怎么在数学上区分。本章给出一个可操作的规则:干预某个变量,等于把指向它的箭头剪掉。由此你能算出"历史上大单之后价格涨了多少"和"我自己下大单价格会涨多少"为什么是两个不同的数。

第三个主题是偏相关网络:在多元正态下,协方差矩阵的逆(精度矩阵)里的零,正好对应"给定其他所有资产后两者无关"。这是构建资产关联网络、识别产业链传导的常用工具。

需要先想起来的数学

1. 条件概率与条件密度。 \(f(x\mid z)=f(x,z)/f(z)\),意思是"在 \(Z=z\) 这一层里,\(X\) 的分布"。例:100 只基金中 30 只是股票型,其中 12 只跑赢基准,则 \(\mathbb P(\text{跑赢}\mid\text{股票型})=12/30=0.4\)。本章所有"独立"都是指联合分布能拆成乘积。参见 第 00 册第 07 章 概率中的分析工具。

2. 求和号与"对隐变量求和"。 \(\sum_xf(x)f(z\mid x,y)\) 表示把 \(x\) 的每个可能取值都代进去、按 \(f(x)\) 加权后相加,本质是全概率公式。例:\(X\) 取 0、1 的概率各 0.5,\(f(z\mid 0,y)=0.2\)、\(f(z\mid1,y)=0.6\),则加权和为 \(0.5\times0.2+0.5\times0.6=0.4\)。

3. 矩阵的逆与对角元。 精度矩阵 \(\Omega=\Sigma^{-1}\) 是协方差矩阵的逆,满足 \(\Sigma\Omega=I\)。2×2 时 \(\begin{pmatrix}a&b\\b&d\end{pmatrix}^{-1}=\frac{1}{ad-b^2}\begin{pmatrix}d&-b\\-b&a\end{pmatrix}\),注意非对角元带负号,这就是偏相关公式里那个负号的来源。参见 第 00 册第 06 章 线性代数速成。

4. 符号 \(\amalg\) 与 \(:=\)。 \(X\amalg Y\mid Z\) 读作"给定 \(Z\),\(X\) 与 \(Y\) 独立";\(Y:=y\) 是"把 \(Y\) 强行设为 \(y\)"(赋值,而不是观察到等于 \(y\))。其余逻辑符号(\(\iff\)、\(\Rightarrow\))见 第 00 册第 08 章 读懂数学证明与符号。

怎么读这一章

核心必读是 17.1(条件独立)、17.3 的四种基本结构表和碰撞点偏差、17.5 的观察与干预、17.6 最后的高斯图模型。17.2 的术语只需记住"父节点、后代、碰撞点"三个词;d-分离的形式定义第一次可以只看例 17.9 体会规则。17.4(DAG 的估计)和 17.6 中团与势函数、Hammersley–Clifford 定理第一次可以只看结论。建议顺序:17.1 → 17.3 的表格 → 17.7 实战第 1、2 部分 → 17.5 → 17.6 → 实战第 3 部分,最后回头补 17.2、17.4。


17.1 条件独立

定义 17.1。 给定 \(Z\) 时 \(X\) 与 \(Y\) 条件独立,记作 \(X\amalg Y\mid Z\),若对所有 \(x,y,z\) 有

\[f_{X,Y\mid Z}(x,y\mid z)=f_{X\mid Z}(x\mid z)\,f_{Y\mid Z}(y\mid z).\tag{17.1}\]
等价地(原书习题 1),
\[f(x\mid y,z)=f(x\mid z).\tag{17.2}\]
直观意义:一旦知道了 \(Z\),\(Y\) 不再提供关于 \(X\) 的任何额外信息。

推导拆解:为什么 (17.1) 与 (17.2) 等价?由条件概率定义,\(f(x,y\mid z)=f(x\mid y,z)\,f(y\mid z)\)("先定 \(y\),再在 \(y,z\) 下定 \(x\)",这是乘法公式)。把它代入 (17.1) 左边:\(f(x\mid y,z)f(y\mid z)=f(x\mid z)f(y\mid z)\)。两边约去 \(f(y\mid z)\)(要求它大于 0),就得到 \(f(x\mid y,z)=f(x\mid z)\)。反方向把这几步倒着走即可。

金融直觉:\(Z\) 是市场收益,\(X\)、\(Y\) 是两只银行股的收益。边际上它们高度相关;但若单因子模型正确,知道了今天市场涨跌之后,看银行 A 的走势对猜银行 B 再无帮助。若仍有帮助,说明还漏了一个共同因子(例如利率或行业因子)。

定理 17.2(条件独立的基本性质)。

  1. 对称性:\(X\amalg Y\mid Z\Rightarrow Y\amalg X\mid Z\);
  2. 分解:若 \(X\amalg Y\mid Z\) 且 \(U=h(X)\),则 \(U\amalg Y\mid Z\);
  3. 弱联合:若 \(X\amalg Y\mid Z\) 且 \(U=h(X)\),则 \(X\amalg Y\mid(Z,U)\);
  4. 收缩:若 \(X\amalg Y\mid Z\) 且 \(X\amalg W\mid(Y,Z)\),则 \(X\amalg(W,Y)\mid Z\);
  5. 交:若 \(X\amalg Y\mid Z\) 且 \(X\amalg Z\mid Y\),则 \(X\amalg(Y,Z)\)。

前四条对任何分布成立;第五条要求所有事件的概率为正。

条件独立与边际独立互不蕴含。 原书习题 3 给出了一个数值例子:\(Z=0\) 时 \((X,Y)\) 的概率为 \((0,0)\):0.405、\((0,1)\):0.045、\((1,0)\):0.045、\((1,1)\):0.005;\(Z=1\) 时四格均为 0.125。可以验证 \(X\amalg Y\mid Z\)(在每个 \(Z\) 层内,联合概率等于边际乘积),但边际上 \(X\) 与 \(Y\) 不独立。反过来,后面的碰撞点例子会说明边际独立的变量在条件化之后可以变得相关。

量化中最重要的条件独立结构是因子模型:给定共同因子,个股的残差互相独立。两只股票的收益边际上高度相关,但这种相关完全来自它们共同暴露的因子。检验因子模型是否充分,就是检验"给定因子后残差是否还相关"。


17.2 有向无环图

术语

有向图 \(\mathcal G=(V,E)\) 由顶点集 \(V\) 和有序顶点对构成的边集 \(E\) 组成,每个顶点对应一个随机变量,\((X,Y)\in E\) 画作 \(X\to Y\)。原书图 17.1:\(V=\{X,Y,Z\}\),\(E=\{(Y,X),(Y,Z)\}\)。

  • 两个顶点有箭头相连(任意方向),称为相邻(adjacent)。
  • \(X\to Y\) 时,\(X\) 是 \(Y\) 的父节点(parent),\(Y\) 是 \(X\) 的子节点(child)。\(X\) 的父节点集合记为 \(\pi_X\)。
  • 箭头方向一致的路径称为有向路径;忽略方向的相邻序列称为无向路径。若存在从 \(X\) 到 \(Y\) 的有向路径(或 \(X=Y\)),则 \(X\) 是 \(Y\) 的祖先(ancestor),\(Y\) 是 \(X\) 的后代(descendant)。
  • 形如 \(X\to Y\leftarrow Z\) 的结构称为在 \(Y\) 处碰撞,\(Y\) 是该路径上的碰撞点(collider);\(X\to Y\to Z\) 与 \(X\leftarrow Y\to Z\) 中的 \(Y\) 是非碰撞点。碰撞性依赖于路径:原书图 17.7(\(X\to Y\leftarrow Z\),\(Y\to W\))中,\(Y\) 在路径 \(X,Y,Z\) 上是碰撞点,在 \(X,Y,W\) 上不是。指向碰撞点的两个顶点互不相邻时,称为非屏蔽碰撞点(unshielded collider)。
  • 起点与终点相同的有向路径称为环(cycle)。没有环的有向图称为有向无环图(directed acyclic graph, DAG)。下面只讨论 DAG。

有人把带有概率分布的 DAG 称为"贝叶斯网络"(Bayesian network)。原书作者认为这是糟糕的术语:DAG 上的推断既可以用频率学派方法也可以用贝叶斯方法,与贝叶斯推断没有必然联系。

概率与 DAG

定义 17.3。 设 \(\mathcal G\) 的顶点为 \(V=(X_1,\dots,X_k)\)。若分布 \(\mathbb P\) 的密度满足

\[f(v)=\prod_{i=1}^kf(x_i\mid\pi_i),\tag{17.3}\]
(\(\pi_i\) 为 \(X_i\) 的父节点),称 \(\mathbb P\) 对 \(\mathcal G\) 马尔可夫(Markov to \(\mathcal G\)),或称 \(\mathcal G\) 表示 \(\mathbb P\)。\(\mathcal G\) 表示的全部分布记为 \(M(\mathcal G)\)。

例 17.4。 原书图 17.2:超重 → 心脏病 ← 吸烟 → 咳嗽。

\[f(\text{ow},\text{sm},\text{hd},\text{co})=f(\text{ow})f(\text{sm})f(\text{hd}\mid\text{ow},\text{sm})f(\text{co}\mid\text{sm}).\]

例 17.5。 原书图 17.3:\(X\to Z\leftarrow Y\),\(Z\to W\)。\(\mathbb P\in M(\mathcal G)\) 当且仅当 \(f(x,y,z,w)=f(x)f(y)f(z\mid x,y)f(w\mid z)\)。

定理 17.6(马尔可夫条件)。 \(\mathbb P\in M(\mathcal G)\) 当且仅当对每个变量 \(W\),

\[W\amalg\widetilde W\mid\pi_W,\tag{17.4}\]
其中 \(\widetilde W\) 为除 \(W\) 的父节点和后代以外的所有其他变量。粗略地说:给定父节点,每个变量独立于它的"非后代"。

白话解释:把 DAG 想成一条生产流水线。每个变量只由它的"直接上游"(父节点)加上自己的随机噪声生成。所以只要知道了直接上游,更远的上游、旁支的变量都不再提供信息;但下游(后代)不同——下游是由你生成的,看到下游能反推你,所以下游被排除在外。

以例 17.8 为例验证参数节省:5 个二元变量的一般联合分布要 \(2^5-1=31\) 个参数;按 \(f(a)f(b\mid a)f(c\mid a)f(d\mid b,c)f(e\mid d)\) 分解只要 \(1+2+2+4+2=11\) 个(每个节点的参数数是 \(2^{\text{父节点数}}\))。

例 17.7。 图 17.3 中马尔可夫条件给出 \(X\amalg Y\) 与 \(W\amalg\{X,Y\}\mid Z\)。

例 17.8。 原书图 17.4:\(A\to B\),\(A\to C\),\(B\to D\leftarrow C\),\(D\to E\)。因子分解为 \(f(a,b,c,d,e)=f(a)f(b\mid a)f(c\mid a)f(d\mid b,c)f(e\mid d)\),马尔可夫条件给出 \(D\amalg A\mid\{B,C\}\)、\(E\amalg\{A,B,C\}\mid D\)、\(B\amalg C\mid A\)。

DAG 的一个实用价值在于参数节省:\(k\) 个二元变量的一般联合分布需要 \(2^k-1\) 个参数,而按 DAG 分解后只需要 \(\sum_i2^{|\pi_i|}\) 个。


17.3 d-分离:从图中读出独立关系

马尔可夫条件列出的独立关系还会逻辑地蕴含其他不那么明显的独立关系。找出全部独立关系的工具是 d-分离(d-separation,directed separation)。

先看三个顶点的四种基本结构(原书图 17.6):

结构 名称 边际上 给定 \(Y\)
\(X\to Y\to Z\) 链(chain) 相关 独立
\(X\leftarrow Y\leftarrow Z\) 链 相关 独立
\(X\leftarrow Y\to Z\) 分叉(fork) 相关 独立
\(X\to Y\leftarrow Z\) 碰撞(collider) 独立 相关

推导拆解:用因子分解直接验证两种典型情形。

链 \(X\to Y\to Z\):\(f(x,y,z)=f(x)f(y\mid x)f(z\mid y)\)。给定 \(y\),\(f(x,z\mid y)=\frac{f(x)f(y\mid x)}{f(y)}\cdot f(z\mid y)=f(x\mid y)f(z\mid y)\)(第一个分数用了贝叶斯公式),拆成了乘积,所以给定 \(Y\) 独立。

碰撞 \(X\to Y\leftarrow Z\):\(f(x,y,z)=f(x)f(z)f(y\mid x,z)\)。对 \(y\) 求和(积分)消掉 \(Y\):\(\sum_yf(y\mid x,z)=1\),得 \(f(x,z)=f(x)f(z)\),所以边际独立。但给定 \(y\) 时 \(f(x,z\mid y)\propto f(x)f(z)f(y\mid x,z)\),最后一项同时含 \(x\) 和 \(z\),一般拆不开,于是相关。

白话解释:链和分叉中,\(Y\) 是信息的"中转站",掐断中转站(条件化)就断了联系;碰撞中,\(Y\) 是两条信息的"汇合点",本来两边互不相干,一旦你知道了汇合的结果,就能从一边反推另一边。

由此得到 d-分离的三条规则:

  1. \(Y\) 不是碰撞点时,\(X\) 与 \(Z\) d-连通,但给定 \(Y\) 后 d-分离(条件化阻断路径);
  2. \(X\) 与 \(Z\) 在 \(Y\) 处碰撞时,\(X\) 与 \(Z\) d-分离,但给定 \(Y\) 后 d-连通(条件化打开路径);
  3. 以碰撞点的后代为条件,与以碰撞点本身为条件效果相同:图 17.7 中 \(X\) 与 \(Z\) d-分离,但给定 \(W\) 后 d-连通。

形式定义。 设 \(X,Y\) 为不同顶点,\(W\) 为不含 \(X,Y\) 的顶点集。若不存在一条 \(X\) 与 \(Y\) 之间的无向路径 \(U\),同时满足 (i) \(U\) 上每个碰撞点自身或其某个后代在 \(W\) 中,(ii) \(U\) 上其他顶点都不在 \(W\) 中,则称 \(X\) 与 \(Y\) 给定 \(W\) d-分离。换言之:只要存在一条"激活"的路径,就是 d-连通的。对非空不交集合 \(A,B\),若其中任意一对顶点都给定 \(W\) d-分离,则称 \(A\) 与 \(B\) 给定 \(W\) d-分离。

例 17.9。 原书图 17.8:\(X\to U\leftarrow V\to W\leftarrow Y\),且 \(U\to S_1\)、\(W\to S_2\)。

  • 给定空集:\(X\) 与 \(Y\) d-分离(路径上有两个未被条件化的碰撞点 \(U\)、\(W\));
  • 给定 \(\{S_1,S_2\}\):d-连通(两个碰撞点的后代都被条件化,路径被激活);
  • 给定 \(\{S_1,S_2,V\}\):d-分离(非碰撞点 \(V\) 被条件化,路径被阻断)。

定理 17.10。 设 \(A,B,C\) 为不交顶点集,则 \(A\amalg B\mid C\) 当且仅当 \(A\) 与 \(B\) 被 \(C\) d-分离。

严格地说,"d-分离 ⟹ 条件独立"对所有对 \(\mathcal G\) 马尔可夫的分布都成立;反方向需要假设分布对图是忠实的(faithful),即除了马尔可夫条件逻辑蕴含的独立关系外,分布没有"巧合"产生的额外独立关系。

金融直觉:"不忠实"的典型是效应恰好抵消。例如利率上升通过两条路径影响银行股:净息差扩大(正向)和债券持仓浮亏(负向),若两条路径恰好相抵,数据里利率与银行股收益的相关为零,但图上两者明明 d-连通。所以"数据里不相关"不能直接推出"图里无路径",忠实性就是排除这种巧合的假设。

例 17.11(外星人与手表,Jordan 2004)。 原书图 17.9:外星人 → 迟到 ← 手表。朋友迟到了,有两种解释:被外星人绑架了,或者你忘了把手表调成夏令时。在知道朋友迟到之前,这两件事毫无关系(被碰撞点阻断,边际独立)。得知迟到后,"被外星人绑架"的概率上升:\(\mathbb P(\text{外星人}\mid\text{迟到})>\mathbb P(\text{外星人})\)。但若再得知你忘了调表,绑架的概率又会下降:

\[\mathbb P(\text{外星人}\mid\text{迟到})\neq\mathbb P(\text{外星人}\mid\text{迟到},\text{忘调表}).\]
给定迟到后,两个原因变得相关——一个原因"解释掉"了另一个,称为解释消除(explaining away)。

例 17.12。 图 17.2 中超重与吸烟边际独立,但在给定心脏病之后相关。

碰撞点偏差在量化中的形式。 "以碰撞点为条件会制造相关"是选择偏差的统一解释:

  • 幸存者偏差:基金能力与风险偏好原本独立,二者共同决定业绩;只看业绩好到"存活"的基金,就是以碰撞点(业绩)为条件,会在幸存基金中制造出能力与风险偏好的负相关——能力低的基金只有靠冒高风险才能存活下来。本章实战会演示这一点。
  • 按结果筛选样本:只研究"已经上涨了 50%"的股票、只研究"已被纳入指数"的股票,都是在结果变量(或其后代)上条件化。
  • 控制错误的变量:在回归中控制一个同时受处理和结果影响的变量("坏控制"),会引入原本不存在的偏差。第 05 册会从计量角度讨论同一问题。

马尔可夫等价

记 \(I(\mathcal G)\) 为 \(\mathcal G\) 蕴含的全部独立陈述。若 \(I(\mathcal G_1)=I(\mathcal G_2)\),称两个 DAG 马尔可夫等价(Markov equivalent)。把 DAG 的箭头换成无向边得到的图称为它的骨架(skeleton)。

定理 17.13。 \(\mathcal G_1\) 与 \(\mathcal G_2\) 马尔可夫等价,当且仅当 (i) 骨架相同,且 (ii) 非屏蔽碰撞点相同。

例 17.14。 图 17.6 中三个无碰撞点的 DAG(两条链和一个分叉)马尔可夫等价,都只蕴含 \(X\amalg Z\mid Y\);碰撞点 DAG 与它们不等价。

这个定理有一个深刻的推论:仅凭观测数据中的独立关系,无法区分马尔可夫等价类内部的不同因果方向。\(X\to Y\to Z\) 与 \(X\leftarrow Y\leftarrow Z\) 产生完全相同的独立关系,数据本身无法告诉你哪个方向是对的。


17.4 DAG 的估计

原书只简述了要点。这里有两类问题:给定 DAG 和数据,估计分布 \(f\);只给数据,估计 DAG 本身。

给定结构的参数估计。 通常对每个条件密度用参数模型 \(f(x\mid\pi_x;\theta_x)\),似然为

\[\mathcal L(\theta)=\prod_{i=1}^nf(V_i;\theta)=\prod_{i=1}^n\prod_{j=1}^mf(X_{ij}\mid\pi_j;\theta_j),\]
其中 \(X_{ij}\) 是第 \(i\) 个数据点中变量 \(X_j\) 的值。由于似然按节点分解,每个节点的参数可以分别估计(例如每个节点对其父节点做一次回归)。

结构估计。 原则上可以对每个可能的 DAG 用最大似然拟合,再用 AIC 等准则(第 13b 章)选择。但 DAG 的数量随变量数超指数增长,需要大量数据才可靠,搜索的计算量也极大;为 DAG 结构构造有效的置信集需要天文数字的样本量。若事先知道部分结构,问题可以部分缓解。


17.5 再论因果:条件化与干预(原书 17.8 节附录)

DAG 方法与第 16 章的反事实方法在数学上等价,只是形式不同。DAG 方法多出的要素是干预(intervention)运算。

观察与干预

考虑原书图 17.10:\(X\to Y\),\(X\to Z\),\(Y\to Z\),联合分布 \(f(x,y,z)=f(x)f(y\mid x)f(z\mid x,y)\)。可以把这个 DAG 理解为一段生成数据的程序:

for i = 1..n:
    x_i ← p_X(x)
    y_i ← p_{Y|X}(y | x_i)
    z_i ← p_{Z|X,Y}(z | x_i, y_i)

观察条件化。 "在所有观测到 \(Y=y\) 的情况中,\(Z=z\) 出现的频率"由条件分布给出:

\[\mathbb P(Z=z\mid Y=y)=\frac{\sum_xf(x)f(y\mid x)f(z\mid x,y)}{f(y)}=\sum_xf(z\mid x,y)\,f(x\mid y).\]

干预条件化。 现在修改程序,把 \(Y\) 强制设定为 \(y\):

set Y = y
for i = 1..n:
    x_i ← p_X(x)
    z_i ← p_{Z|X,Y}(z | x_i, y)

联合分布变为 \(f^*(x,z)=f(x)f(z\mid x,y)\),于是

\[f^*(z)=\sum_xf(x)f(z\mid x,y)\equiv\mathbb P(Z=z\mid Y:=y).\]

推导拆解:观察条件化公式的两步。第一个等号:\(\mathbb P(Z=z\mid Y=y)=f(y,z)/f(y)\),而 \(f(y,z)\) 是把联合分布 \(f(x,y,z)\) 对 \(x\) 求和(把没观测的 \(X\) "边际化"掉)。第二个等号:把 \(f(x)f(y\mid x)/f(y)\) 合并成 \(f(x\mid y)\),这是贝叶斯公式。干预公式则直接来自修改后的程序:\(X\) 照常按 \(f(x)\) 生成,没有"根据 \(y\) 反推 \(x\)"这一步,所以权重是 \(f(x)\) 而不是 \(f(x\mid y)\)。

两个公式的差别仅在于 \(f(x\mid y)\) 与 \(f(x)\):观察到 \(Y=y\) 会改变我们对 \(X\) 的推断(\(X\) 是 \(Y\) 的原因,看到 \(Y\) 就能推测 \(X\)),而强制设定 \(Y=y\) 不会改变 \(X\) 的分布。

  • \(\mathbb P(Z=z\mid Y=y)\) 称为观察条件化 / 被动条件化(conditioning by observation / passive conditioning),回答预测问题:"已知 Joe 吸烟,他患肺癌的概率是多少?"
  • \(\mathbb P(Z=z\mid Y:=y)\) 称为干预条件化 / 主动条件化(conditioning by intervention / active conditioning),回答因果问题:"如果让 Joe 戒烟,他患肺癌的概率是多少?"

一般规则(截断因子分解)。 对 \((\mathcal G,\mathbb P)\) 施行干预"设定 \(X=x\)":(1) 删除所有指向 \(X\) 的箭头,得到新图 \(\mathcal G^*\);(2) 从 \(f(v)\) 中去掉因子 \(f(x\mid\pi_X)\),得到 \(f^*(v)=\mathbb P(V=v\mid X:=x)\)。\((\mathcal G^*,f^*)\) 就表示这个干预。

例 17.15(雨与湿草坪)。 雨 R 与湿草坪 W 相关。两个 DAG,R → W(\(f(w,r)=f(r)f(w\mid r)\))与 R ← W(\(f(w,r)=f(w)f(r\mid w)\)),作为概率模型都是正确的——它们都只表示"R 与 W 不独立"。但作为因果图,只有第一个是对的。在第一个图上干预 \(W:=1\):删去指向 W 的箭头,\(f^*(r)=f(r)\),即"弄湿草坪不会导致下雨"。若错把第二个图当作因果图,W 没有入箭头,干预后图不变,\(f^*(r)=f(r\mid w)\),意味着往草坪上洒水会改变下雨的概率——荒谬。正确的因果图要靠背景知识来确定。

注 17.16。 试图从数据中学习因果图是危险的。两个变量时完全不可能(由定理 17.13,\(X\to Y\) 与 \(X\leftarrow Y\) 马尔可夫等价);多于两个变量时,在一定假设下有方法可以识别部分因果结构,但它们都是大样本方法,而我们无法知道样本量是否已经足够大。

用 DAG 表示混杂

设 \(X\) 为处理、\(Y\) 为结果,混杂变量 \(Z\) 同时指向 \(X\) 与 \(Y\)(原书图 17.11):

  1. 随机化研究:随机分配切断了 \(Z\to X\) 的箭头。即使 \(Z\) 未被观测,也有 \(\mathbb E(Y\mid X:=x)=\mathbb E(Y\mid X=x)\),因果效应可以直接估计。
  2. 混杂全部可观测的观察性研究:
    \[\mathbb E(Y\mid X:=x)=\int\mathbb E(Y\mid X=x,Z=z)\,dF_Z(z),\]
    这正是第 16 章的调整公式 (16.7),在图模型文献中称为后门调整。
  3. 存在未观测混杂:上式涉及未观测的 \(Z\),因果效应无法估计。此时 \(\mathbb P(Y=y\mid X=x)\neq\mathbb P(Y=y\mid X:=x)\)——"因果不是关联"的另一种说法。

DAG 与反事实的精确对应(\(X,Y\) 二元时):定义一个四值的"混杂变量" \(Z\in\{1,2,3,4\}\),分别对应 \((C_0,C_1)=(0,0),(0,1),(1,0),(1,1)\),即可把潜在结果写成 DAG 中的一个节点。

量化含义。 量化研究者最常犯的因果错误,是把被动条件化当作主动条件化:从历史数据中看到"大单买入之后价格上涨"(\(\mathbb E(\text{收益}\mid\text{大单}=1)\)),就推断"如果我下大单,价格会上涨多少"(\(\mathbb E(\text{收益}\mid\text{大单}:=1)\))。历史上的大单往往是知情交易者在利好信息下发出的,信息同时导致了大单和上涨;你自己的大单没有那份信息,只会带来冲击成本。原书习题 9 的高斯结构方程模型正好可以量化这个差距,见本章实战。

推导拆解:实战里"观察斜率 \(=b+g\,a/(a^2+1)\)"从哪来?模型是 \(X\sim N(0,1)\),\(Y=aX+\varepsilon_Y\),\(Z=bY+gX+\varepsilon_Z\),噪声都是独立标准正态。

第一步,回归斜率 \(=\mathrm{Cov}(Y,Z)/\mathrm{Var}(Y)\),这就是 CFA 里的 OLS 斜率公式。

第二步,\(\mathrm{Var}(Y)=a^2\mathrm{Var}(X)+\mathrm{Var}(\varepsilon_Y)=a^2+1\)(独立变量方差相加)。

第三步,\(\mathrm{Cov}(Y,Z)=\mathrm{Cov}(Y,bY+gX)=b\,\mathrm{Var}(Y)+g\,\mathrm{Cov}(Y,X)=b(a^2+1)+ga\)(协方差对每个参数线性,\(\varepsilon_Z\) 与 \(Y\) 无关)。

两者相除得 \(b+ga/(a^2+1)\)。多出的 \(ga/(a^2+1)\) 就是"通过 \(X\) 绕道"的混杂部分;干预时 \(Y\) 与 \(X\) 无关,\(\mathrm{Cov}(Y,X)=0\),这一项消失,只剩 \(b\)。


17.6 无向图(原书第 18 章)

定义与分离

无向图 \(\mathcal G=(V,E)\) 由有限顶点集 \(V\) 和无序顶点对构成的边集 \(E\) 组成。有边相连的两个顶点称为相邻,记作 \(X\sim Y\);顶点序列 \(X_0,\dots,X_n\) 满足 \(X_{i-1}\sim X_i\) 时称为路径;任意两顶点都相邻的图称为完全图。

分离。 设 \(A,B,C\) 为 \(V\) 的不同子集。若从 \(A\) 中任一顶点到 \(B\) 中任一顶点的每条路径都经过 \(C\) 中某个顶点,称 \(C\) 分离 \(A\) 与 \(B\)。原书图 18.2(链 \(W-Y-X-Z\)):\(\{X\}\) 分离 \(\{Y,W\}\) 与 \(\{Z\}\);\(\{X,Y\}\) 分离 \(W\) 与 \(Z\)。

概率与无向图

构造方法:每个随机变量一个顶点;若一对变量在给定其余全部变量时条件独立,就省去它们之间的边:

\[X\text{ 与 }Y\text{ 之间无边}\iff X\amalg Y\mid\text{其余全部变量}.\]
这样得到的图称为成对马尔可夫图(pairwise Markov graph)。

原书的几个例子:图 18.3(\(X-Y-Z\))表示 \(X\amalg Z\mid Y\);图 18.4(三角形完全图)不表示任何独立关系;图 18.5(四顶点环 \(X-Y-Z-W-X\))表示 \(X\amalg Z\mid\{Y,W\}\) 与 \(Y\amalg W\mid\{X,Z\}\);图 18.6(链 \(X-Y-Z-W\))的成对性质直接给出 \(X\amalg Z\mid\{Y,W\}\),但是否还有 \(X\amalg Z\mid Y\)?

定理 18.1(分离定理)。 设 \(\mathcal G\) 是 \(\mathbb P\) 的成对马尔可夫图,\(A,B,C\) 为不同子集。若 \(C\) 分离 \(A\) 与 \(B\),则 \(A\amalg B\mid C\)。

注 18.2。 若 \(A\) 与 \(B\) 之间没有任何路径(属于不同的连通分量),可视为被空集分离,于是 \(A\amalg B\)(边际独立)。

定理 18.1 中的独立性质称为全局马尔可夫性质(global Markov property)。记 \(M_{\text{pair}}(\mathcal G)\) 为满足成对马尔可夫性质的分布集,\(M_{\text{global}}(\mathcal G)\) 为满足全局马尔可夫性质的分布集。

定理 18.3。 \(M_{\text{pair}}(\mathcal G)=M_{\text{global}}(\mathcal G)\)(在概率为正等正则条件下)。

它的意义在于:只需要按简单的成对性质建图,就可以用"图上的分离"读出所有其他独立关系,比代数推导容易得多。回到图 18.6 的链 \(X-Y-Z-W\):\(Y\) 分离 \(X\) 与 \(Z\),所以 \(X\amalg Z\mid Y\);\(Z\) 分离 \(Y\) 与 \(W\),所以 \(Y\amalg W\mid Z\)。

例 18.4。 原书图 18.7(\(X\) 孤立,\(Y-Z\) 相连):\(X\amalg Y\),\(X\amalg Z\),\(X\amalg(Y,Z)\)。

例 18.5。 原书图 18.8:\(X\amalg W\mid(Y,Z)\),\(X\amalg Z\mid Y\)。

与 DAG 的区别。 无向图中没有碰撞点的概念:条件化只会阻断路径,不会打开路径,读取规则就是普通的图分离。因此有些 DAG 的独立结构(如碰撞点 \(X\to Y\leftarrow Z\) 的"边际独立、条件相关")无法用无向图表达,反之亦然(如四顶点环)。

团与势函数

团(clique)是两两相邻的顶点集合;不能再加入任何顶点而仍为团的团称为极大团(maximal clique)。势函数(potential)是任意正函数。

在一定条件下(概率为正,即 Hammersley–Clifford 定理),\(\mathbb P\) 对 \(\mathcal G\) 马尔可夫,当且仅当其密度可写为

\[f(x)=\frac{\prod_{C\in\mathcal C}\psi_C(x_C)}{Z},\qquad Z=\sum_x\prod_{C\in\mathcal C}\psi_C(x_C),\tag{18.1}\]
其中 \(\mathcal C\) 为极大团的集合,\(Z\) 为归一化常数。

白话解释:这个定理说的是"图的结构"和"密度能怎么拆"是一回事。势函数 \(\psi_C\) 不是概率,只是一个打分:某组相邻变量取某组值时有多"协调"。把各团的分数乘起来再除以总和 \(Z\)(让概率加起来等于 1),就得到合法的分布。没有边的两个变量从不出现在同一个 \(\psi\) 里,所以给定中间变量后它们自然独立。这里的 \(Z\) 是归一化常数,与前文表示变量的 \(Z\) 无关,只是沿用了统计物理中"配分函数"的记号。

例 18.6。 图 18.1(\(X-Y-Z\))的极大团为 \(\{X,Y\}\)、\(\{Y,Z\}\),故 \(f(x,y,z)\propto\psi_1(x,y)\psi_2(y,z)\)。

例 18.7。 原书图 18.9 的极大团为 \(\{X_1,X_2\}\)、\(\{X_1,X_3\}\)、\(\{X_2,X_4\}\)、\(\{X_3,X_5\}\)、\(\{X_2,X_5,X_6\}\),于是

\[f(x_1,\dots,x_6)\propto\psi_{12}(x_1,x_2)\psi_{13}(x_1,x_3)\psi_{24}(x_2,x_4)\psi_{35}(x_3,x_5)\psi_{256}(x_2,x_5,x_6).\]

用数据拟合无向图是一个大课题,原书未展开;离散变量可以用对数线性模型(原书第 19 章)。

高斯图模型:精度矩阵的零元

原书没有明说、但对量化最有用的一个事实是:若 \(X\sim N(\mu,\Sigma)\),则 \(X_i\amalg X_j\mid\text{其余变量}\) 当且仅当精度矩阵 \(\Omega=\Sigma^{-1}\) 的 \((i,j)\) 元为零。因此多元正态的成对马尔可夫图就是 \(\Omega\) 的非零模式。给定其余变量时 \(X_i\) 与 \(X_j\) 的偏相关系数为

\[\rho_{ij\cdot\text{rest}}=-\frac{\Omega_{ij}}{\sqrt{\Omega_{ii}\Omega_{jj}}}.\]

白话解释:偏相关就是"先把其余变量的影响回归掉,再看两个残差的相关"。例如 \(\rho_{AB\cdot\text{rest}}\):把 A 对市场、C、D 回归取残差,把 B 也同样回归取残差,两组残差的相关系数就是它。精度矩阵把这件事一次性对所有变量对做完。

推导拆解:\(\Omega\) 的元素还有一个回归解释:把 \(X_i\) 对其余所有变量回归,系数为 \(\beta_{ij}=-\Omega_{ij}/\Omega_{ii}\),残差方差为 \(1/\Omega_{ii}\)。所以 \(\Omega_{ij}=0\) 等价于"\(X_j\) 在 \(X_i\) 的回归里系数为零",即控制了其他变量后 \(X_j\) 对预测 \(X_i\) 毫无帮助;在正态下这就是条件独立。负号的来源可以从导读里 2×2 求逆公式看到:逆矩阵的非对角元与原协方差符号相反。

这给出了一种构建"资产网络"的方法:相关矩阵几乎处处非零(所有股票都受市场影响),信息量有限;偏相关矩阵则剥离了其他资产的间接影响,只保留直接的条件依赖。资产数较多时,样本精度矩阵不稳定(第 14 章),常用 \(L_1\) 惩罚的稀疏估计——graphical lasso——直接估计一个稀疏的 \(\Omega\)。


17.7 量化实战

下面的脚本演示三件事:幸存者样本中的碰撞点偏差;观察斜率与干预斜率的差别(原书习题 17.9 的高斯结构方程);以及用偏相关从数据中恢复资产间的条件依赖图。

import numpy as np

rng = np.random.default_rng(17)

# ---------- 1) 碰撞点偏差:幸存者样本中制造出的负相关 ----------
n = 100_000
skill = rng.normal(size=n)                      # 基金经理真实选股能力
risk = rng.normal(size=n)                       # 风险偏好(与能力独立)
perf = skill + risk + rng.normal(size=n)        # 业绩:skill -> perf <- risk(碰撞点)
alive = perf > np.quantile(perf, 0.7)           # 只有业绩前 30% 的基金"存活"进入数据库
print(f"全体: corr(skill, risk) = {np.corrcoef(skill, risk)[0,1]:+.3f}")
print(f"存活基金: corr(skill, risk) = {np.corrcoef(skill[alive], risk[alive])[0,1]:+.3f}")

# ---------- 2) 观察条件化 vs 干预条件化(原书习题 17.9 的高斯结构方程) ----------
a, b, g = 1.0, 0.5, 0.8                         # X->Y 系数 a,Y->Z 系数 b,X->Z 系数 g
X = rng.normal(size=n)                          # X:不可观测的市场情绪
Y = a * X + rng.normal(size=n)                  # Y:某股票的资金流入
Z = b * Y + g * X + rng.normal(size=n)          # Z:该股票收益
slope_obs = np.cov(Y, Z)[0, 1] / np.var(Y)      # E(Z|Y=y) 的斜率(回归)
Y_do = rng.normal(size=n)                       # 干预:Y 由外部随机设定,切断 X->Y
Z_do = b * Y_do + g * X + rng.normal(size=n)
slope_do = np.cov(Y_do, Z_do)[0, 1] / np.var(Y_do)
print(f"观察斜率 E(Z|Y=y): 模拟 {slope_obs:.3f},理论 b+g·a/(a²+1) = {b + g*a/(a**2+1):.3f}")
print(f"干预斜率 E(Z|Y:=y): 模拟 {slope_do:.3f},理论 b = {b:.3f}")

# ---------- 3) 高斯图模型:相关矩阵稠密,精度矩阵稀疏 ----------
names = ["MKT", "A", "B", "C", "D"]             # D 只通过 C(如上下游)与其他资产相连
T = 1000
mkt = rng.normal(size=T)
A = 0.8 * mkt + rng.normal(scale=0.6, size=T)
B = 0.7 * mkt + rng.normal(scale=0.7, size=T)
C = 0.9 * mkt + rng.normal(scale=0.5, size=T)
D = 0.8 * C + rng.normal(scale=0.6, size=T)
R = np.column_stack([mkt, A, B, C, D])
corr = np.corrcoef(R.T)
P = np.linalg.inv(np.cov(R.T))
pcor = -P / np.sqrt(np.outer(np.diag(P), np.diag(P))); np.fill_diagonal(pcor, 1)
np.set_printoptions(precision=2, suppress=True)
print("相关矩阵:\n", corr)
print("偏相关矩阵(由精度矩阵得到):\n", pcor)
# 偏相关的 Fisher z 检验:条件集大小 k-2=3,标准误 1/sqrt(T-3-3)
zstat = np.arctanh(np.clip(pcor, -0.999, 0.999)) * np.sqrt(T - 3 - 3)
edges = [(names[i], names[j]) for i in range(5) for j in range(i + 1, 5) if abs(zstat[i, j]) > 3.0]
print("偏相关 Fisher z 检验(|z|>3)保留的边:", edges)

关键输出:

全体: corr(skill, risk) = -0.004
存活基金: corr(skill, risk) = -0.326
观察斜率 E(Z|Y=y): 模拟 0.899,理论 b+g·a/(a²+1) = 0.900
干预斜率 E(Z|Y:=y): 模拟 0.497,理论 b = 0.500
相关矩阵:
 [[1.   0.8  0.69 0.87 0.7 ]
 [0.8  1.   0.58 0.68 0.55]
 [0.69 0.58 1.   0.61 0.5 ]
 [0.87 0.68 0.61 1.   0.79]
 [0.7  0.55 0.5  0.79 1.  ]]
偏相关矩阵(由精度矩阵得到):
 [[ 1.    0.51  0.32  0.59  0.02]
 [ 0.51  1.    0.07 -0.04  0.01]
 [ 0.32  0.07  1.    0.01  0.01]
 [ 0.59 -0.04  0.01  1.    0.52]
 [ 0.02  0.01  0.01  0.52  1.  ]]
偏相关 Fisher z 检验(|z|>3)保留的边: [('MKT', 'A'), ('MKT', 'B'), ('MKT', 'C'), ('C', 'D')]

读法。

  1. 幸存者偏差就是碰撞点偏差。 在全部基金中,能力与风险偏好的相关系数为 −0.004(独立);只看业绩前 30% 的"存活"基金,相关系数变成 −0.326。原因是业绩是两者共同的子节点(碰撞点),筛选存活等于以碰撞点为条件,打开了"能力 → 业绩 ← 风险偏好"这条路径。一个只用存活基金数据的研究者会"发现"高风险偏好的经理能力更差——这完全是选择造成的假象。同理,用当前指数成分股回测、用"至今仍在交易"的股票做研究,都会在结果相关的特征之间制造虚假关系。
  2. 观察斜率不是干预斜率。 在"市场情绪 \(X\) → 资金流入 \(Y\) → 收益 \(Z\),且情绪也直接推动收益"的结构中,历史数据里收益对资金流的回归斜率是 0.90,但真正"注入一单位资金"的因果效应只有 0.50。多出来的 0.40 来自未观测的情绪同时驱动了两者。这正是原书习题 9 (d) 的结论:存在未观测混杂时,"相关不为零就说明 \(Y\) 导致 \(Z\)"的推理会出错;只有随机化(这里模拟为外生设定 \(Y\))才能得到正确的斜率。用历史上资金流与价格的关系来估计自己交易的市场冲击,会高估冲击中的"永久部分",原因相同。
  3. 相关矩阵稠密,偏相关矩阵稀疏。 五个变量两两之间的相关系数都在 0.5 以上,看不出结构。偏相关矩阵则清楚地显示:A、B、C 只与市场直接相连(A、B、C 之间的偏相关接近 0,即"给定市场后个股独立"的因子模型结构),D 只与 C 直接相连(偏相关 0.52),与市场的偏相关仅 0.02——D 与市场的 0.70 相关完全是通过 C 传导的。用第 14 章的 Fisher \(z\) 方法检验偏相关(条件集有 3 个变量,标准误为 \(1/\sqrt{T-3-3}\)),恰好恢复了真实的 4 条边。资产数多时,同样的思路由 graphical lasso 实现,常用于识别行业内的直接联动、产业链传导和风险传染路径。

本章小结

条件独立 \(X\amalg Y\mid Z\) 表示知道 \(Z\) 后 \(Y\) 对 \(X\) 不再提供信息,它与边际独立互不蕴含。DAG 用箭头表示数据生成结构,分布对 DAG 马尔可夫当且仅当密度可分解为 \(\prod f(x_i\mid\pi_i)\),等价于"给定父节点,每个变量独立于非后代"。d-分离给出读取全部独立关系的规则:链和分叉在中间节点被条件化时阻断,碰撞点在自身或后代被条件化时打开——后者解释了幸存者偏差等选择偏差。马尔可夫等价的 DAG 有相同的骨架和非屏蔽碰撞点,数据无法区分它们的因果方向。干预"设定 \(X=x\)"等于删除指向 \(X\) 的箭头并去掉对应因子,观察条件化与干预条件化一般不同,二者之差来自混杂。无向图中缺边表示给定其余变量条件独立,图分离蕴含条件独立,正分布可分解为极大团上的势函数之积。多元正态下,无向图的缺边正是精度矩阵的零元,偏相关网络因此可以从数据中估计。

概念 公式 / 结论
条件独立 \(f(x,y\mid z)=f(x\mid z)f(y\mid z)\iff f(x\mid y,z)=f(x\mid z)\)
DAG 因子分解 \(f(v)=\prod_if(x_i\mid\pi_i)\)
马尔可夫条件 \(W\amalg\widetilde W\mid\pi_W\)(\(\widetilde W\):非父节点、非后代)
d-分离规则 链/分叉:条件化阻断;碰撞点:条件化(自身或后代)打开
马尔可夫等价 骨架相同 + 非屏蔽碰撞点相同
观察条件化 \(\mathbb P(Z\mid Y=y)=\sum_xf(z\mid x,y)f(x\mid y)\)
干预条件化 \(\mathbb P(Z\mid Y:=y)=\sum_xf(z\mid x,y)f(x)\);删入箭头、去掉 \(f(y\mid\pi_Y)\)
后门调整 \(\mathbb E(Y\mid X:=x)=\int\mathbb E(Y\mid X=x,Z=z)dF_Z(z)\)
无向图(成对) 无边 \(\iff X\amalg Y\mid\text{rest}\)
分离定理 \(C\) 分离 \(A,B\Rightarrow A\amalg B\mid C\);成对 = 全局(正分布)
团分解 \(f(x)\propto\prod_{C}\psi_C(x_C)\)(Hammersley–Clifford)
高斯图模型 \(X_i\amalg X_j\mid\text{rest}\iff\Omega_{ij}=0\);偏相关 \(-\Omega_{ij}/\sqrt{\Omega_{ii}\Omega_{jj}}\)

练习

基础

  1. 证明 (17.1) 与 (17.2) 等价。(原书第 17 章习题 1。)
  2. 原书第 17 章习题 3 的数值例子:验证 \(X\amalg Y\mid Z\),计算 \((X,Y)\) 的边际分布并证明 \(X\) 与 \(Y\) 边际不独立。(提示:\(Z=0\) 层内 \(\mathbb P(X=1\mid Z=0)=0.1\),\(0.1\times0.1\times0.5=0.005\) 与表中一致;边际上 \(\mathbb P(X=1,Y=1)=0.005+0.125=0.13\),而 \(\mathbb P(X=1)\mathbb P(Y=1)=0.3^2=0.09\)。)
  3. 对图 17.6 的三个无碰撞点 DAG 证明 \(X\amalg Z\mid Y\);对碰撞点 DAG 证明 \(X\amalg Z\) 但给定 \(Y\) 时一般不独立。(原书第 17 章习题 4、5。)
  4. 写出例 17.8(图 17.4)中所有由 d-分离得到的、条件集至多含一个变量的独立关系。
  5. 链 \(X_1-X_2-X_3-X_4\) 的无向图:写出它的极大团分解,并列出所有极小条件独立关系。(原书第 18 章习题 3 的简化版。)

进阶

  1. 原书第 17 章习题 8:\(X\sim\text{Bernoulli}(1/2)\),\(Y\mid X=x\sim\text{Bernoulli}\big(\frac{e^{4x-2}}{1+e^{4x-2}}\big)\),\(Z\mid X=x,Y=y\sim\text{Bernoulli}\big(\frac{e^{2(x+y)-2}}{1+e^{2(x+y)-2}}\big)\)。计算 \(\mathbb P(Z=1\mid Y=1)\) 与 \(\mathbb P(Z=1\mid Y:=1)\),并用模拟验证。
  2. 原书第 17 章习题 9(高斯结构方程模型):\(X\sim N(0,1)\),\(Y\mid X=x\sim N(\alpha x,1)\),\(Z\mid X=x,Y=y\sim N(\beta y+\gamma x,1)\)。求 \(\mathbb E(Z\mid Y=y)\) 与 \(\mathbb E(Z\mid Y:=y)\),求 \((Y,Z)\) 的相关系数 \(\rho\),并说明:(a) \(X\) 未观测时,"\(\rho\neq0\) 则 \(Y\) 导致 \(Z\)"的判断为什么会出错;(b) 若 \(Y\) 随机化(\(Y\sim N(\alpha,1)\) 独立于 \(X\)),\(\rho=0\) 当且仅当 \(f(z\mid Y:=y)\) 不依赖 \(y\)。(答案:\(\mathbb E(Z\mid Y=y)=\big(\beta+\frac{\gamma\alpha}{\alpha^2+1}\big)y\),\(\mathbb E(Z\mid Y:=y)=\beta y\)。)
  3. 对三个二元变量构造 \(H_0:X_1\amalg X_2\mid X_3\) 的似然比检验,指出自由度。(原书第 18 章习题 4。提示:在 \(X_3\) 的每一层上做 \(2\times2\) 表的似然比检验,再把两个统计量相加,自由度为 2。)
  4. 原书第 18 章习题 5(乳腺癌数据):诊断中心(Boston/Glamorgan)× 核分级(恶性/良性)× 生存(死亡/存活),Boston 为 35、59、47、112,Glamorgan 为 42、77、26、76(依次为恶性-死亡、恶性-存活、良性-死亡、良性-存活)。估计 Glamorgan 良性肿瘤患者的死亡概率及其标准误,用第 8 题的检验检验三对条件独立,画出所得的无向图。
  5. 把 17.7 节第 3 部分扩展到 30 个资产(3 个行业,每个行业 10 只股票,受市场和行业因子驱动),用 sklearn.covariance.GraphicalLassoCV 估计稀疏精度矩阵,观察估计出的图是否呈现行业分块结构。

原书推荐习题:第 17 章 3(条件独立不蕴含边际独立)、5(碰撞点打开路径)、8、9(观察与干预条件化的计算和模拟,必做);第 18 章 2、3(由独立关系画图、读出极小条件独立)、4、5(条件独立的似然比检验与列联表实证)。


原书对照

本章内容 原书章节 PDF 页码
引言、条件独立、定理 17.2 17.1–17.2 p.270–271
DAG 术语、碰撞点 17.3 p.271–273
马尔可夫因子分解与马尔可夫条件 17.4 p.273–274
d-分离、外星人例子、马尔可夫等价 17.5 p.274–278
DAG 的估计 17.6 p.279
文献评注 17.7 p.279
附录:条件化与干预、雨与湿草坪、混杂的 DAG 表示 17.8 p.279–283
第 17 章习题 17.9 p.283–286
无向图、分离 18.1 p.287–288
成对与全局马尔可夫性质 18.2 p.288–290
团与势函数 18.3 p.291–292
用数据拟合图、文献评注 18.4–18.5 p.292
第 18 章习题 18.6 p.292–295