量化交易中文教材

第 01 章 经济问题与数据

学习目标

读完本章,你应当能够:

  1. 说清计量经济学(econometrics)在做什么,以及它回答的两类问题:因果推断与预测。
  2. 用「理想随机对照实验」定义因果效应,并解释随机分配为什么能把处理效应与其他因素分开。
  3. 区分实验数据与观测数据,说出观测数据给因果推断带来的主要障碍(可观测异质性、不可观测异质性、双向因果)。
  4. 识别横截面、时间序列、面板三种数据结构,并把量化研究中常见的数据集归到对应类型。
  5. 理解「定量问题需要定量答案,而且答案必须附带精度」这一全书主线。

读前导读

这一章在解决什么问题。 本章几乎没有公式,它的任务是先把「问什么问题」说清楚。你在 CFA 二级学过回归:设定模型、看系数、看 t 统计量和 \(R^2\)、记住几条假设(线性、误差独立同方差、无多重共线性等)和违背后的名称(异方差、序列相关、多重共线性)。CFA 的重心是「会用、会读输出」。本册在此基础上多讲三件事:第一,推导,OLS 公式从哪里来、为什么无偏、为什么近似正态;第二,假设失效的后果,不仅是名称,而是失效后估计量偏向哪里、偏多少、能否修复;第三,稳健标准误,本书从第 5 章起默认用异方差稳健标准误,把 CFA 里的「同方差」当成特例。

本章还引入一个 CFA 很少强调的区分:因果和预测。CFA 回归题常问「X 变化 1 单位,Y 平均变化多少」,但没有追问这个数能不能当成「干预 X 之后 Y 的变化」。本章用理想随机实验给因果效应下定义,后面各章(遗漏变量偏差、工具变量、面板固定效应)都是在回答同一个问题:手里的观测数据离理想实验有多远、怎么补救。对量化来说,alpha 因子研究主要是预测问题,交易成本和市场冲击估计是因果问题,二者对数据的要求不一样。

需要先想起来的数学。 本章几乎不用数学,只有两处需要回忆:

  • 协方差与回归斜率:单变量回归的斜率等于 \(\operatorname{cov}(X,Y)/\operatorname{var}(X)\)。这和 CFA 里 beta 的公式 \(\beta=\operatorname{cov}(R_i,R_m)/\operatorname{var}(R_m)\) 是同一个东西。本章末尾模拟里的 \(0.3/1.25=0.24\) 就是这样算出来的。第 4 章会推导它,见 第 00 册第 07 章 概率中的分析工具。
  • 下标记号:\(n\) 表示横截面实体数,\(T\) 表示时期数,面板共有 \(n\times T\) 个观测。之后 \(Y_i\) 的下标 \(i\) 指第 \(i\) 个实体,\(Y_t\) 的 \(t\) 指第 \(t\) 期,\(Y_{it}\) 两者都有。符号读法可参考 第 00 册第 08 章 读懂数学证明与符号。

怎么读这一章。 1.1 节里的「三条默认设定」(大样本、随机抽样、异方差)要认真读,它们解释了本书为什么和 CFA 的做法不同。1.3 节的因果定义是全书地基,必读。1.2 节的四个问题可以快速浏览,记住它们会在后面哪章再出现即可。1.4 节的数据结构你大概已经熟悉,扫一眼量化实战的对应表就够了。最后的模拟代码值得看懂,它用两行公式说明了「能预测」和「有因果」是两回事。


1.1 计量经济学是什么

关于计量经济学有很多说法:检验经济理论的科学;预测企业销售、经济增长、股价等变量的一套工具;把数学经济模型拟合到真实数据上的过程;用历史数据给政府和企业提供数量化建议的科学与艺术。这些说法都对。Stock 与 Watson 给出的广义定义是:

计量经济学是运用经济理论和统计技术分析经济数据的科学与艺术。

它的应用遍及金融、劳动、宏观、微观、营销、经济政策,以及政治学、社会学等领域。对量化交易者来说,本册几乎每一章都能直接落到日常工作上:估计 beta、检验因子、构建风险模型、做收益预测、评估交易成本。

本书的组织方式值得先了解一下,因为它决定了后面所有方法的「默认设定」。作者主张理论匹配应用:现代数据样本大、回归变量是随机抽样得来的而不是实验者固定的、数据通常不服从正态、误差也没有先验理由同方差。因此全书采用三条默认设定:

  • 大样本方法:从一开始就用大样本正态近似做检验和置信区间,而不是依赖精确的 t、F 分布;
  • 随机抽样:因变量和自变量都视为随机抽样的结果;
  • 异方差:默认使用异方差稳健标准误,把同方差只当作一个特例。

这三条与金融数据的特征高度吻合(样本大、厚尾、波动随时间变化),所以本书的视角对量化读者很友好。

白话解释:这三条和 CFA 的默认做法正好相反。CFA 讲回归时通常先假设误差正态、同方差,再用精确的 t 分布查表;同方差不成立时才「修正」。本书反过来:先承认数据不正态、方差会变,靠样本足够大让估计量近似正态(中心极限定理),再把同方差当作碰巧成立的特殊情形。 「回归变量是随机抽样得来的而不是实验者固定的」也值得停一下。老式教材把 \(X\) 当成实验者事先设好的固定数字,只有 \(Y\) 是随机的。金融里你不可能事先「设定」市场收益,\(X\) 和 \(Y\) 都是同一次抽样抽出来的,所以本书把二者都视为随机变量。这会让后面的推导多出一层「先对 \(X\) 取条件,再求期望」的步骤。

金融直觉:「大样本」在量化里通常不是问题,日频数据十年就有约 2,500 个观测,横截面几千只股票。真正要小心的是「厚尾 + 波动聚集」:它们不会让 OLS 估计本身失效,但会让同方差公式算出的标准误偏小,t 统计量虚高,因子看起来比实际更显著。这就是本书坚持用稳健标准误的原因。

1.2 四个定量问题

许多决策依赖对变量之间关系的理解,而且需要数量,不只是方向。原书用四个贯穿全书的问题引出计量方法。

问题 1:缩小班级规模能否改善小学教育? 缩小班级要多雇教师、可能还要建教室。决策者要权衡成本和收益,所以必须知道收益的确切大小:大、小,还是零。常识只能告诉你方向。本书使用 1999 年加州 420 个学区的数据:小班学区的学生考试成绩更好,但小班学区往往也更富裕,学生有更多校外学习机会。要把班级规模的效应与经济背景分开,需要多元回归(本册第 6 章起)。

问题 2:房贷市场是否存在种族歧视? 波士顿联储用 1990 年代初的数据发现,黑人申请者被拒比例为 28%,白人仅为 9%。但两组申请者除种族外还有许多差异(收入、负债、信用记录),这个原始差距本身不能证明歧视。真正的问题是「其他条件相同」时被拒概率的差异有多大,方法见本册第 11 章(probit、logit)。

问题 3:医疗支出能否改善健康? 关键参数是支出对死亡率的弹性(spending elasticity for mortality):医疗支出增加 1% 时可避免死亡率变化百分之几。这类似需求的价格弹性。若目标是把可避免死亡率降低 20%,就必须知道这个弹性才能算出要增加多少支出。这里有两大挑战:

  • 可观测异质性(observable heterogeneity):人均收入既影响死亡率,又与医疗支出相关,可以用多元回归控制;
  • 不可观测异质性(unobservable heterogeneity):会导致双向因果。医疗降低死亡率,但医疗支出也可能是对推高死亡率的未观测冲击(例如小规模自然灾害)的反应。这种联立因果(simultaneous causality)要用工具变量处理(本册第 12 章,以香烟需求弹性为例)。

问题 4:美国 GDP 明年增长多少? 这是预测问题。本书用过去的 GDP 增长和期限利差(term spread,长期利率减短期利率)来预测。期限利差反映投资者对未来短期利率的预期,通常为正,但在衰退前往往急剧下降。基于期限利差的预测在本册第 15a 章构建和评估。

这四个问题有一个共同点:理论只能给方向(例如香烟价格上升,消费应当下降),数值必须从数据中得到。换一组数据会得到不同的数值,所以答案总带有不确定性。计量分析必须同时给出数值答案和它的精度。本书的主要框架是多元回归模型(multiple regression model):在「保持其他因素不变」(holding constant / controlling for)的条件下,量化一个变量变化对另一个变量的影响,并量化这个估计的不确定性。

1.3 因果效应与理想化实验

1.3.1 用实验定义因果

日常语言里,若结果是某个行动的直接后果,我们就说这个行动「导致」了结果:摸热炉子会被烫,给番茄施肥会增产。

如何测量每平方米施 100 克肥料对番茄产量的因果效应?可以这样做实验:种很多块地,除了是否施肥之外完全相同地照料;是否施肥由计算机随机决定;季末比较施肥地块与未施肥地块的单位面积平均产量。这就是随机对照实验(randomized controlled experiment):

  • 「对照」指同时存在不接受处理的对照组(control group)和接受处理的处理组(treatment group);
  • 「随机」指处理是随机分配的。随机分配消除了处理与其他因素(例如日照)之间的任何系统关系,使两组之间唯一的系统差异就是处理本身。

由此,本书给出因果效应的定义:

因果效应(causal effect)是在理想随机对照实验中测得的、某个行动或处理对结果的效应。在这种实验中,处理组与对照组结果差异的唯一系统原因是处理本身。

现实中的实验经常不可行:不道德、无法令人满意地执行、太耗时或太贵。但理想实验这个概念仍然重要,因为它定义了我们想估计的东西。后面每当讨论「OLS 能不能估计因果效应」,都要回到一个问题:我手里的数据离理想实验有多远?

白话解释:随机分配为什么这么有力?因为它保证「谁被处理」和其他所有因素(看得见的、看不见的)无关。于是处理组和对照组在平均意义上除了处理本身完全一样,两组平均结果之差就只能归因于处理。 用后面会用到的语言说:若处理 \(X\) 随机分配,则误差项 \(u\)(其他所有因素的合计)与 \(X\) 独立,从而 \(E(u\mid X)=0\)(\(E(\cdot\mid X)\) 读作「给定 \(X\) 时的条件期望」,即只看 \(X\) 取某个值的那部分样本时的平均)。第 4 章会看到,\(E(u\mid X)=0\) 正是 OLS 估计因果效应时最关键的假设。理想实验就是让这条假设自动成立的设计。

金融直觉:可以类比审计中的抽样。审计师随机抽取凭证,是为了让样本和总体在所有特征上「平均一致」,从而可以把样本结论推到总体。如果让业务部门自己挑凭证给你看,样本就会有系统偏差。随机对照实验里的随机分配,作用相同:排除「挑选」带来的系统差异。

1.3.2 预测、预报与因果

第四个问题不涉及因果。

  • 预测(prediction):用一些变量的信息对另一个变量的值作出陈述;
  • 预报(forecast):对未来值的预测,是预测的特例。

好的预测不需要因果关系。看街上行人是否打伞可以很好地「预测」是否在下雨,但打伞不会导致下雨。预测变量少、数据不随时间演化时,多元回归就能给出可靠的预测;候选预测变量很多时可以改进(本册第 14 章的 ridge、lasso、主成分)。预报使用随时间演化的数据,带来新挑战:关系是否随时间稳定?预测精度如何评估?这些在本册第 15a、15b 章讨论。

这一区分会贯穿全书。第 4 章引入回归时会看到,两类问题对数据的要求不同:因果推断要求「处理」随机或仿佛随机地分配;预测只要求用来估计的数据与要预测的对象来自同一个总体。

1.4 数据:来源与类型

1.4.1 实验数据与观测数据

实验数据(experimental data)来自专门为评估处理或研究因果效应而设计的实验。例如 1980 年代田纳西州资助的大规模班级规模随机实验(Project STAR,本册第 13 章):数千名学生被随机分到不同规模的班级,持续数年,每年参加标准化考试。这个实验花费数百万美元,需要多方长期配合。涉及人的实验难以完全控制,有时还不道德(随机给青少年便宜香烟,看他们买多少?)。所以经济学里实验相对少见。

观测数据(observational data)来自对实验之外实际行为的观察,通过调查(如电话消费者调查)和行政记录(如贷款机构的申请记录)收集。观测数据中,「处理」水平不是随机分配的,很难把处理效应与其他因素分开。计量经济学的大部分内容,就是在应对这一挑战。

1.4.2 三种数据结构

横截面数据(cross-sectional data):多个实体在同一时期的数据,实体数记为 \(n\)。例:1999 年加州 420 个学区(\(n=420\))。原书 Table 1.1 摘录:

学区 平均成绩 师生比 生均支出(美元) 英语学习者占比
1 690.8 17.89 6385 0%
2 661.2 21.52 5099 4.6%
… … … … …
420 655.8 19.04 5993 5.0%

行的顺序是任意的,学区编号称为观测编号(observation number)。横截面数据通过比较同一时期不同实体之间的差异来了解变量关系。

时间序列数据(time series data):单一实体在多个时期的数据,时期数记为 \(T\)。例:美国 GDP 增长率与期限利差的季度数据,1960:Q1–2017:Q4,\(T=232\)。1960:Q1 的 GDP 年化增长率为 8.8%(若按该季度速度持续增长四个季度,GDP 将增长 8.8%),期限利差 0.6 个百分点(长期利率 4.5% 减短期利率 3.9%);2017:Q4 分别为 2.5% 和 1.2。时间序列用于研究变量随时间的演化并预测未来值。

面板数据(panel data,又称纵向数据 longitudinal data):多个实体、每个实体在两个或更多时期被观测。例:美国本土 48 州 1985–1995 年的香烟消费,\(n=48\),\(T=11\),共 \(n\times T=528\) 个观测。1985 年阿拉巴马人均销量 116.5 包、含税均价 1.022 美元、总税 0.333 美元。面板数据既利用众多实体之间的差异,又利用每个实体随时间的变化(本册第 10 章)。

Key Concept 1.1 数据类型

  • 横截面数据:多个实体,单一时期。
  • 时间序列数据:单一实体,多个时期。
  • 面板数据:多个实体,每个实体两个以上时期。

量化实战

数据结构在量化研究中的对应

量化研究里三种结构随处可见,而且选哪种结构决定了能用哪类方法:

量化数据 结构 典型方法
某只股票的日收益序列 时间序列 单资产 beta 回归、ARMA/GARCH(第 06 册)
某一天全市场股票的因子暴露与次日收益 横截面 截面回归、IC 计算、因子中性化
多只股票、多期的因子与收益 面板 Fama-MacBeth 两步回归、面板固定效应、风险模型估计
宏观变量(期限利差、信用利差)季度序列 时间序列 宏观择时、资产配置信号

期限利差预测衰退这个例子本身就是经典的宏观择时信号,在资产配置层面常作为宏观因子使用。

预测与因果:量化里各管什么

alpha 因子研究本质上是预测问题。 你不需要因子「导致」收益,只需要它在样本外持续有预测力。附录意义上的要求是:用来训练的样本与将来应用的样本来自同一总体。市场制度变化、风格切换、结构突变都会破坏这一前提,这正是回测好、实盘衰减的主要原因。

白话解释:上一段「附录意义上的要求」措辞不太通顺,按上下文应理解为「统计意义上的要求」:训练样本与应用样本来自同一总体(同一个分布)。这相当于说,你用来估计参数的「过去」和你要下注的「未来」必须是同一个数据生成机制。

交易成本、市场冲击、政策事件是因果问题。 你下单 1 亿元会让价格移动多少?这个「干预效应」不能靠观测数据里成交量与价格变化的相关性直接读出,因为大单往往在信息冲击时出现,二者都受同一个未观测因素驱动。可信的做法接近随机实验:例如在执行算法中随机化下单时点或拆单方式,再比较平均滑点。

打伞预测下雨的例子在量化里有一个危险的版本:如果一个信号与收益的关系完全来自共同驱动因素,那么用它预测没问题,但当你的大规模交易本身开始推动这个信号(例如拥挤交易推高某类股票的动量),原来的关系可能失效。下面的模拟展示这一点。

import numpy as np
import pandas as pd

rng = np.random.default_rng(0)

# ---- 1. 三种数据结构:同一份模拟数据的三种切法 ----
dates = pd.bdate_range("2024-01-01", periods=250)
tickers = [f"S{i:03d}" for i in range(200)]
idx = pd.MultiIndex.from_product([dates, tickers], names=["date", "ticker"])
panel = pd.DataFrame({
    "mom": rng.standard_normal(len(idx)),            # 某个因子暴露
    "ret": rng.standard_normal(len(idx)) * 0.02,     # 次日收益
}, index=idx)
print("面板数据形状 (n*T, k):", panel.shape)
cross_section = panel.xs(dates[100], level="date")     # 横截面:一天、所有股票
time_series = panel.xs("S007", level="ticker")          # 时间序列:一只股票、所有日期
print("横截面 n =", len(cross_section), ";时间序列 T =", len(time_series))

# ---- 2. 预测 vs 因果:「打伞预测下雨」的量化版本 ----
# 隐藏变量 Z(如宏观情绪)同时推高信号 S 与未来收益 R;S 本身对 R 没有因果作用
T = 5000
Z = rng.standard_normal(T)
S = Z + 0.5 * rng.standard_normal(T)          # 观测到的信号
R = 0.3 * Z + rng.standard_normal(T)          # 收益只由 Z 决定
b_obs = np.cov(S, R)[0, 1] / np.var(S, ddof=1)
print(f"观测数据中 R 对 S 的回归斜率: {b_obs:.3f}  (可以用来预测)")

# 「干预」:随机设定 S(例如我们自己去推高信号),切断与 Z 的联系
S_do = rng.standard_normal(T)
R_do = 0.3 * Z + rng.standard_normal(T)
b_do = np.cov(S_do, R_do)[0, 1] / np.var(S_do, ddof=1)
print(f"随机设定 S 后的斜率: {b_do:.3f}  (真实因果效应为 0)")

关键输出:

面板数据形状 (n*T, k): (50000, 2)
横截面 n = 200 ;时间序列 T = 250
观测数据中 R 对 S 的回归斜率: 0.248  (可以用来预测)
随机设定 S 后的斜率: -0.006  (真实因果效应为 0)

观测数据中的斜率接近理论值 \(\operatorname{cov}(S,R)/\operatorname{var}(S)=0.3/1.25=0.24\),信号确实有预测力;一旦 \(S\) 被「随机设定」(相当于理想实验),斜率归零,说明 \(S\) 对 \(R\) 没有因果作用。两个数字都没错,它们回答的是不同问题。

推导拆解:0.24 这个理论值是怎么来的?

  1. 斜率 \(=\operatorname{cov}(S,R)/\operatorname{var}(S)\),这是单变量回归斜率的总体版本(第 4 章推导)。
  2. \(\operatorname{var}(S)=\operatorname{var}(Z)+0.5^2\operatorname{var}(\text{噪声})=1+0.25=1.25\)。这里用了「独立变量之和的方差等于方差之和」,常数系数平方后提出来。
  3. \(\operatorname{cov}(S,R)=\operatorname{cov}(Z+0.5e_1,\ 0.3Z+e_2)=0.3\operatorname{var}(Z)=0.3\)。协方差对每个参数都是线性的,可以逐项展开;\(Z,e_1,e_2\) 两两独立,交叉项协方差为 0,只剩 \(Z\) 与自己的那一项。
  4. 相除得 \(0.3/1.25=0.24\)。 随机设定后 \(S\) 与 \(Z\) 无关,第 3 步里没有任何非零项,协方差为 0,斜率自然为 0。练习 7 的答案 \(0.2+0.3/1.25=0.44\) 用的是同样的展开:多出来的 \(0.2S\) 一项贡献 \(0.2\operatorname{var}(S)/\operatorname{var}(S)=0.2\)。

本章小结

计量经济学用经济理论和统计技术分析数据,回答两类问题:一个变量变化对另一个变量的因果效应有多大,以及如何用已知变量预测未知变量。因果效应以理想随机对照实验来定义,随机分配保证处理组与对照组之间唯一的系统差异是处理本身;经济数据大多是观测数据,处理并非随机分配,可观测与不可观测的异质性、双向因果都会干扰因果推断,这是本册大部分方法要解决的问题。预测则不需要因果解释,但要求估计数据与预测对象来自同一总体。数据有横截面、时间序列、面板三种结构,对应不同的方法。所有数值答案都必须附带精度度量。

概念 要点
计量经济学 运用经济理论和统计技术分析经济数据
因果效应 理想随机对照实验中测得的处理效应
随机对照实验 处理组 + 对照组,处理随机分配
预测 / 预报 用已知变量推断未知值;预报是对未来值的预测;不需要因果
实验数据 / 观测数据 处理是否由研究者随机分配
横截面 \(n\) 个实体,1 个时期
时间序列 1 个实体,\(T\) 个时期
面板 \(n\) 个实体,\(T\) 个时期,共 \(nT\) 个观测

练习

基础

  1. 指出下列数据的类型:(a) 2024 年 6 月 28 日沪深 300 成分股的市值与市盈率;(b) 2010–2024 年人民币兑美元每日收盘汇率;(c) 2015–2024 年每月全部 A 股的换手率与月收益。 提示:(a) 横截面,(b) 时间序列,(c) 面板。
  2. 为什么「看行人打伞预测下雨」是好的预测,却不是因果关系?请再举一个金融里的例子。 提示:两者有共同原因;金融例子如分析师上调评级与随后的股价上涨,可能都源于同一条公司新闻。
  3. 波士顿联储数据中黑人与白人申请者的拒贷率分别为 28% 和 9%。为什么这个差距本身不能证明歧视? 提示:两组在收入、负债、信用等方面不同,需要比较「其他条件相同」的申请者。

进阶

  1. 设计一个理想随机实验,估计「在开盘后 30 分钟内执行大单」相对于「全天 TWAP 执行」对执行成本的因果效应。实施中会遇到哪些障碍? 提示:对每笔母单用随机数决定执行方式,比较两组平均实施差额(implementation shortfall);障碍包括交易员不依从、订单特征不平衡、样本量需求大。
  2. 研究员工培训时长(每人每周小时)对生产率(每人每小时产出)的因果效应。分别说明:理想随机实验、观测横截面数据、观测时间序列数据、观测面板数据下应如何设计研究。(原书复习题 1.3) 提示:横截面比较不同企业;时间序列跟踪一家企业多年;面板跟踪多家企业多年,可以控制不随时间变化的企业特征。
  3. 某因子在 2010–2018 年回测中年化 IC 显著为正,2019 年后失效。从「预测要求同一总体」的角度给出两种可能解释。 提示:市场结构变化(如注册制、量化资金规模扩张)改变了总体分布;因子被广泛使用后被套利掉。
  4. 用本章模拟代码,把 \(R\) 改为 0.3*Z + 0.2*S + 噪声,此时观测斜率和随机设定后的斜率分别约为多少? 提示:随机设定后约为 0.2(真实因果效应);观测斜率约为 \(0.2+0.3/1.25=0.44\)。

原书推荐习题:复习题 1.1、1.2(随机实验的实施障碍)、1.3(同一问题映射到四种数据设计)。


原书对照

本章内容 原书章节 PDF 页码
前言(本书定位、大样本/随机抽样/异方差三条默认设定、课程方案) Preface p.28–42
计量经济学的定义 第 1 章开篇 p.44
四个定量问题 1.1 p.44–48
因果效应与理想化实验;预测与预报 1.2 p.48–50
数据来源与类型(Key Concept 1.1) 1.3 p.50–54
小结、关键术语、复习题 第 1 章末 p.54–55

注:原书页码 = PDF 页码 − 1。