时间序列分类问题中的因果推理(基础篇)
📘

时间序列分类问题中的因果推理(基础篇)

第 1/3 篇

◍ 为什么直接喂数据训模型常常白忙

很多交易者以为把指标和买卖场景丢进神经网络,模型就能自动挖出可用规律。现实是,递增信号、之字形或均线相对位置这类常见标记,大多只是人工规则,并不内嵌真正的因果结构。 数据标注在机器学习里极贵极慢,需要领域专家参与。GPT 类大模型也只是在海量语料上学会语言模式分类,并不判断某句话在交易里是真是假,仍要靠人去校正。 作者在原系列前篇试过元学习器、交叉验证和 ONNX 导出,但明确提到:模型无法从互不相关甚至矛盾的数据中开箱提取规律。若输入选错或标签给错,再大的网络也默认造不出能盈利的策略。 生成式模型和对抗网络在图像上能编出像样样本,但答案里的随机性让它不适合外汇这种高风险场域——随机行为基本就是亏损的同义词。文章作者自己把上述算法跑在外汇货币对时间序列上,结果并不满意。 后来业界转向“可信机器学习”,本质是用算法去搜数据里的因果,而非只做表面拟合。医学、计量经济学已用得上,交易端才刚起步。

从亚里士多德到休谟:因果观怎么框住交易认知

亚里士多德把因果拆成四层——物质、形式、效率、最终原因,认为搞不懂过程背后的因果结构就不算真理解。这套框架放今天看有点反直觉,但点出一个硬事实:能回答“为什么”,才是解释的核心,而不是只描述“发生了什么”。 休谟在 18 世纪把调子拧到另一边。他说人从没真正“看见”因果,只看见事件 A 总跟着事件 B:台球一动,另一个就动,感官里根本没有“必然联系”这种东西。按他的解释,重复看多了大脑生出期待感,所谓因果不过是这种感觉,不是世界本身的属性。 这说法和交易里的联想坑高度重合。心理学条件反射靠刺激—反应联想,监督学习算法也是靠输入输出的关联映射来找预测函数——大多数经典 ML 用关联就够用。可市场里价格 A 后面跟 B 几百次,未必是因果,可能只是那段行情的流动性结构使然。 儿童心理学给了一条出路。Gopnik 研究婴儿建世界模型,发现 11 个月大婴儿更爱挑行为不可预测的物体摆弄(Stahl & Feigenson, 2015)。他们不是光看,而是系统性做实验——这种主动干预,正是随机对照试验(RCT)的雏形,也是把关联和真因果切开的那把刀。 外汇和贵金属杠杆高、噪声大,把历史关联当因果去开仓,概率上会吃暗亏。下一步得想清楚:怎么用干预思路,在 MT5 复盘里区分“跟着动”和“推着动”。

「分类器盈利到底是信号还是巧合」

做机器学习交易系统,核心不是预测准不准,而是你敢不敢基于它的信号去下单。因果推理关心的是:训练出来的模型,到底有没有真正带来优于随机的决策稳定性,而不是只在回测里好看。 经典那句「相关不代表因果」放在品种序列上特别刺耳。两段行情同涨,可能只是风险情绪共振,并不意味 A 带动了 B。真要认定因果,得看一个变量(或一次干预)对另一个结果的实际影响,这也是 A/B 测试的思路,只不过我们用训练好的模型当「处理组」,随机不开模型的样本当「对照组」。 一个很现实的现象:分类器在训练集和验证集上都赚了,放到测试集反而亏。要判断它对新数据有没有正效应,理想情况是同时看到「训练过」和「没训练过」同一批数据的结果——但没训练的模型根本不发信号,这个反事实结果永远看不见,你手里的只是实际结果。 这正好是因果推理的基本问题:单条样本上你永远缺那一半对照,所以不能直接说「我的预测改进了」。能做的只有随机实验,把样本随机拆成处理组和对照组,算两组平均收益差,得到平均处理效应(ATE)的估计。外汇和贵金属杠杆高、滑点跳空频繁,这种群体层面结论也只代表概率倾向,不能当必胜依据。

◍ 证据阶梯:从种子实验到反事实建模

做因果推断先得认清楚手里的证据值几斤几两。MQL5 原文里把方法按证据能力排成阶梯,最底下一阶是中学那种「控制变量」硬实验:两罐种子,除光照外一切相同,两周后窗边出芽、壁橱里几乎不长——结论只能是光照缺失抑制生长。这套对交易数据基本没戏,你没法把行情随机关进壁橱只留一个变量。 往上走是 A/B 测试(统计实验),靠随机化和大数定律抹平不可控差异,科技圈用得最疯;再往上是准实验,治疗组和对照组被自然过程切开,比如越战征兵抽签算退伍军人收入影响、新泽西与宾州边界研究最低工资。这些在社科学可行,但金融序列里你等不到这种「天赐断面」。 顶端(其实证据最弱)是反事实方法:不硬分两组,而是用历史数据建一个「没有 X 参与时的 Y 模型」,再把 X 发生后的真实 Y 拽进来比差距。效果估算全看模型准不准、稳定性测没测。构建时间序列分类器时我们只能走这条路——自己造工具变量或处理手段,喂进观测,再狠测方法鲁棒性。外汇与贵金属波动受多重宏观因子纠缠,反事实结论仅具概率意义,实盘前务必在 MT5 用历史数据复跑验证。

潜在结果框架下的处理效应拆法

在因果推理里,所谓“处理”T 就是对一个单位施加的影响:诊所里的病人、被广告触达的用户、或是训练集里的某条样本,都算单位。一个单位同一时刻只能处在“接受处理”或“不接受处理”其中一种状态,不存在既处理又不处理的情况。 用 Y(0) 表示未接受处理的潜在结果,Y(1) 表示接受处理的潜在结果。单个单位的处理效应就是两者之差:τ_i = Y_i(1) − Y_i(0)。但因果推断的基本难题在于,现实中你只能观测到其中一种结果,另一种永远是反事实,所以 τ_i 个体层面拿不到。 能算的是群体平均效应。若从全体中随机抽取一部分处理、一部分不处理,可得平均处理效应 ATE = E[Y(1) − Y(0)];若只盯着实际被处理的那批单位,算的是 ATT = E[Y(1) − Y(0) | T=1]。这两者在 MT5 做策略归因回测时,分别对应“全样本 shuffle 对照”和“仅实盘触发样本”两种算法口径,外汇与贵金属品种滑点结构不同,ATT 往往比 ATE 偏离更明显,属高杠杆高风险环境下的常见偏差。

「偏差归零关联才成因果」

区分相关性和因果关系,核心就在偏差二字。设想另一个宇宙里“自我”处在完全不同的生存条件下,他做决策得到的结果和我们这个宇宙对不上,那基于本宇宙数据推出来的结论只是关联,不是因果。训练好的分类器也一样,碰到没见过的新数据或分布漂移,预测就会失效,本质就是训练样本和真实环境之间存在偏差。 用均值差来表达:两个宇宙样本不可比时,观测到的差异里混着生存条件本身的差异,所以只能算关联;只有当存在条件可比,均值之差才等于平均因果效应(ACE)。一句话落地——估计因果效应,前提是两个样本可比;偏差趋近零,关联才升级为因果。外汇与贵金属市场受宏观变量多重扰动,这种样本不可比导致伪相关的高风险随处可见。 挪到机器学习语境,我们手里的训练、验证、测试集就是不同“宇宙”的子样本。训练时若验证子集和训练子集条件可比,两边预测误差大致持平;一旦验证集带条件偏差,误差立刻放大,测试集若分布根本不同就更难看。想跨分布做因果推断,上节给的 partial 答案是随机实验——把偏差在干预下打平,才可能谈得上预测“另一个宇宙”里的真实结果。

常见问题

单纯喂数据容易学到样本内的巧合噪声,而非可复用的价格结构;应先做因果假设再验证,避免过拟合式白忙。
休谟指出连续出现不等于因果,散户需警惕把“形态后涨了几次”当成必然规律,用反例和样本外检验拆穿错觉。
小布可对你用的品种跑样本外与反事实诊断,标出信号在哪些时段失效,帮你区分运气与真实边缘。
需定义干预与反事实对照并消除选择偏差,只有在偏差趋零时关联才上升为因果,可从小样本种子实验起步。
先在小样本手动验证假设,再扩大回测、加入反事实情景对照,逐步把“能盈利”的证据等级往上推。