想象你是一名侦探,调来了一家超市的监控录像。货架上的薯片库存(X)和收银台的销量(Y)都在随时间波动。你想弄清楚:是补货导致销量上升,还是销量上升反过来拉动了补货?监控录像的最大价值,在于它记录了事件发生的先后顺序——你可以一帧一帧回放,看清到底「谁先动了手」。时序因果发现,就是帮我们从这类时间序列数据中,找出变量之间「谁先影响谁、滞后多久才生效」的因果链条。本文的主角 PCMCI 是一套两步破案法:先撒网画嫌疑关系,再审问排除冤案;动态贝叶斯网络则像一张概率棋盘,把变量间的相互影响随时间演化的强度一一推演出来。这两套工具,正被广泛用于气候预测、经济预警和脑科学研究。
对 AI 从业者而言,时序因果发现是从「看到相关」走向「证明因果」的关键技能,掌握 PCMCI 与动态贝叶斯,意味着你能从海量时序数据中提取真正可解释、可干预的因果洞见,在数据科学岗位上建立不可替代的竞争力。
目录
可视化演示
本节配有交互动效(进入视口后自动加载,约 3KB)。
时序因果图——滞后关系 X₁→X₂: 变量1滞后影响变量2 自因果:变量自身滞后依赖 X_t^(j) = f(X_{t-τ}^(i)) + ε 滞后τ表示影响延迟τ步
时序因果基础:先看懂监控录像
想象你是一名侦探,调来超市的监控录像:薯片库存(X)和收银台销量(Y)都在随时间波动。你想知道补货是否推动了销量。监控录像的最大价值在于记录了先后顺序——你能一帧帧回放,看清「谁先动了手」。时序因果发现,就是从这类时间序列数据中还原因果链条。
在技术世界里,监控录像就是时间序列数据:同一组变量在连续时间点上的观测值,比如逐小时的温度、逐日的股价。「谁先动手」对应因果滞后(causal lag):原因变量在 t 时刻的取值,会影响结果变量在 t+1 或更晚时刻的取值。注意,这里有一个铁律:原因必须先于结果发生。如果 X 和 Y 完全同步波动,我们无法仅凭数据区分谁引起谁。
把带时间偏移的因果关系画成图,就是时序因果图(time-series causal graph)。节点是「变量在某个时刻的值」,有向边表示「t−1 时刻的 X 影响 t 时刻的 Y」。最基本的滞后依赖可以写成:
破案第一步,不是急着下结论,而是先把监控录像按时间轴排好,标出谁在哪个时间点发生变化——这正是时序因果发现的起点。有了这个基础视角,我们才能理解后面的 PCMCI 是如何系统化「回放录像」的。
- \(X_t\)(当前记录)变量 X 在 t 时刻的取值,即监控画面里这一帧的库存量。
- \(Y_{t-1}\)(上一帧记录)变量 Y 在 t−1 时刻的值,表示「之前一帧」的状态。
- α(影响强度)回归系数,度量上一时刻的 Y 对当前 X 的拉动有多强,是「谁先动手」的证据强度。
- \(\varepsilon_t\)(随机扰动)噪声项,代表未被观测到的其他随机因素,比如某位顾客突然买走所有薯片。
PCMCI 原理:侦探的两步破案法
一个聪明的侦探不会一上来就抓人。他会先根据线索画一张「嫌疑人联系网」,把所有可能有关系的人都列出来;然后逐一审问,剔除证据不足的怀疑,最后锁定真凶。PCMCI 算法正是这套两步破案法的数学化身。
PCMCI 由 PC 算法(以 Peter Spirtes、Clark Glymour、Richard Scheines 命名,P 是作者首字母的来历)与 MCI(Momentary Conditional Independence,即时条件独立性)检验组合而成。第一步是 PC 阶段:对每个变量,粗略找出所有在滞后阶数内与它相关的「候选父集」,画出一张可能包含虚假边的因果骨架图。这一步刻意放宽标准,宁可多抓、不可漏掉。
第二步是 MCI 阶段:对每条候选边做一次严格的条件独立性检验,条件集合同时包含原因变量自身的父集、以及其他变量的父集。这意味着审问每一个嫌疑「关系」时,双方的所有同伙都被请到现场——只有在这种全在场情况下仍然显著的关联,才被认定为因果边:
PC 负责撒网,MCI 负责收网。两步走完,监控录像里真正「先动手」的那条边就从众多嫌疑中浮出水面,成为可解释的因果证据。
- \(X_{t-\tau}\)(嫌疑原因)被怀疑的原因变量,位于 t 时刻之前 τ 期,相当于「案发前 τ 分钟出现在现场的人」。
- \(Y_t\)(案发现场)结果变量在当前时刻的取值,即案发时刻的现场状态。
- \(\perp\!\!\!\perp\)(条件独立符号)表示「控制一切干扰后,二者不再有关系」,是审问中「查无实据」的数学记号。
- \(\mathbf{S}_X \cup \mathbf{S}_Y \setminus \{X_{t-\tau}\}\)(全部同伙在场)将 X 与 Y 的所有已确认父集变量全部纳入条件集合再检验,排除链式或共因造成的虚假关联。
滞后阶数选择:回放多远才算数
监控录像要看多久?只看前一秒,可能错过关键线索;回放一年,又会被无数无关片段淹没。滞后阶数 τ_max 就是侦探决定「回放多远」的关键参数,它规定每个变量最多考虑多少个历史时刻作为候选原因。
如果 τ_max 设得太小,长滞后因果被系统性遗漏,比如利率对通胀的影响需要数个季度才显现,只回放一个月就什么都看不到。但如果设得太大,过多的历史变量会进入条件集合,导致每次检验的自由度下降、统计功效变弱,无关边反而更容易「冒领功劳」。这正是典型的两难:窗口太长,噪音淹没信号。
统计学家为此发明了打分器——信息准则。最常用的是赤池信息准则(AIC),它同时奖励模型对数据的解释能力和惩罚多余的参数:
实践中还要做敏感性分析:把 τ_max 从 1 逐步增大,观察因果边是否稳定出现。只有始终存在的边,才值得写进结案报告。回放窗口选得刚刚好,侦探既不会漏掉真凶,也不会被无关路人带偏。
- AIC(模型打分器)赤池信息准则的缩写,综合评估「解释力」与「简洁度」,分数越低越好。
- k(嫌疑人数量)模型中的参数个数,每多一个滞后变量就相当于多一份档案管理成本。
- \(\ln(\hat{L})\)(解释力)最大似然值的对数,衡量这组变量对监控录像中事件过程的解释程度。
- 2 倍惩罚对参数数量的加倍惩罚,防止侦探为了「完美解释」堆砌无关嫌疑人导致过度拟合。
动态贝叶斯网络:概率棋盘上的推演
如果说 PCMCI 是「事后回放录像」,动态贝叶斯网络(Dynamic Bayesian Network,DBN)则是「概率棋盘推演」——侦探把每个时间点看成棋盘上的一格,在格子里记录变量状态转移的概率,从「有没有边」升级到「影响有多强、如何随状态变化」。
DBN 把时间序列切成一系列时间片(time slice)。每个时间片内有多个变量节点,节点之间的边可以跨时间片相连(比如从 t 时刻指向 t+1 时刻),从而构成一张沿时间展开的有向无环图(DAG)。它的核心假设是平稳马尔可夫性:转移规律不随时间变化——同一套「剧本」在整段监控录像中反复上演:
有了这张概率棋盘,侦探不仅能指出谁先动手,还能预测「上一格是这样,下一格有多大可能走向那样」。相比 PCMCI 输出「因果边存在与否」,DBN 进一步给出因果关系的概率强度,适用于需要量化推演的场景。
- \(X_t\)(当前局面)t 时刻所有变量的取值,即棋盘上当前这一步的全部棋子位置。
- \(X_{t-1}, \dots, X_{t-\tau}\)(历史局面)最近 τ 个时刻的状态,代表侦探回放过的前几步棋。
- \(P(\cdot \mid \cdot)\)(转移规则)条件概率,记录从历史局面推导当前局面的概率法则。
- 等号两侧(同一剧本)说明无论在哪一帧,状态转移的概率规则都保持不变,这是 DBN 能够用一段数据推断全部时刻的前提。
条件独立性检验:隔离审问同伙
抓到嫌疑人,怎样确认他是独立作案,而不是与同伙串通?侦探的做法是:把同伙隔离开,看他是否还与案件有关联。条件独立性检验在统计上就是这套「隔离审问」:给定条件变量 Z 后,考察 X 与 Y 是否仍然相关。
对连续时间序列,最常用的检验工具是偏相关(partial correlation)。它的思路很直观:先分别用 Z 对 X 和 Y 做回归,把 Z 能解释的部分全部剔除,剩下的残差就是「隔离同伙后」各自的真实状态;再计算两个残差的相关系数。数学上:
当变量间呈现明显非线性关系时,偏相关可能「失灵」,此时需要改用基于信息熵的互信息检验,它能捕捉任意形式的依赖。检验策略上还有个窍门:先做条件集合较小的低阶检验,快速排除明显独立的边,再逐步增大条件集合,像筛沙子一样由粗到细。每一轮「隔离审问」,都在缩小嫌疑范围。
- \(\rho_{XY}\)(表面关联)X 与 Y 的普通相关系数,相当于未经隔离时两人的日常接触频率。
- \(\rho_{XZ}\rho_{YZ}\)(同伙渠道)Z 分别与 X、Y 的关联之积,代表「通过同伙 Z 产生的间接联系」。
- 分子相减(剔除同伙影响)从总相关中扣除通过 Z 传导的间接部分,剩下才是 X、Y 之间的直接关联。
- 分母标准化(统一尺度)用 Z 对两者的解释力度对结果做归一化,使偏相关始终落在 [−1, 1],便于设定统一阈值。
实践案例分析:三个真实案发现场
理论讲完,我们走进三个真实案发现场,看看时序因果发现如何在实际数据中破案。
气候科学:研究者用 PCMCI 分析海表温度、气压、降水量等多条气候时间序列,发现厄尔尼诺指数对区域降水存在滞后 3-6 个月的因果影响。传统相关分析只能看到同期同步,而 PCMCI 明确指出「谁先动、多久后见效」,为季节预测提供了可解释的特征。
经济学:央行利率与通胀率之间,利率调整往往需要数个季度才传导到物价。用 PCMCI 从宏观时间序列中提取「利率 → 通胀」的滞后因果路径,滞后阶数由 AIC 自动选择,避免了人为设定窗口的主观偏差。
神经科学:fMRI 扫描得到不同脑区随时间变化的血氧信号,动态贝叶斯网络被用来估计脑区之间的动态连接强度。比如,「前额叶在 t 时刻的活动会增强 t+1 时刻杏仁核的反应」,这种因果链为认知模型提供了证据。
在分析因果强度时,常借助带控制变量的滞后回归,把其他干扰因素一并纳入方程:
三个案发现场都印证同一个道理:带上滞后视角,因果才可能从「相关」中浮现出来。无论是气候系统的数月传导、货币政策的季度滞后,还是脑区间的毫秒级互动,时序因果发现的思维方式完全一致。
- \(Y_t\)(结果变量当前值)我们要解释的对象,比如当前季度的通胀率。
- \(X_{t-1}\)(滞后原因)候选原因变量在上一时刻的值,例如上一季度央行调整后的利率。
- β(因果强度)在控制其他变量后,X 每变化一个单位,Y 平均变化 β 个单位,这是因果效应大小的直接度量。
- \(\gamma Z_{t-1}\)(控制变量)把已知的混淆因素 Z 也放入模型,防止它的影响被误算到 X 头上。
- \(\varepsilon_t\)(噪声)仍无法解释的随机扰动,提醒我们因果模型永远只是现实的近似。
工具与代码实现:给侦探配装备
光有推理能力不够,侦探还需要趁手的装备。Tigramite 是时序因果发现领域的「专业工具箱」,专为 PCMCI 设计,一站式完成从时间序列到因果图的完整流程。
用 Tigramite 跑一次 PCMCI 只需三步。第一步是数据预处理:去趋势、标准化,类比为「清理监控录像的雪花噪点」。第二步是核心调用:PCMCI(data, cond_ind_test=ParCorr()),其中 cond_ind_test 指定条件独立性检验方式,线性场景用 ParCorr(偏相关),非线性场景可换成 GPDC(高斯过程检验)。第三步是运行与可视化:run_timeseries(tau_max=3) 指定最大滞后阶数并执行算法,返回每条候选边的 p 值,再绘制出因果图。在检验显著性时,偏相关的 t 统计量是判断「证据是否足够立案」的核心依据:
装备到位后,侦探要做的事就是喂数据、调参数、读图。tau_max 对应滞后阶数选择,alpha 是显著性水平。每一步操作背后,都是前面几节讲过的原理在自动运转。
- \(\hat{\rho}\)(观测关联强度)样本偏相关系数,即隔离同伙后仍能观测到的残余关联。
- n(有效帧数)样本量,即监控录像中有价值的帧数。帧数越多,证据越充分。
- q(同伙人数)条件变量个数,被隔离审问的同伙越多,剩余证据的「含金量」要求越高。
- 整个根式(证据换算)将关联强度与样本量合并,得出一个服从已知分布的检验统计量,用于计算 p 值。
局限与注意事项:侦探的盲区
再老练的侦探也有盲区。如果监控录像的某个摄像头坏了(隐藏变量没被记录),或者嫌疑人作案手法太过隐蔽(变量间呈强非线性关系),破案就可能失手。
PCMCI 的第一道墙是无隐藏混淆假设。如果存在一个未观测的公共原因同时驱动 X 和 Y,算法会把这条「伪路径」误判为直接因果。数学上可以这样理解:真实因果效应为 0,但估计出的偏相关却不为 0:
第二道墙是检验假设:偏相关本质是线性工具,遇到强非线性关系会漏检或误检,需要改用核方法或互信息类检验。第三道墙是样本量:条件变量越多,统计功效下降越快,时间序列太短时,漏检和误检都会显著增多。知道盲区在哪,才能避开它。拿到因果结论后,务必先用领域知识审一遍,再决定是否采信。
- \(\widehat{\rho}_{XY \cdot Z}\)(算法看到的关联)由样本估计出的偏相关,相当于侦探从录像里「看到」的两人互动。
- \(\neq 0\)(冤枉好人)估计值显著偏离零,算法据此判定存在因果边,但这份「证据」来自未观测的混淆因素。
- 真实因果效应为 0(实际清白)在理想的全知视角下,X 对 Y 没有任何直接影响,嫌疑人是被栽赃的。
- 对比两者(盲区的代价)二者不一致,正是隐藏变量存在时的典型信号——所以领域知识验证不可或缺。
AI 应用场景
气候季节预测:找对海温信号的滞后指挥棒
阶段:特征工程与因果特征选择
解决的问题:传统气候预测常把大量海温格点数据直接塞进统计模型,特征间强相关导致模型过拟合、可解释性差。用 PCMCI 找出海温指数对区域降水的滞后因果路径后,只保留真正有因果关系的滞后特征,预测模型精度和稳定性显著提升。
具体案例:某气象团队分析 1980 年以来的月度海表温度与降水数据,用 PCMCI 发现赤道中东太平洋海温异常对印度季风降水存在滞后 2-4 个月的因果影响。据此构建的季节预测模型,提前一个季度对极端旱涝事件的召回率提高约 20%。
宏观通胀预警:从利率调整到物价传导的因果时差
阶段:因果结构建模与可解释分析
解决的问题:央行政策效果评估中,传统相关分析常把利率与通胀同步波动误读为即时影响。利用 PCMCI 识别「利率 → 通胀」的滞后传导路径和传导时滞,帮助经济学家准确评估政策生效时间,避免在错误的时间窗口上做归因。
具体案例:某研究机构用 PCMCI 分析 20 年宏观时间序列,发现 M2 货币供应量对 CPI 的因果影响滞后约 6 个季度,而利率渠道的传导时滞约 3 个季度。基于此结论,宏观团队将通胀预警模型的预测提前期从 2 个季度扩展到 5 个季度。
脑机接口:解码运动意图的时序因果链
阶段:动态因果推断与实时解码
解决的问题:脑机接口需要从运动皮层神经信号解码出肌肉意图,传统解码器只关注同期相关,忽略了皮层活动到肌肉信号之间的毫秒级因果传导。用动态贝叶斯网络建模「皮层 → 肌电」的时序因果连接,把神经信号随时间的动态影响显式编码,解码延迟明显降低。
具体案例:某脑机接口团队记录猴子抓握任务中的皮层锋电位与肌电信号,构建两变量 DBN,输出每条因果边在每个时间片的转移概率。实时解码实验中,运动意图识别延迟从 120ms 降至 80ms,假肢控制的流畅度显著改善。
Python 演示
"""A tiny PCMCI: find lagged causal edges via partial correlation tests."""import numpy as npfrom math import erf, sqrt def partial_corr(x, y, Z): """Partial correlation: remove Z effect, then correlate residuals.""" if Z is None or Z.shape[1] == 0: Z = np.ones((len(x), 1)) else: Z = np.column_stack([Z, np.ones(len(x))]) beta_x = np.linalg.lstsq(Z, x, rcond=None)[0] beta_y = np.linalg.lstsq(Z, y, rcond=None)[0] rx = x - Z @ beta_x ry = y - Z @ beta_y return np.corrcoef(rx, ry)[0, 1] def pvalue_of(r, n, k): """Fisher z-transform: turn partial corr into a two-sided p-value.""" z = abs(np.arctanh(r)) * sqrt(max(n - k - 3, 1)) return 1 - erf(z / sqrt(2)) def pcmci_simple(X, max_lag, alpha=0.05): """Simplified PCMCI: PC screening + MCI testing loop.""" T, N = X.shape edges = [] for target in range(N): cond = [] # confirmed parent set (accomplice list) for lag in range(1, max_lag + 1): for source in range(N): x = X[max_lag:, target] y = X[max_lag - lag:T - lag, source] z_cols = [X[max_lag - l:T - l, s] for (s, l) in cond] Z = np.column_stack(z_cols) if z_cols else None r = partial_corr(x, y, Z) k = Z.shape[1] if Z is not None else 0 p = pvalue_of(r, len(x), k) if p < alpha: edges.append((source, lag, target, round(r, 3))) cond.append((source, lag)) return edges if __name__ == "__main__": rng = np.random.default_rng(42) T = 500 X = rng.normal(size=T) # Y follows X with a lag of 1 plus noise Y = 0.6 * np.roll(X, 1) + rng.normal(scale=0.5, size=T) data = np.column_stack([X, Y]) result = pcmci_simple(data, max_lag=3, alpha=0.05) print("Lagged causal edges: (source, lag, target, r)") for edge in result: print(edge)
partial_corr(x, y, Z)先把同伙 Z 的影响回归掉,再计算两人残差的相关系数,这就是「隔离审问」的数学实现。cond.append((source, lag))已确认的父集加入审讯名单,后续每次检验都把名单上的人请到现场对质。p < alphap 值低于显著性阈值才认定这条因果边成立,相当于「证据足够立案」。np.roll(X, 1)造出「Y 滞后 1 期跟随 X」的合成数据,模拟监控录像里真实存在的因果时差。(source, lag, target, round(r, 3))输出结构清晰的结果:谁、滞后多久、影响了谁、关联强度多少。max_lag=3对应正文的滞后阶数选择:只回放最近 3 期,避免窗口过长引入噪音。
常见误区
误区我画出的 X 和 Y 曲线几乎同步起伏,X 涨 Y 也涨,X 一定就是 Y 的原因。
正解同步只是相关,不是因果。两个变量可能同时被第三个变量驱动,比如整体经济趋势同时推高股市和房价;也可能纯粹是巧合。PCMCI 用两道关卡来区分:原因必须先于结果发生,且在控制其他变量后关联依然显著。就像两个路人同时狂奔,不是因为互相追逐,而是后面有同一只老虎。
为何常见:人脑对「共变模式」天生敏感,进化让我们倾向于把同步变化直接解读为因果,而忽略了时间先后和隐藏的第三变量。
误区我以为 PCMCI 就是把所有滞后期下的相关系数都算一遍,取显著的那些作为因果边。
正解PCMCI 是两步法,关键在于第二部的 MCI 检验:条件集合同时包含双方所有已确认父集。只算滞后相关不做条件控制,会把混淆路径(如 X←Z→Y)误判成 X→Y。两步法的全部价值,就藏在「把所有同伙都叫到现场对质」这一步里。
为何常见:很多入门资料只展示最终的因果图,省略了中间「撒网再收网」的筛选过程,让人误以为 PCMCI 一步到位。
误区我怕漏掉长滞后因果,把 tau_max 设为 20、30,总觉得窗口越大越保险。
正解滞后阶数过大时,条件变量数量激增,每个检验的自由度迅速下降,统计功效变差,无关边反而更容易冒充真凶。正确做法是用 AIC 等信息准则选一个合适的 tau_max,再做敏感性分析,观察因果边是否随阶数稳定出现。监控回放太长,同样会被无关片段干扰判断。
为何常见:「多多益善」的直觉在数据稀疏时往往失效,人们容易忽略模型复杂度与样本量之间的平衡关系。
误区DBN 只能考虑 t−1 到 t 的转移,更高阶的依赖必须拆成多个变量,用起来很麻烦。
正解DBN 完全可以处理高阶依赖,只需把父节点扩展到 t−τ 并保留足够大的转移表。真正的限制是「转移表随阶数指数膨胀」——τ=2 时参数空间已经爆炸。所以实践中常用 PCMCI 先锁定因果结构,再用 DBN 建模转移强度,两者是互补关系而非替代关系。
为何常见:教材通常以最简单的一阶马尔可夫 DBN 举例,容易让人误以为高阶不可行或非标准。
面试题
Q1. 时序因果发现中,判定 X→Y 因果关系的必要前提是?
- A.相关程度足够高
- B.X 发生在 Y 之前← 正确答案
- C.X 与 Y 同步波动
- D.Y 发生在 X 之前
答案:B。因果必须有时间先后,原因先于结果。高度相关或同步波动都可能是混淆因素造成的假象,无法区分因果方向。选项 D 是反向因果,恰好说明「谁先动」才是判案关键,就像监控录像里先动手的人才是凶手。
Q2. PCMCI 中 MCI 检验的核心作用是什么?
- A.绘出全部候选边
- B.控制父集后验证← 正确答案
- C.计算信息准则值
- D.生成动态贝叶斯网
答案:B。MCI 是第二步「收网」,它把双方的所有父集变量纳入条件集合后再检验,专门剔除由混淆路径造成的虚假相关。A 是 PC 阶段的工作,C 是滞后阶数选择环节,D 是另一套因果建模框架,都不属于 MCI 的职责。
Q3. PC 阶段计算得到的结果是什么?
- A.最终因果箭头图
- B.可能存在假边候选← 正确答案
- C.概率转移参数表
- D.每条边的精确 p 值
答案:B。PC 阶段是「撒网」,刻意放宽标准,给出一个可能包含虚假边的候选父集。精确的 p 值和最终因果箭头都要等 MCI 阶段完成之后才能确定。C 是动态贝叶斯网络的输出,与 PC 阶段无关。
Q4. 偏相关系数 ρ_{XY·Z} 度量的是什么?
- A.X 与 Y 简单相关
- B.剔除 Z 后的残余相关← 正确答案
- C.X 与 Z 的偏相关
- D.三者的两两总相关
答案:B。偏相关先用 Z 分别回归 X 和 Y 得到残差,再计算残差相关,本质是「隔离同伙后审问嫌疑人」。A 忽略了 Z 的存在,C 度量的是 X 与 Z 的关系,D 描述的是普通相关矩阵,都不是偏相关的定义。
Q5. AIC 在滞后阶数选择中扮演什么角色?
- A.滞后阶数越大越好
- B.平衡拟合与复杂度← 正确答案
- C.直接判定因果方向
- D.替代所有显著性检验
答案:B。AIC = 2k − 2ln(L̂) 同时包含拟合优度项和参数惩罚项,数值越小模型越优。它帮助选择「既不漏线索、又不被噪音淹没」的滞后窗口,但并不判定因果方向,也不替代 MCI 的显著性检验。
Q6. 以下哪些是 PCMCI 的适用场景特征?
- A.数据按时间采集← 正确答案
- B.需识别因果方向← 正确答案
- C.仅需预测未来值
- D.存在滞后因果链← 正确答案
答案:ABD。PCMCI 面向时间序列数据,核心目标是从中识别带方向的滞后因果结构。A、B、D 都是它的典型适用条件。C 是纯粹的预测任务,不需要因果结构,用普通回归或循环神经网络即可,不必动用 PCMCI。
Q7. 动态贝叶斯网络的核心特征包括哪些?
- A.按时间片展开 DAG← 正确答案
- B.建模状态转移概率← 正确答案
- C.只能处理一阶依赖
- D.假设转移规则平稳← 正确答案
答案:ABD。DBN 将时间序列切分为时间片,并假设转移规律平稳,输出各时间片间的条件概率分布。C 错误:DBN 可以扩展至高阶马尔可夫,只是转移表会随阶数指数膨胀,实践中需结合 PCMCI 控制复杂度。
Q8. 存在隐藏混淆因素时,PCMCI 最可能发生什么?
- A.检测结果更精确
- B.伪相关误判为因果← 正确答案
- C.只削弱动态贝叶斯
- D.导致算法直接崩溃
答案:B。未观测的公共原因同时驱动 X 和 Y 时,算法估计出的偏相关可能显著不为零,而真实因果效应为 0,于是把伪路径误判为直接因果。这是 PCMCI 的核心局限之一,但算法本身不会崩溃,也不会变得更精确。
Q9. 以下哪些情况会显著降低 PCMCI 结果的可靠性?
- A.样本量太小← 正确答案
- B.存在强非线性← 正确答案
- C.滞后阶数过小← 正确答案
- D.数据无趋势
答案:ABC。小样本导致统计功效不足,强非线性超出偏相关检验的假设范围,滞后阶数过小会遗漏长滞后因果,三者都会降低可靠性。数据无趋势反而是好事情——趋势混入会造成伪相关,预先去趋势是标准预处理步骤。
Q10. 使用 Tigramite 时,run_timeseries(tau_max=3) 中的 tau_max 控制什么?
- A.选条件独立性检验
- B.最大滞后阶数设置← 正确答案
- C.显著性水平阈值
- D.参与分析的变量数
答案:B。tau_max 就是正文第三节强调的最大滞后阶数,决定回放监控录像的时间窗口。它直接影响候选父集的规模和检验功效,选太大引入噪音、选太小遗漏长滞后。检验类型和显著性水平由其他参数指定,与 tau_max 无关。