相关≠因果:量化里的三堂"冰淇淋课"
我的掌握程度:
先掌握这个答案
四种结构:X→Y(真因果);Z→X且Z→Y(共同原因——夏天型);纯巧合(多重检验的产物,q-255);Y→X(反向)。量化三案例:①风格混杂:"低换手因子有效"——其实是低换手组集中于小盘/价值风格,风格才是原因(中性化=打断混杂,q-347/452);②数据挖掘:试100个指标与收益的相关,5个"显著"——巧合的工业化生产(q-255专场);③前向相关:价格先动、财务指标后披露——看似"财务预测价格",实为价格领先财报(公告日对齐治它,q-062)。走向可信因果的三件武器:控制变量(中性化/回归)、样本外复现、机制故事(为什么应该有因果——行为/制度/风险补偿)。
先读结论,再核对下方使用边界;数字例题为教学情景,涉及实际行情与规则时请核对原始来源。
从理解到使用
相关性不能证明预测力
说明横截面还是时间序列、Pearson还是Spearman、样本窗口与滞后方向。非平稳序列可能产生伪回归;回归系数或高相关既不自动证明因果关系,也不保证可交易。
本阶段实战方法 · 每个统计量都要带单位和假设
计算收益、波动、回归、显著性或相关性时,先明确样本和推断条件。
- 写清收益频率、样本数、缺失处理、是否含费用;百分数与小数不可混用。
- 手算一组小样本,再用代码复算;区分算术均值年化、复合年化和年化波动。
- 解释假设不成立会发生什么:自相关、肥尾、非平稳与多次试验都会影响结论。
使用边界
- p值不是原假设为真的概率,也不是策略未来盈利概率。
- 日波动×√252依赖时间聚合假设;252是教学常用交易日数,实际市场与口径可能不同。
不懂的术语:因子(Factor)
背景 · 从一个困惑说起
冰淇淋销量与溺水人数正相关——不是冰淇淋害人,是夏天(共同原因)。这个经典例子在量化里有三个堂兄,每一个都让真金白银付出了代价。
由此产生的问题
相关背后的四种可能结构(因果/共同原因/巧合/反向)?量化里的三个典型案例(风格混杂/数据挖掘/先有价格后有指标)?实践中怎么从相关走向"可信的因果"?
核心概念
四种结构:X→Y(真因果);Z→X且Z→Y(共同原因——夏天型);纯巧合(多重检验的产物,q-255);Y→X(反向)。量化三案例:①风格混杂:"低换手因子有效"——其实是低换手组集中于小盘/价值风格,风格才是原因(中性化=打断混杂,q-347/452);②数据挖掘:试100个指标与收益的相关,5个"显著"——巧合的工业化生产(q-255专场);③前向相关:价格先动、财务指标后披露——看似"财务预测价格",实为价格领先财报(公告日对齐治它,q-062)。走向可信因果的三件武器:控制变量(中性化/回归)、样本外复现、机制故事(为什么应该有因果——行为/制度/风险补偿)。
为什么需要它
①因子研究的头号哲学问题:每个高IC都是一份"相关证据",把它升级为"因果证据"需要额外工作——省略这些工作的研究就是自欺流水线;②混杂的普遍性:A股几乎所有量价因子都与市值纠缠——不控制它的"发现"大概率是发现了自己没控制的东西;③机制故事的规范:讲不出"谁在犯错/什么风险被补偿"的因子照样本内完美也要警惕——这是q-444(讲故事)的统计学基础。
实际应用场景
研究流程三步:发现相关→做控制(中性化、分组、回归)→写机制故事并找样本外证据;三关全过才入库——本课程从阶段5起反复执行的正是这个流程。
与之前知识的联系
q-223/224(相关工具)的哲学收尾;q-255(多重检验)与q-452(中性化故事)是它的两大战场;q-444(讲故事)是机制故事的完整版。
⚠ 常见误解
- 相关强+逻辑讲得通=因果:讲故事的能力不等于证据——机制故事是假设,仍需控制与样本外检验
- 控制了市值行业就安全了:还有无数未观测的混杂(流动性、波动、拥挤度)——控制是渐进过程不是一次性仪式
- 因果在量化里不重要:组合里装的是"会持续的相关"——而持续性恰恰依赖因果机制活着;机制死了相关就散(因子失效的哲学)
🛠 本题实践任务
用代码构造一个共同原因结构(如上),验证"控制后相关归零";再对你的某个真实因子做市值/行业控制,记录IC的下降幅度——那是混杂的占比。
💡 提示(先自己想5分钟再看)
控制=对Z回归取残差再算相关;真实因子的控制版即中性化后IC(q-456的纯度测量)。
✅ 验收标准
一次构造实验+一次真实因子的混杂占比测量。你从此用"相关→控制→机制"的三段论审视一切发现。
在你的浏览器内运行。首次需联网下载 Python;支持标准库和 Pyodide 提供的 NumPy、pandas 等包。行情抓取、系统文件访问和部分第三方库请在本地环境运行。输出自检仅比对结果关键词,不代替逻辑审查。
Python · 独立工作线程 · 执行限时10秒
🤖 AI导师
导师会先检查你的前置知识(相关系数读数),再用案例、公式和代码帮助理解。此功能需要先启用服务。