11 成交量谱模型详解
1.1 模型设定与谱表示
📜 [原文1]
令 $V_{t}, t=1,2, \ldots, T$ 表示以金额成交量、成交股数或成交笔数计的日内成交量时间序列。我们假设 $V_{t}$ 具有以下谱表示:
$$
\begin{equation*}
V_{t}:=m_{t}+X_{t}=m_{t}+\sum_{j=1}^{n} a_{j} \cos \left(\lambda_{j} t\right)+\varepsilon_{t}, \quad 0<\lambda_{1}<\cdots<\lambda_{j}<\cdots<\lambda_{n}<\pi \tag{1}
\end{equation*}
$$
其中 $m_{t}$ 是非随机趋势项,$X_{t}$ 是去趋势过程。$X_{t}$ 被进一步分解为 $n$ 个周期项,其中每个项 $\cos \left(\lambda_{j} t\right)$ 对应于一个特定的频率,而 $a_{j}$ 是第 $j$ 个周期项的系数,对于 $j=1, \ldots, n$。最后,$\varepsilon_{t}$ 是一个白噪声过程。
📖 [逐步解释]
这段话是整篇论文的基石,它提出了一个数学模型来描述和解构日内成交量的动态变化。让我们从头开始,一步步理解。
- 研究对象: 我们的研究对象是“日内成交量时间序列”,用 $V_t$ 表示。
- “日内” (Intraday) 指的是在一个交易日内部。比如从早上9:30开盘到下午3:00收盘。
- “成交量” (Volume) 可以是不同的度量,比如成交的股票总金额(金额成交量)、成交的总股数(成交股数)或者发生交易的次数(成交笔数)。
- “时间序列” (Time Series) 是指我们按照固定的时间间隔来记录成交量的数值。例如,每3秒钟记录一次成交量。$t$ 就是时间的标记,从第一个时间点 $t=1$ 一直记录到最后一个时间点 $t=T$。所以,$V_1, V_2, \dots, V_T$ 就是一个长长的数字序列,代表了一天内成交量随时间的变化。
- 核心思想:分解: 论文的核心思想是,任何看起来复杂的成交量变化曲线 ($V_t$),都可以被拆解成三个更简单的组成部分:一个平滑的趋势,若干个规律的周期性波动,以及一些随机的噪声。这就像把一道复杂的菜肴的味道分解成咸味、甜味、酸味等基本味道一样。
- 模型的三个组成部分:
- 趋势项 ($m_t$): 这部分代表了成交量在一个交易日内总体的、缓慢变化的趋势。最著名的就是“U型”趋势:早上刚开盘和下午快收盘的时候成交量巨大,而中午交易比较平淡。这个 $m_t$ 就是用来捕捉这种大的、可预测的形状。它被假设为“非随机”的,意味着它更多地反映了交易者群体的确定性行为模式。
- 周期项 ($\sum_{j=1}^{n} a_{j} \cos \left(\lambda_{j} t\right)$): 这是模型最有趣的部分。它假设在大的趋势之上,还叠加了很多有规律的、重复出现的周期性波动。
- 想象一下,除了开盘和收盘的大量交易,可能每隔5分钟、10分钟、30分钟,市场上都会出现一些小的交易高峰。这些就是周期性的。
- 模型用一系列的余弦函数 ($\cos$) 来捕捉这些周期。每一个余弦函数 $\cos(\lambda_j t)$ 都代表一种特定频率的波动。
- $\lambda_j$ 是频率,决定了波动有多快。$\lambda$ 越大,波动越快(周期越短)。
- $a_j$ 是振幅或者说强度系数,决定了这个频率的波动有多强。$a_j$ 的绝对值越大,这个周期性就越显著。
- $\sum$ 符号表示我们将 $n$ 个不同频率、不同强度的周期性波动全部加起来,共同构成了成交量的复杂波动部分。
- 噪声项 ($\varepsilon_t$): 也叫扰动项或残差项。它代表了那些无法被趋势和周期解释的、完全随机的、不可预测的成交量变化。比如某个投资者突然下了一个大单,或者某个新闻事件引发的短暂交易,这些都属于噪声。模型假设它是“白噪声”,意味着这些噪声是独立的,没有规律可循。
- 去趋势过程 ($X_t$): 论文将周期项和噪声项合在一起,称为“去趋势过程” $X_t$。也就是说,$X_t = V_t - m_t$。如果我们从原始的成交量数据中把那个大的U型趋势给减掉,剩下的部分就是 $X_t$,它包含了所有有趣的周期性波动和随机噪声。
💡 [数值示例]
示例1:一个极简的成交量序列
假设我们有一个非常短的时间序列,只有 $T=4$ 个时间点。模型也极其简单,只有一个周期项 ($n=1$)。
- 趋势项: 设为一个常数,$m_t = 100$ 股(表示平均成交量水平是100股)。
- 周期项: 设 $n=1$, $a_1=20$, $\lambda_1 = \pi/2$。
- 这个频率 $\lambda_1=\pi/2$ 对应的周期是 $P_1 = 2\pi / (\pi/2) = 4$ 个时间单位。也就是说,每4个时间点,这个波动会完整重复一次。
- 噪声项: 为了清晰,我们先假设没有噪声,即 $\varepsilon_t=0$ for all $t$。
现在我们来计算每个时间点的成交量 $V_t$:
- $t=1$: $V_1 = m_1 + a_1 \cos(\lambda_1 \cdot 1) + \varepsilon_1 = 100 + 20 \cos(\pi/2 \cdot 1) + 0 = 100 + 20 \cdot 0 = 100$ 股。
- $t=2$: $V_2 = m_2 + a_1 \cos(\lambda_1 \cdot 2) + \varepsilon_2 = 100 + 20 \cos(\pi/2 \cdot 2) + 0 = 100 + 20 \cos(\pi) = 100 + 20 \cdot (-1) = 80$ 股。
- $t=3$: $V_3 = m_3 + a_1 \cos(\lambda_1 \cdot 3) + \varepsilon_3 = 100 + 20 \cos(\pi/2 \cdot 3) + 0 = 100 + 20 \cdot 0 = 100$ 股。
- $t=4$: $V_4 = m_4 + a_1 \cos(\lambda_1 \cdot 4) + \varepsilon_4 = 100 + 20 \cos(\pi/2 \cdot 4) + 0 = 100 + 20 \cos(2\pi) = 100 + 20 \cdot 1 = 120$ 股。
我们的成交量时间序列就是:$\{100, 80, 100, 120\}$。这个序列的均值是100,并且围绕这个均值以振幅20、周期为4进行波动。
示例2:加入噪声和更复杂的趋势
现在让模型更真实一点。设 $T=4$, $n=1$。
- 趋势项: 设为一个线性趋势,$m_t = 100 + 2t$。这表示成交量在缓慢增长。
- $m_1=102, m_2=104, m_3=106, m_4=108$。
- 周期项: 保持不变,$a_1=20, \lambda_1 = \pi/2$。
- 噪声项: 假设我们观测到一组随机噪声:$\varepsilon_1 = 3, \varepsilon_2 = -5, \varepsilon_3 = 1, \varepsilon_4 = -2$。
计算新的成交量 $V_t$:
- $t=1$: $V_1 = (100+2) + 20 \cos(\pi/2) + 3 = 102 + 0 + 3 = 105$ 股。
- $t=2$: $V_2 = (100+4) + 20 \cos(\pi) - 5 = 104 - 20 - 5 = 79$ 股。
- $t=3$: $V_3 = (100+6) + 20 \cos(3\pi/2) + 1 = 106 + 0 + 1 = 107$ 股。
- $t=4$: $V_4 = (100+8) + 20 \cos(2\pi) - 2 = 108 + 20 - 2 = 126$ 股。
现在的成交量时间序列是 $\{105, 79, 107, 126\}$。它看起来更不规则,因为它同时包含了上升趋势、周期性波动和随机噪声。这更接近我们真实世界中观察到的数据。这篇论文的目标,就是从这样一个复杂的序列中,反向推断出 $m_t$, $a_j$ 和 $\lambda_j$ 是什么。
⚠️ [易错点]
- 模型设定的普适性: 这个模型是一个近似。真实世界的成交量不一定“正好”是这些成分的简单线性相加。例如,波动的振幅 $a_j$ 本身可能随时间变化(即随机波动率),但在这个模型中被假设为常数。
- 正弦 vs 余弦: 使用余弦(cos)还是正弦(sin)其实没有本质区别,因为 $\sin(x) = \cos(x - \pi/2)$。一个带有相移的余弦波和一个正弦波是等价的。包含余弦和正弦项的完整傅里叶级数可以表达任意形状的周期,但这里为了简化,只用了余弦项,这隐含地假设了周期在 $t=0$ 时刻处于峰值(或谷值),没有相位移。在实践中,这通常足够好了。
- 频率 $\lambda_j$ 的选择: 约束 $0 < \lambda_j < \pi$ 是针对离散时间的。$\lambda=0$ 对应直流分量(均值或趋势),已经被 $m_t$ 捕捉。$\lambda=\pi$ 对应最高频率,即成交量在每个相邻时间点之间来回反转符号(例如 1, -1, 1, -1...)。超过 $\pi$ 的频率在离散采样下会发生“混叠”,看起来和 $\pi$ 以内的某个频率一样,所以没有必要考虑。
- $n$ 的选择: $n$(周期个数)的选择很关键。如果 $n$太小,模型可能无法捕捉到所有重要的周期,导致模型欠拟合。如果 $n$ 太大,模型可能把一些随机噪声也当成了周期,导致过拟合,估计结果不稳定。
📝 [总结]
本节提出了一个核心的数学模型(公式1),将复杂的日内成交量时间序列 ($V_t$) 分解为三个可理解的部分:一个代表宏观行为模式的非随机趋势项 ($m_t$),一个由多个不同频率的余弦波叠加而成、代表各种规律性波动的周期部分 ($\sum a_j \cos(\lambda_j t)$),以及一个代表无法预测的随机事件的白噪声项 ($\varepsilon_t$)。
🎯 [存在目的]
本节的目的是为后续的所有分析提供一个统一的理论框架和数学语言。通过建立这个模型,作者将一个模糊的“寻找成交量规律”的问题,转化为了一个精确的统计估计问题:如何从观测到的成交量数据 $V_t$ 中,估计出未知的趋势 $m_t$、各个周期的强度 $a_j$ 和频率 $\lambda_j$。这个公式是连接金融现象和数学工具的桥梁。
🧠 [直觉心智模型]
想象你在听一首交响乐。你听到的声音 ($V_t$) 是复杂而丰富的。这个模型就像一位专业的音乐分析师告诉你:
- 这首交响乐有一个主旋律,时而高亢,时而低沉,但整体上有一个发展的脉络。这就是趋势项 $m_t$。
- 同时,有很多乐器在演奏各自的声部。小提琴在拉一个快速的、重复的片段;大提琴在演奏一个缓慢而稳定的周期性旋律;长笛在吹奏一个中速的装饰音。这些就是不同频率 ($\lambda_j$) 和不同音量 ($a_j$) 的周期项 $\cos(\lambda_j t)$。
- 在演奏过程中,偶尔会听到一些细微的杂音,比如观众的咳嗽声、乐手不小心碰倒谱架的声音。这些就是噪声项 $\varepsilon_t$。
你听到的总声音,就是主旋律、所有乐器的声音和杂音的叠加。这个模型就是要从复杂的总声音中,分辨出各个组成部分。
💭 [直观想象]
想象一条蜿蜒起伏的海岸线,这是我们观测到的成交量数据 $V_t$。
- 趋势项 $m_t$: 就像是潮汐的长期影响。每天有两次涨潮和两次退潮,这形成了一个大的、平滑的“U”型或“W”型轮廓。这是海岸线的大体形状。
- 周期项 $\sum a_j \cos(\lambda_j t)$: 就像是拍打在岸边的海浪。有大的、间隔很久的巨浪(低频,$\lambda$小,$a$大),也有一波接一波的、间隔很短的小浪花(高频,$\lambda$大,$a$小)。所有这些不同大小和速度的波浪叠加在一起,使得海岸线在潮汐的大轮廓上呈现出复杂的锯齿状。
- 噪声项 $\varepsilon_t$: 就像是偶尔有一条鱼跳出水面,或者一只海鸟掠过水面,在某一个瞬间改变了水面的形状。这些是瞬时的、不可预测的、微小的扰动。
我们看到的海岸线 $V_t$ = 潮汐轮廓 $m_t$ + 所有海浪的叠加 $\sum a_j \cos(\lambda_j t)$ + 随机的水花 $\varepsilon_t$。
1.2 模型的技术假设
📜 [原文2]
我们做出以下技术假设:
假设 1。趋势项 $m_{t}$ 是一致有界的,即存在一个常数 $M$ 使得 $\left|m_{t}\right|<M, \forall t$。
假设 2。趋势项 $m_{t}$ 不包含任何已被周期项 $\cos \left(\lambda_{j} t\right)$ 捕捉到的周期分量,即 $\lim _{T \rightarrow \infty} \frac{1}{T} \sum_{t=1}^{T} m_{t} \cos \left(\lambda_{j} t\right)=0, j=1, \ldots, n$。
假设 3。白噪声 $\varepsilon_{t}$ 是独立同分布的,且随时间的均值为 0,方差为 $\sigma^{2}$。
假设 2 要求 (1) 中的项 $\cos \left(\lambda_{j} t\right)$ 充分捕捉了这些频率下的所有周期模式。因此,趋势项 $m_{t}$ 与 $\cos \left(\lambda_{j} t\right)$ 是正交的。
📖 [逐步解释]
任何数学模型都需要一些假设来保证其理论上的合理性和可解性。这些假设为模型的建立和后续的推导提供了必要的数学约束。
- 假设 1: 这个假设说趋势项 $m_t$ 不会增长到无穷大或跌到负无穷。它始终被限制在一个有限的范围内(由常数 $M$ 限定)。
- 为什么需要这个假设? 在金融实践中,一个交易日内的成交量不可能是无限的,它总会有一个上限。这个假设保证了模型的数学性质良好,防止出现一些理论上的极端情况,使得后续的数学运算(如求和、求极限)能够正常进行。它是一个非常合理且符合实际的技术性假设。
- 假设 2: 这是三个假设中最核心、最具洞察力的一个。它说趋势项 $m_t$ 和所有的周期项 $\cos(\lambda_j t)$ 是“正交”的。
- 什么是“正交”? 在几何上,两条线正交意味着它们互相垂直。在信号处理和时间序列分析中,两个序列正交意味着它们在长期来看没有相关性,它们的内积(这里用长期平均的乘积来表示)为0。
- 这个假设的含义是:我们已经把特定频率 $\lambda_j$ 的周期性完全地、干净地分离出来,放进了周期项 $a_j \cos(\lambda_j t)$ 中。剩下的趋势项 $m_t$ 里,不应该再含有任何与这些 $\lambda_j$ 频率相关的周期性成分了。
- 打个比方: 如果我们正在把一篮子水果分类,假设 2 就好比说:“苹果”这个类别(对应周期项)已经把所有的苹果都拿走了,那么在“其他水果”这个篮子(对应趋势项 $m_t$)里,就不应该再找到苹果了。这保证了模型分解的唯一性和清晰性,避免了“一个周期模式既被算作趋势又被算作周期”的混淆。
- 假设 3: 这是关于噪声项 $\varepsilon_t$ 的标准统计假设。
- 独立同分布 (i.i.d.):
- “独立”意味着今天的噪声和昨天的噪声没有任何关系。一个随机扰动发生了,并不会增加或减少下一个随机扰动发生的概率。
- “同分布”意味着所有这些噪声都来自同一个“噪声生成器”,它们有相同的统计特性,比如相同的概率分布。
- 均值为0: 噪声在长期来看是平均为零的。有时是正的扰动(成交量意外增加),有时是负的扰动(成交量意外减少),但平均下来它们相互抵消。这保证了噪声不会系统性地推高或拉低成交量的整体水平。
- 方差为 $\sigma^2$: 方差衡量了噪声的波动幅度。$\sigma^2$ 是一个常数,意味着噪声的波动剧烈程度是稳定的,不会随时间变化。这被称为“同方差性”。
💡 [数值示例]
示例1:验证假设2 (正交性)
让我们构建一个满足假设2的趋势项和一个周期项。
- 设周期项为 $\cos(\pi t)$,其频率 $\lambda = \pi$。这个序列在 $t=1,2,3,4$ 上的值是 $\{-1, 1, -1, 1\}$。
- 设趋势项 $m_t$ 为一个简单的线性趋势 $m_t = t$。在 $t=1,2,3,4$ 上的值是 $\{1, 2, 3, 4\}$。
我们来计算它们的“内积”(这里用有限样本的和来近似):
$\sum_{t=1}^{4} m_{t} \cos (\pi t) = (1 \times -1) + (2 \times 1) + (3 \times -1) + (4 \times 1) = -1 + 2 - 3 + 4 = 2$。
平均值为 $2/4=0.5$。这在有限样本下不为0。
但是,让我们看看一个更符合“趋势”定义的 $m_t$。一个好的去趋势方法(比如移动平均)通常会产生一个非常平滑的 $m_t$。假设 $m_t$ 是一个常数 $m_t = C$。
$\frac{1}{T} \sum_{t=1}^{T} C \cos(\lambda_j t) = C \cdot \frac{1}{T} \sum_{t=1}^{T} \cos(\lambda_j t)$。
当 $T \to \infty$ 且 $\lambda_j \neq 0$ 时,一个完整的余弦函数在很多个周期上的平均值趋近于0。因此,常数趋势是与周期项正交的。
再看一个更复杂的趋势,比如 $m_t$ 是一个U型。假设它在对称的区间上是偶函数。而 $\cos(\lambda_j t)$ 也是偶函数。那么它们的乘积也是偶函数。这并不能保证积分为0。
这个假设的关键在于,我们在估计 $m_t$ 时,所用的方法(比如移动平均)会自动地“滤掉”高频的波动。因此,估计出的 $\hat{m}_t$ 天然地与高频的 $\cos(\lambda_j t)$ 近似正交。这是一个理论上的要求,指导我们选择合适的趋势估计方法。
示例2:理解假设3 (白噪声)
想象我们有一枚公平的硬币,我们连续抛掷它。
- 正面记为 +1,反面记为 -1。这个序列就是我们的 $\varepsilon_t$。
- 独立: 每次抛硬币的结果都与上一次无关。
- 同分布: 每次抛硬币,出现正面和反面的概率都是1/2。
- 均值为0: $E[\varepsilon_t] = (+1) \times 0.5 + (-1) \times 0.5 = 0$。
- 方差为常数: $Var(\varepsilon_t) = E[\varepsilon_t^2] - (E[\varepsilon_t])^2 = ((+1)^2 \times 0.5 + (-1)^2 \times 0.5) - 0^2 = 1$。
这就是一个典型的白噪声过程。它代表了纯粹的、不可预测的随机性。
⚠️ [易错点]
- 假设的检验: 在实际应用中,这些假设是否成立需要被检验。例如,在估计出模型后,我们可以对残差项 $\hat{\varepsilon}_t$ 进行检验,看它是否真的像白噪声(例如,使用Ljung-Box检验来检查其自相关性)。如果残差中仍有明显的周期或趋势,说明我们的模型(比如 $n$ 的选择或 $m_t$ 的估计方法)不充分。
- 异方差性: 假设3中的“方差为常数 $\sigma^2$”是一个很强的假设。在金融市场中,波动性(即方差)常常是聚集的:大的波动之后倾向于跟随大的波动,小的波动之后倾向于跟随小的波动。这被称为异方差性(ARCH或GARCH效应)。这个模型为了简化,忽略了这一点。这意味着该模型主要关注成交量的均值结构,而不是其波动结构。
- 正交性的实现: 假设2的正交性在理论上是清晰的,但在有限的样本和实际的估计中,只能做到近似正交。我们后面会看到,通过移动平均法来估计趋势,实际上是一种低通滤波器,它会移除高频成分,从而使得估计出的趋势与高频的周期项近似正交。
📝 [总结]
这三个技术假设为模型的数学处理铺平了道路。假设1保证了模型的稳定性;假设2通过正交性确保了趋势和周期的干净分离,使模型各部分的解释变得清晰;假设3对噪声项做了标准化的统计设定(独立、同分布、零均值、恒定方差),使得统计推断成为可能。
🎯 [存在目的]
这些假设是数学模型与现实世界之间的“契约”。它们简化了现实,使得强大的数学工具可以被用来分析问题。没有这些假设,后续的定理证明和参数估计将变得极其困难甚至不可能。它们是进行严谨的谱分析所必需的理论前提。
🧠 [直觉心智模型]
回到交响乐的比喻:
- 假设 1 (有界): 音乐的音量不会大到震破耳膜,也不会小到完全听不见。它总在一个合理的范围内。
- 假设 2 (正交): 我们分辨出的主旋律 ($m_t$),不应该再包含小提琴的特定重复片段 ($\cos(\lambda_j t)$)。如果主旋律里还能听出小提琴的调子,说明我们的分辨工作没做好,主旋律和乐器声部混在一起了。
- 假设 3 (白噪声): 观众的咳嗽声 ($\varepsilon_t$) 是随机发生的,这次咳嗽和下次咳嗽没关系(独立),咳嗽的响度分布也差不多(同分布),平均来看不会让音乐变得更响或更轻(零均值),也不会越来越响或越来越轻(恒定方差)。
💭 [直观想象]
回到海岸线的比喻:
- 假设 1 (有界): 潮汐再高也不会淹没整个大陆,再低也不会让海床完全干涸。海平面总是在一个有限的高度区间内变化。
- 假设 2 (正交): 我们画出的潮汐大轮廓 ($m_t$) 应该是平滑的,不应该本身就包含快速的、小规模的波浪起伏。所有波浪 ($\cos(\lambda_j t)$) 都应该被视为叠加在潮汐轮廓之上的独立现象。
- 假设 3 (白噪声): 随机跳出水面的鱼 ($\varepsilon_t$) 是独立事件,每次跳起的高度和力度都服从同一个随机规律,它们只是在海浪线上增加了一些不可预测的、平均为零的小水花。
1.3 模型各组成部分的解释
📜 [原文3]
等式 (1) 将成交量时间序列表示为三个部分的线性组合。第一个趋势项捕捉了众所周知的日内 U 型(或 W 型)成交量。第二部分包含 $n$ 个具有余弦基函数的周期项,它们代表了我们在第 2 节中观察到的、由不同频率驱动的周期性波动。它们的系数 $a_{j}$ 代表了相应频率的强度。$a_{j}$ 的绝对值越高,代表第 $j$ 个分量的周期性越强。最后一部分是一个特异性噪声项。
📖 [逐步解释]
这段话是对公式(1)的文字性总结和重申,强调了每个部分的金融学含义。
- 线性组合: 模型是“线性的”,因为总成交量 $V_t$ 是三个部分直接相加得到的。这是一种最简单、最直接的组合方式。如果模型是非线性的(例如,$V_t = m_t \times (\sum a_j \cos(\lambda_j t)) + \varepsilon_t$),分析会复杂得多。
- 第一部分:趋势项 ($m_t$):
- 这里明确指出了 $m_t$ 的实际形态:U型 或 W型。
- U型: 在美国等西方市场常见。开盘时(上午)交易活跃,大量信息被消化,成交量高;盘中(中午)交易清淡,成交量低;临近收盘时,基金经理调仓、日内交易者平仓等导致交易再次活跃,成交量高。连接起来就像一个字母“U”。
- W型: 在中国A股等市场常见。除了开盘和收盘的两个高峰,上午10:30-11:00左右还有一个小高峰,下午的交易相对平缓,形成了类似“W”的形状(或者说是一个双U型)。
- 这个趋势项捕捉的是一天之内确定性的、由市场结构和交易者习惯决定的宏观模式。
- 第二部分:周期项 ($\sum a_j \cos(\lambda_j t)$):
- 这部分被描述为由余弦基函数构成的 $n$ 个项。这里的“基函数”可以理解为搭建复杂波动的“积木”,每个 $\cos(\lambda_j t)$ 就是一块形状独特的积木。
- 它捕捉的是比日内U型趋势更“高频”的波动。论文的第2节(未在此处提供)应该通过谱分析等经验性证据,展示了成交量数据中存在着除了U型之外的、更快的周期性,比如5分钟、10分钟、30分钟的周期。
- $a_j$ 的解释: 这里再次强调了 $a_j$ 的重要性。它不是频率,而是强度。$a_j$ 的绝对值 $|a_j|$ 越大,说明频率为 $\lambda_j$ 的那种周期性波动在总的成交量变化中就越“响亮”、越“显著”。
- 第三部分:特异性噪声项 ($\varepsilon_t$):
- 这里用了“特异性”(idiosyncratic)这个词,强调这种噪声是特定于某个时间点 $t$ 的、与其它时间点无关的随机事件。它是成交量中那些“一次性”的、无法用系统性趋势或周期来解释的剩余部分。
💡 [数值示例]
假设我们正在分析某股票的3秒成交量数据。
- 趋势项 $m_t$: 软件画出了一个平滑的U型曲线,这是当天开盘、盘中、收盘的宏观交易模式。比如开盘时 $m_t$ 在5000手,盘中下降到1000手,收盘前回升到6000手。
- 周期项: 我们发现数据中有两种显著的周期。
- 周期1: 每30分钟(即600个时间点)出现一个交易小高峰。这对应一个特定的频率 $\lambda_1$,我们发现它的强度 $a_1 = 500$ 手。这意味着有一个振幅为500手的、每30分钟重复的波动。
- 周期2: 每5分钟(即100个时间点)有一个更微弱的波动。这对应频率 $\lambda_2$,其强度 $a_2 = 100$ 手。
- 总的周期项就是 $500\cos(\lambda_1 t) + 100\cos(\lambda_2 t) + \dots$ (可能还有其它更弱的周期)。
- 噪声项 $\varepsilon_t$: 在上午10:15:03,一个大单突然成交,使得该3秒的成交量瞬间比模型预测值高了800手,那么 $\varepsilon_t$ 在那一刻的值就约等于+800。而在下一个3秒,可能又因为交易稀少而出现一个-300的负向扰动。
最终在10:15:03这一刻的成交量 $V_t$ 就是 (U型趋势在那一点的值) + (30分钟周期在那一点的值) + (5分钟周期在那一点的值) + ... + 800。
⚠️ [易错点]
- U型/W型的非普适性: 虽然U型/W型很常见,但不是所有股票、所有交易日都严格遵循。比如某天有重大新闻发布,可能在盘中引发巨大的成交量,完全打破U型。$m_t$ 应该被看作是“平均”或“典型”的形状。
- $a_j$ 的符号: $a_j$ 的正负号决定了周期的初始相位。但由于我们通常更关心周期的“能量”或“强度”,所以后续分析的重点会放在 $a_j^2$ 上,这样符号就不重要了。$a_j^2$ 直接与波动的能量成正比。
📝 [总结]
本段用更具金融学直觉的语言,再次诠释了模型(公式1)的三个组成部分:代表市场常规作息的U/W型趋势,代表各种交易策略和信息流引发的高频周期性波动,以及代表随机个体行为和新闻冲击的特异性噪声。
🎯 [存在目的]
本段的目的是将抽象的数学符号与具体的金融市场现象联系起来,增强模型的可解释性和说服力。它告诉读者,这个模型不仅仅是一个数学游戏,它的每一个部分都对应着真实世界中一种可识别的经济或行为模式。这对于连接理论和实证至关重要。
🧠 [直觉心智模型]
想象你在分析一个城市一天的交通流量 $V_t$。
- 趋势项 $m_t$: 这是早晚高峰的模式。早上7-9点进城方向车流量巨大,中午平缓,下午5-7点出城方向车流量巨大。这是一个巨大的、可预测的“双峰”趋势。
- 周期项 $\sum a_j \cos(\lambda_j t)$: 这可能是由公共交通系统引起的。比如每10分钟有一班地铁到站,会带来一小波人流和车流高峰(高频周期)。每1小时有一班城际列车到站,会带来一个更大的周期性高峰(低频周期)。$a_j$ 就是每种周期性交通工具带来的流量大小。
- 噪声项 $\varepsilon_t$: 某条路上发生了轻微的交通事故,导致短时间拥堵,或者某个路口红绿灯临时故障,这些都是特异性的、随机的扰动。
💭 [直观想象]
想象你在看一个人的心电图 ($V_t$)。
- 趋势项 $m_t$: 这个人从静坐状态 ($m_t$较低) 开始缓慢起身散步,然后开始慢跑 ($m_t$逐渐升高),心率有了一个总体的上升趋势。
- 周期项 $\sum a_j \cos(\lambda_j t)$: 人的心跳本身就是最主要的周期项,比如每秒1-2次(高频)。呼吸也会引起心率的微小周期性变化(较低频)。这些是叠加在总体心率水平之上的规律波动。
- 噪声项 $\varepsilon_t$: 这个人突然被吓了一跳,心跳瞬间漏了一拍或者加速了一下,这就是一个噪声事件。
22 揭示与量化周期性
2.1 通过自协方差函数揭示周期性
📜 [原文4]
为了根据 (1) 从我们的交易成交量时间序列中揭示周期性,我们首先为三个过程 $p_{t} \in\left\{V_{t}, m_{t}, X_{t}\right\}$ 中的任何一个定义样本自协方差函数:
$$
\begin{equation*}
\gamma_{T}^{p}(h):=\frac{1}{T-h} \sum_{t=1}^{T-h}\left(p_{t}-\bar{p} .\right)\left(p_{t+h}-\bar{p} .\right) \tag{2}
\end{equation*}
$$
其中 $\bar{p} .:=\frac{1}{T} \sum_{t=1}^{T} p_{t}$ 是时间平均值,$h$ 代表一个特定的滞后。我们的设定 (1) 意味着成交量时间序列中的随机性来自特异性噪声 $\varepsilon_{t}$。然而,作为一个时间序列,$V_{t}$(以及 $X_{t}$)的变异性也来自周期项 $\cos \left(\lambda_{j} t\right)$。
📖 [逐步解释]
这一节开始进入技术核心:我们如何从数据中实际地“看到”并测量那些看不见的周期?答案是使用一个叫做“自协方差函数”的工具。
- 目标: 我们想要揭示和量化模型(1)中 $\sum a_j \cos(\lambda_j t)$ 这部分。也就是说,我们想知道存在哪些周期($\lambda_j$是什么),以及这些周期有多强($a_j$是什么)。
- 工具介绍: 作者引入了样本自协方差函数,记为 $\gamma_T^p(h)$。
- 这个函数是用来衡量一个时间序列“自己和自己”的相关性的。
- $p_t$ 可以是我们关心的任何一个序列:原始成交量 $V_t$,趋势 $m_t$,或者去趋势后的序列 $X_t$。
- $h$ 被称为“滞后”(lag)。它是一个时间差。
- $\gamma_T^p(h)$ 回答的问题是:一个序列在 $t$ 时刻的取值,和它在 $h$ 个时间单位之后(即 $t+h$ 时刻)的取值,有多大的关联度?
- 公式的直观理解:
- $(p_t - \bar{p})$: 序列在 $t$ 时刻的值与平均值的偏差。
- $(p_{t+h} - \bar{p})$: 序列在 $t+h$ 时刻的值与平均值的偏差。
- $(p_t - \bar{p})(p_{t+h} - \bar{p})$: 将这两个偏差相乘。
- 如果序列在 $t$ 和 $t+h$ 时刻都倾向于高于平均值(两个偏差都为正),或者都倾向于低于平均值(两个偏差都为负),那么乘积就是正的。
- 如果一个高于平均值,一个低于平均值,乘积就是负的。
- $\frac{1}{T-h}\sum_{t=1}^{T-h}(\dots)$: 把所有可能的 $(t, t+h)$ 对的偏差乘积加起来,再取一个平均。
- 所以,如果 $\gamma_T^p(h)$ 是一个大的正数,说明序列有“惯性”:当前值高,那么 $h$ 步之后的值也很可能高。如果它是一个大的负数,说明序列有“反转”性:当前值高,那么 $h$ 步之后的值倾向于变低。如果它接近0,说明两者没什么关系。
- 与周期性的关系:
- 关键洞察: 如果一个序列有很强的周期性,比如周期是 $P$,那么它在 $t$ 时刻的状态和在 $t+P$ 时刻的状态会非常相似。因此,它的自协方差函数在滞后 $h=P$ 的时候,应该会有一个峰值。同样,在 $h=2P, 3P, \dots$ 时也会有峰值。
- 通过计算并画出 $\gamma_T^p(h)$ 关于不同 $h$ 的图像(这个图像被称为相关图 an correlogram),我们就可以从峰值出现的位置,发现序列中隐藏的周期。
- 变异性的来源:
- 文章最后指出,$V_t$ 和 $X_t$ 的“变异性”(variability,即上下波动的程度)有两个来源:
- 真正的随机性: 来自白噪声 $\varepsilon_t$。
- 伪随机性: 来自周期项 $\sum a_j \cos(\lambda_j t)$。一个余弦函数本身是确定性的、可预测的,但很多个不同频率的余弦波叠加在一起,看起来就像是随机波动一样。
- 自协方差函数这个工具的强大之处在于,它能帮助我们区分这两种“变异性”,并从后者中提取出关于周期的信息。
💡 [数值示例]
示例1:计算一个简单序列的自协方差
回到我们之前的无噪声周期序列:$p_t = \{100, 80, 100, 120\}$。这里 $T=4$。
- 计算均值:
$\bar{p} = (100+80+100+120) / 4 = 400 / 4 = 100$。
- 计算 $\gamma(0)$ (方差):
$p_t - \bar{p}$ 序列为 $\{0, -20, 0, 20\}$。
$\gamma(0) = \frac{1}{4} [(0)^2 + (-20)^2 + (0)^2 + (20)^2] = \frac{1}{4}[0 + 400 + 0 + 400] = \frac{800}{4} = 200$。
- 计算 $\gamma(1)$ (滞后1的自协方差):
我们需要计算 $(p_t - \bar{p})(p_{t+1}-\bar{p})$ 的和。
- $t=1$: $(p_1-\bar{p})(p_2-\bar{p}) = (0)(-20) = 0$。
- $t=2$: $(p_2-\bar{p})(p_3-\bar{p}) = (-20)(0) = 0$。
- $t=3$: $(p_3-\bar{p})(p_4-\bar{p}) = (0)(20) = 0$。
$\gamma(1) = \frac{1}{4-1} [0+0+0] = 0$。
- 计算 $\gamma(2)$ (滞后2的自协方差):
我们需要计算 $(p_t - \bar{p})(p_{t+2}-\bar{p})$ 的和。
- $t=1$: $(p_1-\bar{p})(p_3-\bar{p}) = (0)(0) = 0$。
- $t=2$: $(p_2-\bar{p})(p_4-\bar{p}) = (-20)(20) = -400$。
$\gamma(2) = \frac{1}{4-2} [0 + (-400)] = -200$。
- 计算 $\gamma(3)$ (滞后3的自协方差):
- $t=1$: $(p_1-\bar{p})(p_4-\bar{p}) = (0)(20) = 0$。
$\gamma(3) = \frac{1}{4-3} [0] = 0$。
结果分析: 我们的自协方差序列是 $\{ \gamma(0)=200, \gamma(1)=0, \gamma(2)=-200, \gamma(3)=0, \dots \}$。
- $\gamma(2)$ 是一个很大的负值。这说明序列在间隔2个时间点后,倾向于反转。回顾我们的序列 $\{100, 80, 100, 120\}$,100之后隔2位是100(偏差0->0),80之后隔2位是120(偏差-20 -> +20),负相关性很强!
- 这个序列的周期是4。我们看到 $\gamma(4)$ 如果能算的话,应该会等于 $\gamma(0)=200$(因为序列完美重复)。$\gamma(2)$ 处的谷值,恰好是半个周期的位置。
- 这个简单的例子展示了,自协方差函数的形状确实能反映序列的周期结构。
⚠️ [易错点]
- 样本量问题: 公式(2)是用有限样本 $T$ 来估计理论上的自协方差。当 $h$ 变得接近 $T$ 时,分母 $T-h$ 会很小,求和的项数也变得很少,这会导致估计结果 $\gamma_T^p(h)$ 非常不稳定,方差很大。因此,在实践中,我们通常只计算和信任 $h$ 远小于 $T$(例如 $h < T/4$)时的自协方差。
- 平稳性假设: 自协方差函数的经典理论是建立在“弱平稳”时间序列上的。平稳序列意味着其均值、方差和自协方差不随时间变化。我们的 $V_t$ 因为有趋势项 $m_t$(U型),所以它的均值是随时间 $t$ 变化的,它是一个非平稳序列。直接对 $V_t$ 计算自协方差会产生误导性的结果。这就是为什么作者在引出关键的定理1之前,强调要分析的是去趋势后的序列 $X_t = V_t - m_t$。$X_t$ 在模型设定下更接近于一个平稳序列。
📝 [总结]
本节引入了核心分析工具——样本自协方差函数 $\gamma_T^p(h)$。它通过计算一个序列与其自身在不同时间滞后 $h$ 下的相关性,来揭示序列内部的依赖结构。对于周期性序列,其自协方差函数也会呈现出相应的周期性,这为我们从数据中“钓出”周期信息提供了可能。
🎯 [存在目的]
本节的目的是搭建从“模型设定”到“模型估计”的桥梁。我们有了模型(公式1),但不知道里面的参数($a_j, \lambda_j$)是什么。本节说,我们可以先计算一个中间量——自协方差函数 $\gamma_T^X(h)$,下一步(定理1)将告诉我们,这个中间量与我们最终想要的参数 $a_j$ 之间存在着美妙的数学关系。
🧠 [直觉心智模型]
想象你有一长段录音带,记录了某段音乐。你想知道这段音乐有没有重复的旋律。
- 你把录音带复制一份。
- 你把复制的录音带相对于原版,向后移动(滞后)一段距离 $h$。
- 然后你同时播放两条录音带,听听它们在多大程度上是和谐的(正相关)还是不和谐的(负相关)。这个“和谐度”就是 $\gamma(h)$。
- 你不断改变移动的距离 $h$,从很短的距离到很长的距离。
- 如果你发现在移动了 $h=30$ 秒时,两段音乐听起来惊人地合拍、一致,那么你就找到了一个30秒的周期!此时的 $\gamma(30)$ 会是一个峰值。
💭 [直观想象]
想象一条长长的壁纸,上面印着重复的图案。自协方差函数就像一个“图案匹配器”。
- 你把壁纸裁成两半,上下叠放。
- 你水平移动下半张壁纸(滞后 $h$)。
- 在每个移动位置 $h$,你都比较一下上下两张壁纸的图案在多大程度上能够重合。重合度就是 $\gamma(h)$。
- 当移动的距离 $h$ 正好等于一个完整图案的宽度时,你会发现上下两张壁纸完美重合,此时“重合度”$\gamma(h)$ 达到最大值。通过找到让 $\gamma(h)$ 最大的那个 $h$,你就测量出了壁纸图案的周期。
2.2 自协方差与周期强度的关系 (定理1)
📜 [原文5]
以下定理将自协方差函数 (2) 与 (1) 中的周期项联系起来。
定理 1。在假设 1.3 下,当 $T \rightarrow \infty$ 时,去趋势成交量时间序列 $X_{t}$ 的自协方差函数 $\gamma_{T}^{X}(h)$ 几乎确定地收敛如下:
$$
\begin{equation*}
\gamma_{T}^{X}(h) \xrightarrow{\text { a.s. }} \frac{1}{2} \sum_{j=1}^{n} a_{j}^{2} \cos \left(\lambda_{j} h\right)+\mathbf{1}_{h=0} \sigma^{2} \tag{3}
\end{equation*}
$$
我们在附录 A 中提供证明。等式 (3) 将自协方差函数与每个周期项的强度 $a_{j}^{2}$ 联系起来。这一结果提供了一种方法,一旦我们收集了足够的样本来估计自协方差函数 $\gamma_{T}^{X}(h)$,就可以估计 $a_{j}$。
📖 [逐步解释]
这是论文的第一个关键理论结果,它精确地揭示了我们计算出的自协方差函数 $\gamma_T^X(h)$ 和我们想要求的周期强度 $a_j$ 之间的数学关系。
- 主角: 这个定理关注的是去趋势后的序列 $X_t = \sum a_j \cos(\lambda_j t) + \varepsilon_t$ 的自协方差 $\gamma_T^X(h)$。为什么是 $X_t$ 而不是 $V_t$? 因为我们已经通过假设2,把趋势 $m_t$ 和周期项分开了。趋势会干扰我们对周期的分析,所以我们先把它“扔掉”。
- 前提条件: 这个定理成立需要前面的假设1-3。这些假设保证了数学推导的严谨性。
- 核心结论 (公式3): 当我们的数据量足够大时 ($T \to \infty$),我们从数据中计算出的样本自协方差 $\gamma_T^X(h)$ 会收敛到一个确定的理论形式。这个理论形式由两部分组成:
- 第一部分: $\frac{1}{2} \sum_{j=1}^{n} a_{j}^{2} \cos \left(\lambda_{j} h\right)$。
- 这是一个关于滞后 $h$ 的函数。
- 它本身也是一个由多个余弦波构成的和!
- 但请注意,这里的余弦波是 $\cos(\lambda_j h)$,变量是滞后 $h$,而不是时间 $t$。
- 每个余弦波的频率 $\lambda_j$ 与原始序列 $X_t$ 中的频率完全相同。
- 最关键的是,每个余弦波的振幅现在是 $\frac{1}{2}a_j^2$。它正比于原始周期项强度 $a_j$ 的平方!
- 第二部分: $\mathbf{1}_{h=0} \sigma^{2}$。
- $\mathbf{1}_{h=0}$ 是一个指示函数。当 $h=0$ 时,它的值为1;当 $h \neq 0$ 时,它的值为0。
- $\sigma^2$ 是白噪声 $\varepsilon_t$ 的方差。
- 所以,这部分的意思是:只有在滞后为0的情况下,自协方差中才包含噪声的方差。当滞后 $h > 0$ 时,噪声项的贡献是0。这是因为根据假设3,白噪声是独立的,$\varepsilon_t$ 和 $\varepsilon_{t+h}$ 之间没有相关性,所以它们的协方差为0。
- 定理的意义:
- 这个定理建立了一座神奇的桥梁。桥的一头是我们能从数据中计算的东西(左边:$\gamma_T^X(h)$),桥的另一头是我们梦寐以求的东西(右边:$a_j^2$)。
- 它告诉我们:去趋势序列的自协方差函数,本身就是一个频谱! 它的形状直接反映了原始序列中各个周期成分的强度。
- 如果原始序列 $X_t$ 在频率 $\lambda_j$ 上有一个很强的周期(即 $a_j^2$ 很大),那么它的自协方差函数 $\gamma^X(h)$ 作为一个关于 $h$ 的函数,在频率 $\lambda_j$ 上也会有一个很强的周期。
- 如何使用这个结果:
- 第一步:我们从成交量数据 $V_t$ 中估计并移除趋势 $m_t$,得到去趋势序列 $\hat{X}_t$。
- 第二步:利用公式(2),计算出 $\hat{X}_t$ 的样本自协方差 $\hat{\gamma}^X(h)$,对于 $h=0, 1, 2, \ldots, n$。
- 第三步:现在我们有了一组数字 $\hat{\gamma}^X(h)$。根据定理1,我们知道这组数字约等于 $\frac{1}{2} \sum_{j=1}^{n} a_{j}^{2} \cos \left(\lambda_{j} h\right)$ (对于 $h>0$)。
- 第四步:这是一个“反演”问题。已知多个余弦波叠加后的结果,如何求出每个余弦波的振幅($a_j^2$)?这正是离散傅里叶变换(DFT)的拿手好戏!我们将在3.2节看到具体操作。
💡 [数值示例]
假设一个去趋势序列 $X_t$ 只包含一个周期和一个噪声:
$X_t = 10 \cos(\frac{\pi}{5} t) + \varepsilon_t$,其中 $\varepsilon_t$ 是均值为0,方差 $\sigma^2=4$ 的白噪声。
这里 $n=1, a_1=10, \lambda_1=\pi/5$。
根据定理1,这个序列的理论自协方差函数 $\gamma^X(h)$ 应该是:
$\gamma^X(h) = \frac{1}{2} a_1^2 \cos(\lambda_1 h) + \mathbf{1}_{h=0} \sigma^2$
$\gamma^X(h) = \frac{1}{2} (10^2) \cos(\frac{\pi}{5} h) + \mathbf{1}_{h=0} (4)$
$\gamma^X(h) = 50 \cos(\frac{\pi}{5} h) + \mathbf{1}_{h=0} \cdot 4$
现在我们来计算几个点的理论值:
- h=0: $\gamma^X(0) = 50 \cos(0) + 1 \cdot 4 = 50 \cdot 1 + 4 = 54$。
这说明该序列的总方差是54。其中50来自周期项的贡献,4来自噪声的贡献。
- h=1: $\gamma^X(1) = 50 \cos(\pi/5) + 0 \cdot 4 \approx 50 \times 0.809 = 40.45$。
- h=2: $\gamma^X(2) = 50 \cos(2\pi/5) + 0 \approx 50 \times 0.309 = 15.45$。
- h=5: $\gamma^X(5) = 50 \cos(\pi) + 0 = -50$。
这里的周期是 $P = 2\pi/\lambda_1 = 2\pi/(\pi/5) = 10$。在半个周期 $h=5$ 的地方,自协方差达到负的最大值。
- h=10: $\gamma^X(10) = 50 \cos(2\pi) + 0 = 50$。
在一个完整周期 $h=10$ 的地方,自协方差达到正的最大值(不含$h=0$时)。
定理1告诉我们,如果我们有很长的 $X_t$ 观测数据,我们算出来的 $\hat{\gamma}^X(h)$ 就会非常接近上面这个理论函数 $\{54, 40.45, 15.45, \dots, -50, \dots, 50, \dots \}$。
⚠️ [易错点]
- 收敛速度: 定理说的是当 $T \to \infty$ 时的极限情况。在有限样本下,我们计算的 $\hat{\gamma}_T^X(h)$ 只是对理论值 $\gamma^X(h)$ 的一个有噪声的估计。$T$ 越大,这个估计就越准。
- $h=0$的特殊性: 必须时刻注意 $h=0$ 这一点是特殊的,因为它包含了噪声的方差 $\sigma^2$。而所有 $h \neq 0$ 的点,都不包含 $\sigma^2$。这个性质非常有用,可以帮助我们把周期的贡献和噪声的贡献分离开来。
- $a_j$ vs $a_j^2$: 我们从自协方差中能直接估计出的是 $a_j^2$,而不是 $a_j$。这意味着我们能知道每个周期的强度或能量,但无法知道它的初始相位(即 $a_j$ 是正还是负)。在大多数应用中,这已经足够了,因为强度才是更重要的信息。
📝 [总结]
定理1是连接“数据特征”和“模型参数”的关键。它将我们可观测的自协方差函数 $\gamma^X(h)$,表示为了我们想知道的周期强度 $a_j^2$ 的余弦变换。这个公式揭示了 $\gamma^X(h)$ 中隐藏的秘密,并为下一步使用傅里叶反变换来求解 $a_j^2$ 提供了理论依据。
🎯 [存在目的]
本定理的目的是将时间域的分析(自协方差,研究信号随时间滞后的变化)和频率域的分析(谱,研究信号由哪些频率的波构成)联系起来。这个结果是所谓的“维纳-辛钦定理”在当前特定模型下的一个体现。它为从数据估计谱强度(即 $a_j^2$)提供了坚实的理论基础。
🧠 [直觉心智模型]
想象你有一把调音叉。你敲响它,它会发出一个特定频率 $\lambda$ 的声音,振幅是 $a$。这个声音就是 $X_t$。
现在你想测量这个声音的自协方差 $\gamma^X(h)$(通过前面说的录音带移动的方法)。
定理1告诉你,你测量出来的“和谐度”曲线 $\gamma^X(h)$,本身也会是一个完美的余弦波,它的频率也是 $\lambda$,但它的振幅是 $\frac{1}{2}a^2$!
所以,通过测量输出的余弦波($\gamma^X(h)$)的振幅,你就可以反推出原始调音叉声音($X_t$)的振幅的平方。
如果同时敲响了很多把不同频率、不同振幅的调音叉,那么你测量出的 $\gamma^X(h)$ 就是所有这些余弦波的叠加。
💭 [直观想象]
想象水面上由多个波源产生的波纹 $X_t$。每个波源 $j$ 都在以频率 $\lambda_j$ 和振幅 $a_j$ 制造同心圆波浪。
现在你在水面上相距为 $h$ 的两点A和B放下两个传感器,测量两点水面高度的协方差,这就是 $\gamma^X(h)$。
你改变两点间的距离 $h$,并不断测量。
定理1告诉你,你画出的协方差 $\gamma^X(h)$ 随距离 $h$ 变化的图像,其本身看起来也像是一系列波纹的叠加。这个新的“协方差波纹”的成分,与原始水面波纹的成分一一对应:原始水面存在一个频率为 $\lambda_j$ 的波,那么“协方差波纹”里也存在一个频率为 $\lambda_j$ 的波,并且后者的“振幅”正比于前者振幅的平方 ($a_j^2$)。
2.3 方差分解 (推论1)
📜 [原文6]
此外,以下结果通过在 (3) 中取 $h=0$,为日内成交量 $V_{t}$ 的方差提供了一个有用的分解。
推论 1。在假设 1.3 下,当 $T \rightarrow \infty$ 时,日内成交量过程 $V_{t}$ 的方差可以分解为:
$$
\begin{equation*}
\gamma_{T}^{V}(0)-\gamma_{T}^{m}(0) \xrightarrow{\text { a.s. }} \sigma^{2}+\frac{1}{2} \sum_{j=1}^{n} a_{j}^{2} . \tag{4}
\end{equation*}
$$
推论 1 表明,日内交易成交量的总方差可以分解为趋势项的方差、特异性方差以及对应于不同周期频率的 $n$ 个额外项。它还强调了 $a_{j}^{2}$ 的一个重要解释,因为它代表了总方差中——除了趋势和特异性项之外——可以由第 $j$ 个周期项解释的部分。此后,我们将 $a_{j}$ 称为强度系数。
📖 [逐步解释]
这个推论是定理1的一个直接且非常重要的应用,它解释了成交量的总波动究竟来自哪里。
- 出发点: 推论的起点是定理1的公式(3),并且特别关注 $h=0$ 的情况。
- 回顾一下,$\gamma_T^p(0)$ 就是序列 $p_t$ 的样本方差,它衡量了序列的总波动幅度。
- 推导过程:
$\gamma_T^X(0) \xrightarrow{a.s.} \frac{1}{2} \sum_{j=1}^n a_j^2 \cos(\lambda_j \cdot 0) + \mathbf{1}_{0=0}\sigma^2$
- 因为 $\cos(0)=1$ 且 $\mathbf{1}_{0=0}=1$,上式简化为:
$\gamma_T^X(0) \xrightarrow{a.s.} \frac{1}{2} \sum_{j=1}^n a_j^2 + \sigma^2$
- 这个公式告诉我们,去趋势序列 $X_t$ 的总方差 ($\gamma_T^X(0)$) 被分解成了两部分:所有周期项贡献的方差之和 ($\frac{1}{2}\sum a_j^2$),加上白噪声自身的方差 ($\sigma^2$)。
- 关联到原始成交量 $V_t$:
- 我们最终关心的是原始成交量 $V_t$ 的方差 $\gamma_T^V(0)$。
- 我们有 $V_t = m_t + X_t$。
- 根据方差的性质,如果两个变量是不相关的,那么它们和的方差等于它们方差的和。即 $Var(A+B) = Var(A) + Var(B)$。
- 在我们的模型里,趋势项 $m_t$ 是非随机的,而去趋势项 $X_t$ 是随机的(来源是 $\varepsilon_t$)。在更一般的设定下,如果我们将 $m_t$ 和 $X_t$ 视为两个不相关的随机过程(这与假设2的精神一致),那么总方差可以近似分解:
$\gamma_T^V(0) \approx \gamma_T^m(0) + \gamma_T^X(0)$
(总方差 = 趋势的方差 + 去趋势部分的方差)
- 将 $\gamma_T^X(0)$ 移到左边,得到 $\gamma_T^V(0) - \gamma_T^m(0) \approx \gamma_T^X(0)$。
- 再结合我们从定理1推导出的 $\gamma_T^X(0)$ 的分解,就得到了公式(4):
$\gamma_{T}^{V}(0)-\gamma_{T}^{m}(0) \xrightarrow{\text { a.s. }} \sigma^{2}+\frac{1}{2} \sum_{j=1}^{n} a_{j}^{2}$
- 公式(4)的解读:
- 左边:$\gamma_T^V(0) - \gamma_T^m(0)$ 是总成交量方差中,扣除了由日内U型趋势所贡献的方差之后,剩余的方差。我们可以称之为“去趋势方差”。
- 右边:这个“去趋势方差”由两部分构成:
- $\sigma^2$: 无法解释的、纯粹随机的噪声所贡献的方差。
- $\frac{1}{2} \sum a_j^2$: 所有 $n$ 个周期性成分所贡献的方差之和。
- $a_j^2$ 的重要解释:
- 这个推论给了 $a_j^2$ 一个非常清晰的物理解释。$\frac{1}{2}a_j^2$ 正是第 $j$ 个周期分量对“去趋势方差”的贡献量。
- 我们可以计算一个比例:$R_j^2 = \frac{\frac{1}{2} a_j^2}{\sigma^2 + \frac{1}{2}\sum_k a_k^2}$。这个比例告诉我们,在所有非趋势性的波动中,由第 $j$ 个周期所解释的百分比是多少。
- 这为我们比较不同周期的重要性提供了一个量化指标。如果 $a_1^2$ 远大于 $a_2^2$,我们就可以说频率为 $\lambda_1$ 的周期比频率为 $\lambda_2$ 的周期重要得多。
- “强度系数”这个名字因此而得名,因为它直接量化了周期的强度。
💡 [数值示例]
继续使用定理1中的例子: $X_t = 10 \cos(\frac{\pi}{5} t) + \varepsilon_t$,且 $\sigma^2=4$。
我们还假设有一个趋势项 $m_t$,它的方差经计算为 $\gamma^m(0) = 200$。
那么 $V_t = m_t + 10 \cos(\frac{\pi}{5} t) + \varepsilon_t$。
根据推论1,我们来分解方差:
- 去趋势方差:
$\gamma^X(0) = \sigma^2 + \frac{1}{2} \sum a_j^2$
在这个例子中,只有一个周期项 ($n=1, a_1=10$),所以:
$\gamma^X(0) = 4 + \frac{1}{2} (10^2) = 4 + 50 = 54$。
这与我们之前在定理1的例子中直接计算 $\gamma^X(0)$ 得到的结果一致。
- 总方差:
$\gamma^V(0) = \gamma^m(0) + \gamma^X(0) = 200 + 54 = 254$。
这只股票成交量的总方差(总波动的量度)是254。
- 方差贡献分解:
- 总方差254中,有200 (约78.7%) 是由日内U型趋势贡献的。
- 剩下的54 (约21.3%) 是去趋势部分的方差。
- 在这54的去趋势方差中:
- 有50 (占去趋势方差的 $50/54 \approx 92.6\%$) 是由周期为10的那个周期项贡献的。
- 只有4 (占去趋势方差的 $4/54 \approx 7.4\%$) 是由纯粹的随机噪声贡献的。
结论: 对于这只假想的股票,其成交量波动主要由U型趋势主导。在剔除趋势后,剩下的波动绝大部分都是由一个周期为10的规律性波动构成的,真正的随机噪声影响很小。这表明这个周期是该股票一个非常重要的特征。
⚠️ [易错点]
- 方差分解的近似性: $Var(A+B)=Var(A)+Var(B)$ 严格成立要求A和B不相关。在我们的模型中,$m_t$ 是非随机的,而 $X_t$ 是随机的,它们之间的协方差为0,所以分解是精确的。但在实际估计中,我们估计出的 $\hat{m}_t$ 和 $\hat{X}_t$ 可能存在微小的相关性,导致等式 $\gamma^V(0) = \gamma^m(0) + \gamma^X(0)$ 只是一个近似。
- 解释的归因: 这个分解非常清晰,但需要注意它完全依赖于模型(1)的设定是正确的。如果真实世界比模型更复杂(比如存在非线性关系),那么这个简单的方差相加分解可能会有误导。
📝 [总结]
推论1为成交量的总波动提供了一个清晰的“归因分析”框架。它将总方差分解为三个来源:趋势的贡献、各个周期的贡献、以及随机噪声的贡献。这个分解不仅在理论上很优美,更重要的是,它为 $a_j^2$ 赋予了“方差贡献”这一具体而重要的经济解释,使得 $a_j$ “强度系数”的名称实至名归。
🎯 [存在目的]
本推论的目的是将定理1的抽象数学结果转化为一个更具实践意义和解释力的结论。方差分解是统计学和计量经济学中一种非常强大的叙事工具,它能帮助研究者和读者直观地理解一个模型中不同因素的相对重要性。通过这个推论,作者强调了其模型在“解释波动来源”方面的能力。
🧠 [直觉心智模型]
假设你的月度总支出 ($V_t$的方差) 有很大的波动。你想知道为什么。
你使用一个模型进行分析,得到了如下方差分解结果:
- 趋势项贡献 ($\gamma^m(0)$): 这是由你生活中的固定趋势导致的,比如每年12月因为过节,开销固定会增加2000元。这部分波动是可预测的。
- 周期项贡献 ($\frac{1}{2}\sum a_j^2$):
- 你发现每周五都习惯出去大餐一顿,这导致了每周的周期性支出波动($a_1^2$)。
- 你每个月15号要还信用卡,导致了每月的周期性支出波动($a_2^2$)。
- 噪声项贡献 ($\sigma^2$): 这个月你突然生病看医生,或者捡到钱,这些都是随机的、不可预测的事件导致的支出波动。
推论1就像是给了你这样一份账单分析报告,让你清楚地看到总支出的波动是由哪些部分构成的。
💭 [直观想象]
想象一个装满水的大桶,水面在不停地晃动。水面的总晃动幅度(方差)是 $\gamma^V(0)$。
- 趋势贡献 $\gamma^m(0)$: 有人正在缓慢地、有规律地倾斜整个大桶,导致水面有一个大的、整体的晃动。
- 周期贡献 $\frac{1}{2}\sum a_j^2$: 水桶里有几个不同大小的波浪制造机,各自以不同的频率在制造波纹。所有这些波纹叠加起来,也造成了水面的晃动。
- 噪声贡献 $\sigma^2$: 你随机地往水里扔小石子,激起一些随机的水花。
推论1告诉你,水面总的晃动幅度,可以被分解为“倾斜桶”造成的晃动、“波浪机”造成的晃动和“扔石子”造成的晃动之和。而 $a_j^2$ 就是告诉你,第 $j$ 个波浪制造机贡献了多大的晃动。
33 参数估计的细节
3.1 估计框架与数据设定
📜 [原文7]
为了估计强度系数,我们首先估计 (2) 中的自协方差函数,然后应用离散傅里叶反变换 (DFT)。我们选择 $\lambda_{j}=\frac{j \pi}{n}, j=1, \ldots, n$,这对应于第 $j$ 项的周期为 $\frac{2 n}{j} \times 3$ 秒。根据图 1 中的经验观察,我们选择 $n=500$,以便我们的周期基能够捕捉对应于诸如 5 分钟和 10 分钟周期的频率。
给定 $S$ 只股票在 $D$ 个不同交易日内的 $S \times D$ 个日内成交量时间序列数据集 $\left\{\left\{\left(V_{t, s, d}\right)_{t=1}^{T}\right\}_{d=1}^{D}\right\}_{s=1}^{S}$,我们通过添加两个额外的下标,为每只股票 $s$ 在每个交易日 $d$ 明确地重写谱表示 (1):
$$
\begin{equation*}
V_{t, s, d}:=m_{t, s, d}+X_{t, s, d}=m_{t, s, d}+\sum_{j=1}^{n} a_{j, s, d} \cos \left(\lambda_{j} t\right)+\varepsilon_{t, s, d} \tag{5}
\end{equation*}
$$
📖 [逐步解释]
这一节开始从理论转向实践,详细说明如何具体操作来估计我们最关心的参数 $a_j$。
- 总体策略:
- 第一步:估计自协方差函数 $\gamma^X(h)$。我们已经知道怎么做了(公式2)。
- 第二步:应用“离散傅里叶反变换”(Inverse Discrete Fourier Transform, IDFT)到 $\gamma^X(h)$ 上,来求解 $a_j^2$。
- 为什么是傅里叶反变换? 定理1的公式(3) $\gamma^X(h) \approx \sum_j (\frac{1}{2}a_j^2) \cos(\lambda_j h)$,本质上是一个傅里叶余弦级数。它说 $\gamma^X(h)$ 是由一系列系数为 $\frac{1}{2}a_j^2$ 的余弦波合成的。傅里叶分析告诉我们,如果知道一个信号是如何合成的,我们就可以通过傅里叶变换把它分解开,找出原始的系数。这个“分解”的过程,就是傅里叶反变换(或正变换,取决于定义)。
- 频率的选择 ($\lambda_j$):
- 在理论部分,$\lambda_j$ 可以是任意频率。但在实践中,我们必须选择一组离散的、固定的频率来做分析。
- 作者做了一个非常标准的选择:$\lambda_j = \frac{j\pi}{n}$,其中 $j=1, \ldots, n$。
- 这组频率被称为傅里叶频率。它们在频率空间 $(0, \pi]$ 中是等距分布的。
- 对应的周期: 周期 $P_j = 2\pi / \lambda_j = 2\pi / (j\pi/n) = 2n/j$ 个时间单位。
- 具体到本文: 作者提到一个时间单位是3秒。所以周期就是 $(2n/j) \times 3$ 秒。
- $n$的选择: 作者选择 $n=500$。这是一个很重要的实证选择。
- $n$ 决定了我们能分辨的频率的精细程度。$n$ 越大,频率网格越密。
- 选择 $n=500$ 是为了确保这个频率网格足够密,能够“覆盖”到一些他们凭经验认为很重要的周期,比如5分钟和10分钟。
- 我们来验证一下:
- 5分钟 = 300秒。对应的周期是 $300/3 = 100$ 个时间单位。我们想找一个 $j$ 使得 $P_j = 2n/j = 2(500)/j = 1000/j = 100$,解得 $j=10$。所以 $\lambda_{10}$ 这个频率正好对应5分钟周期。
- 10分钟 = 600秒。对应的周期是 $600/3=200$ 个时间单位。我们想找一个 $j$ 使得 $1000/j = 200$,解得 $j=5$。所以 $\lambda_5$ 这个频率正好对应10分钟周期。
- 这个选择确保了模型有能力去捕捉5分钟和10分钟的周期效应。
- 数据的扩展:
- 之前我们的模型 $V_t$ 看起来只针对一个时间序列。但在实证研究中,我们通常有大量的数据。
- 这里的数据结构是一个“面板数据”(Panel Data):
- $S$ 只不同的股票($s=1, \ldots, S$)。
- $D$ 个不同的交易日($d=1, \ldots, D$)。
- 所以总共有 $S \times D$ 个时间序列。
- 为了体现这一点,模型(1)被扩展到了模型(5),给所有的变量都加上了股票下标 $s$ 和日期下标 $d$。
💡 [数值示例]
数据设定示例:
假设我们研究2只股票 ($S=2$,比如苹果公司AAPL和谷歌公司GOOG),观察它们在3个交易日 ($D=3$) 的数据。
我们的数据集就包含 $2 \times 3 = 6$ 个时间序列。
- $V_{t, \text{AAPL}, \text{Day1}}$: 苹果公司在第一天的成交量序列。
- $V_{t, \text{AAPL}, \text{Day2}}$: 苹果公司在第二天的成交量序列。
- ...
- $V_{t, \text{GOOG}, \text{Day3}}$: 谷歌公司在第三天的成交量序列。
模型(5)假设,以上每一个时间序列都可以被分解成它自己独特的趋势、周期强度和噪声。
例如,对于苹果公司在第一天,我们有:
$V_{t, \text{AAPL}, \text{Day1}} = m_{t, \text{AAPL}, \text{Day1}} + \sum_j a_{j, \text{AAPL}, \text{Day1}} \cos(\lambda_j t) + \varepsilon_{t, \text{AAPL}, \text{Day1}}$
这个设定非常灵活,但也意味着有海量的参数需要估计 (对于每个 $(j,s,d)$ 都有一个 $a_{j,s,d}$)。为了简化问题,作者在下一步做了平均。
⚠️ [易错点]
- 傅里叶频率的局限性: 选择固定的傅里叶频率 $\lambda_j = j\pi/n$ 意味着我们只能测量在这些特定频率上的能量。如果一个真实的周期,其频率正好落在两个傅里-叶频率之间(比如 $\lambda_{10}$ 和 $\lambda_{11}$ 之间),那么它的能量就会“泄露”到邻近的几个傅里叶频率上。这被称为频谱泄露 (spectral leakage)。$n$ 越大,频率网格越密,泄露问题越轻。
- $n$与$T$的关系: $n$ 的选择也与时间序列长度 $T$ 有关。理论上,我们最多可以分辨出约 $T/2$ 个独立的频率。在实践中,$n$ 通常取得比 $T/2$ 小,以保证估计的稳定性。作者在这里选择 $n=500$,暗示了 $T$ 至少是1000。对于一个交易日6.5小时,每3秒采样一次, $T = 7800$,远大于 $n=500$,所以这个选择是合理的。
📝 [总结]
本节明确了参数估计的路线图(自协方差 -> 傅里叶反变换),并做出了两个关键的实践设定:第一,将需要寻找的频率 $\lambda_j$ 固定在一组标准的傅里叶频率上,并根据经验选择了频率网格的密度 $n=500$;第二,将基础模型扩展到包含多股票、多天数的面板数据场景,允许每个股票每天的参数都可以不同。
🎯 [存在目的]
本节的目的是将抽象的理论模型转化为一个可操作的实证分析框架。它解决了在真实数据分析中必须面对的两个问题:1) 在连续的频率空间中,我们应该在哪些点上进行测量?2) 如何处理和表示拥有多只股票和多个观测日的大型数据集?
🧠 [直觉心智模型]
你是一个音频工程师,任务是分析一段复杂的录音 $V_t$ 的频谱。
- 选择 $\lambda_j = j\pi/n$: 你的频谱分析仪上有很多个推子,每个推子对应一个固定的频率(比如60Hz, 120Hz, 240Hz, ...)。你不能分析任意频率,只能分析这些预设频率上的能量有多大。这就是选择了傅里叶频率。
- 选择 $n=500$: 你选择了一个有500个推子的高级分析仪,而不是只有10个推子的入门级设备。因为你知道音乐中可能存在一些微妙的泛音,你需要足够多的推子(足够密的频率网格)才能捕捉到它们。
- 扩展到 $V_{t,s,d}$: 你不是只分析一首歌,而是要分析一个专辑库,里面有$S$个歌手的$D$张专辑。你假设每个歌手的每张专辑($V_{t,s,d}$)都有自己独特的频谱特性 ($a_{j,s,d}$)。
💭 [直观想象]
你是一个质量检测员,需要分析一块布料 ($V_t$) 的编织结构。
- 选择 $\lambda_j = j\pi/n$: 你有一套标准的网格筛子,孔径大小是固定的。你把布料的纤维结构投影到筛子上,看在哪些孔径的筛子上能看到最清晰的图案。这些筛子的孔径就是 $\lambda_j$。
- 选择 $n=500$: 你用了一套包含500个不同孔径的精密筛子,从粗到细都有,以确保不会漏掉任何一种编织周期。
- 扩展到 $V_{t,s,d}$: 你要检测的不是一块布料,而是来自 $S$ 个工厂、 $D$ 个批次的 $S \times D$ 批布料。你允许每个工厂、每个批次的布料 ($V_{t,s,d}$) 都有自己独特的编织缺陷或特点 ($a_{j,s,d}$)。
3.2 跨时间平均
📜 [原文8]
然后,我们计算所有 $D$ 天的平均日内成交量时间序列 $\bar{V}_{t, s, \cdot}=\frac{1}{D} \sum_{d=1}^{D} V_{t, s, d}$,它具有相同的表示:
$$
\bar{V}_{t, s, \cdot}=\bar{m}_{t, s, \cdot}+\bar{X}_{t, s, \cdot}=\bar{m}_{t, s, \cdot}+\sum_{j=1}^{n} \bar{a}_{j, s, \cdot} \cos \left(\lambda_{j} t\right)+\bar{\varepsilon}_{t, s, \cdot}
$$
其中 $\bar{m}_{t, s, \cdot}, \bar{X}_{t, s, \cdot}, \bar{a}_{j, s, \cdot}$ 和 $\bar{\varepsilon}_{t, s, \cdot}$ 是所有 $D$ 天对应的平均时间序列:
$$
\bar{m}_{t, s, \cdot}=\frac{1}{D} \sum_{d=1}^{D} m_{t, s, d}, \quad \bar{X}_{t, s \cdot}=\frac{1}{D} \sum_{d=1}^{D} X_{t, s, d}, \quad \bar{a}_{j, s \cdot \cdot}=\frac{1}{D} \sum_{d=1}^{D} a_{j, s, d}, \quad \bar{\varepsilon}_{t, s \cdot \cdot}=\frac{1}{D} \sum_{d=1}^{D} \varepsilon_{t, s, d}
$$
对于每只股票,我们通过以下步骤估计所有 $D$ 个交易日的平均强度系数 $\bar{a}_{j, s, \cdot}$。
📖 [逐步解释]
上一步设定了一个非常灵活的模型,但参数太多 ($a_{j,s,d}$),直接估计不现实。这一步通过一个非常简单而强大的方法来解决这个问题:平均。
- 问题: 对于一只股票 $s$,它在不同日期 $d$ 的周期强度 $a_{j,s,d}$ 可能是不同的。我们是想知道每一天独特的周期模式,还是想知道这只股票“通常”或“平均”的周期模式?
- 解决方案: 作者选择研究后者。他们对于每一只股票 $s$,将它在所有 $D$ 天的成交量数据,在每个时间点 $t$ 上进行平均。
- 例如,计算股票 $s$ 在所有 $D$ 天里,开盘后第一个3秒 ($t=1$) 的平均成交量 $\bar{V}_{1,s,\cdot}$。
- 再计算它在开盘后第二个3秒 ($t=2$) 的平均成交量 $\bar{V}_{2,s,\cdot}$。
- ... 以此类推,直到收盘。
- 这样,对于每只股票 $s$,我们就得到了一个新的、长度为 $T$ 的时间序列 $\bar{V}_{t,s,\cdot}$。这个序列代表了这只股票“典型交易日”的成交量模式。
- 平均后的模型:
- 由于模型(5)是线性的(各项直接相加),对 $V_{t,s,d}$ 求平均,等价于对它右边的每一项分别求平均。
- 平均成交量 ($\bar{V}_{t, s, \cdot}$) = 平均趋势 ($\bar{m}_{t, s, \cdot}$) + 平均周期项 ($\sum (\bar{a}_{j, s, \cdot}) \cos(\lambda_j t)$) + 平均噪声 ($\bar{\varepsilon}_{t, s, \cdot}$)。
- 这个新的平均模型和原始模型长得一模一样,只是所有变量都变成了“平均版”。
- 平均的好处 (信噪比):
- 核心思想: 信号加噪声,多次测量再平均,可以有效地降低噪声。
- 信号: 我们认为,一只股票的周期性模式 $a_j$ 是其内在的、比较稳定的属性。所以不同日期的 $a_{j,s,d}$ 虽然有波动,但其均值 $\bar{a}_{j,s,\cdot}$ 代表了其稳定的周期强度。这是我们想保留的“信号”。
- 噪声: 噪声项 $\varepsilon_{t,s,d}$ 是独立且均值为0的。根据大数定律,当我们将很多个($D$个)这样的噪声相加再取平均时,其结果 $\bar{\varepsilon}_{t,s,\cdot} = \frac{1}{D}\sum_d \varepsilon_{t,s,d}$ 会趋近于0。
- 结果: 通过对 $D$ 天的数据进行平均,我们有效地“平均掉”了大部分随机噪声,使得隐藏在数据中的“信号”(即平均趋势 $\bar{m}$ 和平均周期强度 $\bar{a}$)更加凸显出来。这会大大提高我们后续估计的准确性和稳定性。
- 目标转变:
- 现在,我们的目标从估计海量的、每天都不同的 $a_{j,s,d}$,转变为对于每只股票 $s$,只估计一组“平均强度系数” $\bar{a}_{j,s,\cdot}$。参数数量大大减少,问题变得可行。
💡 [数值示例]
假设我们有AAPL在2天 ($D=2$) 的数据。
在 $t=100$ (比如上午10点) 这个时刻:
- Day 1: $V_{100, \text{AAPL}, 1} = 1500$ 股。
- Day 2: $V_{100, \text{AAPL}, 2} = 1700$ 股。
那么,AAPL在 $t=100$ 的平均成交量是:
$\bar{V}_{100, \text{AAPL}, \cdot} = (1500 + 1700) / 2 = 1600$ 股。
我们对所有 $t=1, \dots, T$ 都这样做,就得到了AAPL的“典型日”成交量曲线 $\bar{V}_{t, \text{AAPL}, \cdot}$。
假设模型分解如下:
- Day 1: $V_{100, \text{AAPL}, 1} = m_1 + a_1 \cos(\dots) + \varepsilon_1 = 1400 + 150 - 50 = 1500$
- Day 2: $V_{100, \text{AAPL}, 2} = m_2 + a_2 \cos(\dots) + \varepsilon_2 = 1450 + 200 + 50 = 1700$
平均之后:
$\bar{V}_{100, \text{AAPL}, \cdot} = \bar{m} + \bar{a} \cos(\dots) + \bar{\varepsilon} = \frac{1400+1450}{2} + \frac{150+200}{2}\cos(\dots) + \frac{-50+50}{2}$
$= 1425 + 175 \cos(\dots) + 0 = 1600$
可以看到,平均成交量1600被分解为了平均趋势1425,平均周期贡献 $175 \cos(\dots)$,和被完全抵消掉的平均噪声0。
我们的目标就是从 $\bar{V}_{t, \text{AAPL}, \cdot}$ 这条曲线上,估计出那个平均强度 $\bar{a} = 175$。
⚠️ [易错点]
- 平均的假设: 这种平均方法隐含了一个假设,即一只股票的周期结构在不同日期是“统计上相似的”。它旨在发现稳定的、重复出现的周期模式。如果某只股票的周期模式每天都发生根本性的、无规律的变化,那么平均可能会掩盖而不是揭示信息。
- 样本代表性: 我们用来平均的 $D$ 天数据,需要能代表这只股票的“一般”情况。如果这 $D$ 天恰好都是财报发布日或者市场崩盘日,那么得到的“平均模式”将是有偏的,不能代表普通交易日的情况。
📝 [总结]
本小节提出通过对一只股票的多日成交量数据进行逐点平均,来构造一个代表“典型交易日”的平均成交量序列。这样做极大地提高了信噪比,并将一个复杂的、多参数的估计问题,简化为对每只股票估计一组更稳定、更有代表性的平均强度系数 $\bar{a}_{j, s, \cdot}$ 的问题。
🎯 [存在目的]
本节的目的是解决模型(5)带来的“维度灾难”(参数过多的问题),并提高估计的稳健性。在信号处理和实验科学中,通过重复实验和平均来降噪是一种最基本、最有效的方法。作者将这一思想应用到金融时间序列分析中,为后续的精确估计铺平了道路。
🧠 [直觉心智模型]
你是一位肖像画家,要为一个很有名的、表情多变的人(股票 $s$)画一幅最能代表其神韵的肖像($\bar{a}_{j,s,\cdot}$)。
- 你不在他某一天(日期 $d$)摆一个特定表情时画他,因为那可能只是他瞬间的情绪 ($a_{j,s,d}$)。
- 你的方法是,在连续 $D$ 天里,每天都给他拍成千上万张照片 ($V_{t,s,d}$)。
- 然后,你用电脑技术,将这 $D$ 天的所有照片进行“平均叠加”,生成一张“平均的脸” ($\bar{V}_{t,s,\cdot}$)。在这张平均脸上,所有瞬时的、随机的表情(比如眨眼、撇嘴,对应 $\varepsilon$)都被模糊和抵消了,而他最本质的、最稳定的五官特征(比如眼睛的大小、鼻梁的高度,对应 $\bar{a}_j$)则变得异常清晰。
- 你最终在这张“平均脸”上进行测量和绘画,得到的肖像就能最好地抓住这个人的神髓。
💭 [直观想象]
想象你站在一个固定的海岸观测点,连续观测了 $D=30$ 天的海浪情况。
- 每一天的海浪 ($V_{t,d}$) 都不完全一样。今天可能风大浪高,明天可能风平浪静。
- 你把这30天里,每一天的同一时刻(比如每天中午12:00:00, 12:00:03, ...)的海浪高度记录下来,然后计算这30个高度的平均值。
- 你对每个时刻都这样做,最终得到一条“平均海浪”曲线 ($\bar{V}_{t,\cdot}$)。
- 这条“平均海浪”曲线,会非常平滑地反映出由月亮和太阳引力决定的、非常稳定的潮汐周期(比如12.4小时的周期),而由每天天气变化引起的那些随机的大风大浪($\varepsilon_{t,d}$)则在平均过程中被大大削弱了。
- 你在这条更干净的“平均海浪”曲线上进行分析,能更准确地测量出各种潮汐周期的强度。
3.3 步骤1:消除趋势
📜 [原文9]
步骤 1。消除趋势。谱估计的第一步是消除趋势项,它对应于美国(或中国)市场典型日内交易成交量的一般 U 型(或双 U 型)。设 $q$ 为一个非负整数,在我们的实证分析中将其设为 100。我们通过滚动窗口移动平均来估计 $\bar{m}_{t, s, \cdot}$:
$$
\hat{\bar{m}}_{t, s, \cdot}=\frac{1}{2 q+1} \sum_{j=-q}^{q} \bar{V}_{t+j, s, \cdot}, \quad q+1 \leq t \leq T-q
$$
因此,趋势项的方差可以通过 $\hat{\bar{m}}_{t, s, \cdot}$ 的样本方差来估计:
$$
\hat{\gamma}_{T}^{\bar{m}_{s, \cdot}}(0)=\frac{1}{T-2 q} \sum_{t=q+1}^{T-q}\left(\hat{\bar{m}}_{t, s, \cdot}-\frac{1}{T-2 q} \sum_{t=q+1}^{T-q} \hat{\bar{m}}_{t, s, \cdot}\right)^{2}
$$
📖 [逐步解释]
这是估计流程的第一个具体操作步骤:从平均成交量序列 $\bar{V}_{t,s,\cdot}$ 中,估计并分离出趋势项 $\bar{m}_{t,s,\cdot}$。
- 目的: 谱分析(即周期分析)对非平稳的趋势非常敏感。U型的趋势本身就是一个巨大的、周期为一天的低频信号,它的能量非常大,会掩盖掉我们感兴趣的那些更高频、更精细的周期。因此,在分析周期之前,必须先把这个强大的趋势项移除。这就像想听清楚乐队里的短笛声,得先把音量巨大的低音炮关掉一样。
- 方法: 作者使用了金融时间序列分析中最常用的去趋势方法之一:滚动窗口移动平均 (rolling window moving average)。
- 思想: 一个时间点 $t$ 的趋势值,可以用它附近一段时间的成交量的平均值来近似。因为趋势是缓慢变化的,而周期和噪声是快速变化的,所以在一段时间内取平均,快速变化的成分会因为正负振荡而相互抵消,只剩下缓慢变化的趋势。
- 窗口: 这个“附近的一段时间”被称为“窗口”,其大小由参数 $q$ 决定。窗口的总宽度是 $2q+1$ 个时间点。
- 滚动: 之所以叫“滚动”,是因为这个窗口在时间序列上不断向前移动。为了计算 $t$ 时刻的趋势,我们用 $t$ 前后 $q$ 个点。为了计算 $t+1$ 时刻的趋势,我们把整个窗口向前移动一格,用 $t+1$ 前后 $q$ 个点。
- 参数 $q$ 的选择:
- 作者选择 $q=100$。这意味着窗口宽度是 $2 \times 100 + 1 = 201$ 个时间点。
- 一个时间点是3秒,所以窗口的时间跨度是 $201 \times 3 = 603$ 秒,大约是10分钟。
- 这个选择的含义是: 我们假设,任何周期短于10分钟的波动都属于我们想要分析的“周期项”,而任何比10分钟更长、更平滑的变化都属于“趋势”。
- 移动平均是一个“低通滤波器”,它让低频信号(长周期,慢变化)通过,而滤掉高频信号(短周期,快变化)。$q$ 越大,窗口越宽,滤波效果越强,得到的趋势线就越平滑。
- 估计趋势方差:
- 在得到趋势序列 $\hat{\bar{m}}_{t,s,\cdot}$ 之后,我们可以用标准的样本方差公式来计算它的方差 $\hat{\gamma}_T^{\bar{m}_{s,\cdot}}(0)$。
- 这个值将在后面的方差分解中用到,用来衡量U型趋势对总波动的贡献有多大。
- 注意求和的范围是从 $q+1$ 到 $T-q$,因为在序列的开头和结尾的 $q$ 个点,我们无法构成一个完整的窗口,所以无法计算它们的移动平均值。
💡 [数值示例]
假设我们有一小段平均成交量序列 $\bar{V}_t = \{10, 20, 15, 80, 25, 30, 12\}$,并且选择 $q=1$。
窗口宽度是 $2q+1 = 3$。
- 计算 $\hat{\bar{m}}_t$:
- $t=1$: 无法计算,因为需要 $t-1$ 的数据。
- $t=2$: $\hat{\bar{m}}_2 = \frac{1}{3}(\bar{V}_1+\bar{V}_2+\bar{V}_3) = \frac{1}{3}(10+20+15) = 15$。
- $t=3$: $\hat{\bar{m}}_3 = \frac{1}{3}(\bar{V}_2+\bar{V}_3+\bar{V}_4) = \frac{1}{3}(20+15+80) = \frac{115}{3} \approx 38.3$。
- $t=4$: $\hat{\bar{m}}_4 = \frac{1}{3}(\bar{V}_3+\bar{V}_4+\bar{V}_5) = \frac{1}{3}(15+80+25) = \frac{120}{3} = 40$。
- $t=5$: $\hat{\bar{m}}_5 = \frac{1}{3}(\bar{V}_4+\bar{V}_5+\bar{V}_6) = \frac{1}{3}(80+25+30) = \frac{135}{3} = 45$。
- $t=6$: $\hat{\bar{m}}_6 = \frac{1}{3}(\bar{V}_5+\bar{V}_6+\bar{V}_7) = \frac{1}{3}(25+30+12) = \frac{67}{3} \approx 22.3$。
- $t=7$: 无法计算。
我们得到的趋势序列是(在有效范围内): $\{15, 38.3, 40, 45, 22.3\}$。
可以看到,原始序列中那个非常突兀的80,在趋势序列中被“平滑”掉了,变成了围绕40左右的一个小高峰。
- 计算 $\hat{\gamma}^{\bar{m}}(0)$:
- 首先计算这个趋势序列的均值: $\text{avg} = (15+38.3+40+45+22.3)/5 \approx 32.1$。
- 然后计算方差: $\hat{\gamma}^{\bar{m}}(0) = \frac{1}{5}[ (15-32.1)^2 + \dots + (22.3-32.1)^2 ]$。这是一个直接的计算,这里不展开。
⚠️ [易错点]
- $q$ 的选择是艺术: $q$ 的选择非常关键。
- 如果 $q$ 太小,窗口太窄,移动平均就不能有效地滤掉周期和噪声,估计出的趋势 $\hat{\bar{m}}_t$ 会“过于晃动”,仍然包含很多高频成分。这违反了假设2(趋势和周期正交)。
- 如果 $q$ 太大,窗口太宽,移动平均会过度平滑,可能会把一些我们感兴趣的、较长的周期也当成趋势给滤掉了。
- 作者选择 $q=100$ (约10分钟),是基于他们希望保留所有比10分钟短的周期来进行分析的意图。
- 边界效应: 移动平均法在序列的开头和结尾处会丢失 $q$ 个数据点。当 $T$ 很大而 $q$ 相对较小时,这影响不大。但如果 $q$ 很大,则会浪费不少数据。有一些更复杂的滤波方法可以减轻边界效应,但移动平均因其简单直观而被广泛使用。
📝 [总结]
谱估计的第一步是去趋势。本节采用滚动窗口移动平均法,通过一个宽度为 $2q+1$ 的窗口来平滑平均成交量序列,从而得到对U型趋势的估计 $\hat{\bar{m}}_t$。这个过程可以被看作是一个低通滤波器,旨在分离慢变的趋势和快变的周期。同时,也给出了如何估计该趋势项方差的方法。
🎯 [存在目的]
本步骤的目的是为后续的谱分析“清理场地”。如果不先移除强大的低频趋势,谱分析的结果将被这个趋势的巨大能量所主导,使得那些能量小但有意义的高频周期信号被淹没,无法被准确识别和测量。这是一个预处理步骤,对保证后续步骤的有效性至关重要。
🧠 [直觉心智模型]
你是一位天文学家,想用望远镜研究一颗遥远恒星(高频周期)的微弱光变。
- 问题: 你在城市里进行观测,城市的灯光(U型趋势)非常明亮,它把整个夜空都照亮了,使得你看不到那颗暗淡的恒星。
- 解决方案 (移动平均): 你给望远镜装上了一个特殊的滤光片。这个滤光片可以滤掉大片的、平滑的背景光(比如城市灯光),但能让那些点状的、快速闪烁的星光通过。这个滤光片就是移动平均。
- 步骤1的目的: 就是先用这个滤光片,把城市灯光这个背景干扰给减掉,得到一张更“干净”的星空图像(去趋势序列 $X_t$),然后再对这张干净的图像进行精细分析。
💭 [直观想象]
你有一张照片,上面有一只小猫,但照片是在一个有很强炫光的窗户前拍的,整个照片泛白,看不清小猫的细节。
- 原始成交量 $V_t$: 有炫光的原始照片。
- U型趋势 $m_t$: 大面积的、平滑的炫光。
- 周期和噪声 $X_t$: 小猫身上的花纹和细节。
- 移动平均 (步骤1): 你用Photoshop里的一个“去除背景”或“调整对比度”的工具。这个工具会识别出大片平滑的颜色(炫光),并将其整体调暗或移除。这个工具就是移动平均。
- 结果: 得到一张去除了炫光的、小猫细节更清晰的照片。这就是去趋势后的序列 $\hat{X}_t$。
3.4 步骤2:估计自协方差
📜 [原文10]
步骤 2。估计自协方差。我们将去趋势时间序列 $\bar{V}_{t, s, \cdot}-\hat{\bar{m}}_{t, s, \cdot}$ 作为观测到的 $\bar{X}_{t, s, \cdot}$,并估计其在 $-n \leq h \leq n$ 范围内的自协方差函数 $\gamma_{T}^{\bar{X}_{s, \cdot}}(h)$:
$$
\hat{\gamma}_{T}^{\bar{X}_{s, \cdot}}(h)=\frac{1}{T-2 q-h} \sum_{t=q+1}^{T-q-h}\left(\bar{X}_{t, s, \cdot}-\frac{1}{T-2 q} \sum_{t=q+1}^{T-q} \bar{X}_{t, s, \cdot}\right)\left(\bar{X}_{t+h, s, \cdot}-\frac{1}{T-2 q} \sum_{t=q+1}^{T-q} \bar{X}_{t, s, \cdot}\right) .
$$
📖 [逐步解释]
这是估计流程的第二步:在“清理好场地”之后,我们开始测量我们真正感兴趣的东西——去趋势序列的自协方差。
- 构造去趋势序列:
- 第一步,我们得到了平均成交量 $\bar{V}_{t,s,\cdot}$ 和它的趋势估计 $\hat{\bar{m}}_{t,s,\cdot}$。
- 现在,我们直接将两者相减,得到去趋势序列的估计值:
$\hat{\bar{X}}_{t,s,\cdot} = \bar{V}_{t,s,\cdot} - \hat{\bar{m}}_{t,s,\cdot}$
- 这个新的序列 $\hat{\bar{X}}_{t,s,\cdot}$ 就是我们认为主要由周期项和噪声项构成的序列。它的U型趋势已经被移除了,看起来更像是在一个固定的均值上下波动的序列。
- 应用自协方差公式:
- 接下来,我们对这个刚刚得到的 $\hat{\bar{X}}_{t,s,\cdot}$ 序列,使用标准样本自协方差公式(即公式2)来计算它的自协方差。
- 这个公式就是步骤2中给出的那个长公式,它看起来复杂,但本质上和公式(2)一模一样,只是把里面的 $p_t$ 换成了 $\hat{\bar{X}}_{t,s,\cdot}$,并且调整了求和的边界。
- 计算范围:
- 我们需要计算滞后 $h$ 从多少到多少的自协方差?
- 作者指出,计算范围是 $-n \leq h \leq n$。
- 回忆一下,$n=500$ 是我们在频率选择时设定的周期个数。我们需要计算从滞后-500到+500的自协方差值。
- 为什么是这个范围?因为下一步的傅里叶变换需要用到这一整段的自协方差信息,才能分辨出 $n=500$ 个不同频率的强度。输入序列的长度(这里是 $2n+1$)决定了傅里叶变换输出的频率分辨率。
- 由于自协方差函数是一个偶函数,即 $\gamma(h) = \gamma(-h)$,所以我们实际上只需要计算 $h=0, 1, \ldots, n$ 的值,然后就可以知道负滞后部分的值。
- 公式细节:
- 公式中的 $\frac{1}{T-2q} \sum \bar{X}_{t,s,\cdot}$ 是在计算去趋势序列 $\hat{\bar{X}}_{t,s,\cdot}$ 的样本均值。理论上,如果去趋势很完美,这个均值应该接近于0。
- 求和的范围 $t$ 从 $q+1$ 到 $T-q-h$ 是为了确保 $t$ 和 $t+h$ 都落在我们有有效数据点的区间 $[q+1, T-q]$ 之内。
💡 [数值示例]
继续用步骤1的例子:
原始序列 $\bar{V}_t = \{10, 20, 15, 80, 25, 30, 12\}$
趋势序列 $\hat{\bar{m}}_t$ (在有效区间) = $\{15, 38.3, 40, 45, 22.3\}$
- 计算 $\hat{\bar{X}}_t$:
- $\hat{\bar{X}}_2 = \bar{V}_2 - \hat{\bar{m}}_2 = 20 - 15 = 5$
- $\hat{\bar{X}}_3 = \bar{V}_3 - \hat{\bar{m}}_3 = 15 - 38.3 = -23.3$
- $\hat{\bar{X}}_4 = \bar{V}_4 - \hat{\bar{m}}_4 = 80 - 40 = 40$
- $\hat{\bar{X}}_5 = \bar{V}_5 - \hat{\bar{m}}_5 = 25 - 45 = -20$
- $\hat{\bar{X}}_6 = \bar{V}_6 - \hat{\bar{m}}_6 = 30 - 22.3 = 7.7$
我们得到的去趋势序列 $\hat{\bar{X}}_t$ (在有效区间) = $\{5, -23.3, 40, -20, 7.7\}$。
可以看到,U型趋势没有了,序列现在围绕0上下波动。
- 计算 $\hat{\gamma}^{\bar{X}}(h)$:
- 首先计算 $\hat{\bar{X}}_t$ 的均值: $\text{mean}(\hat{\bar{X}}) = (5-23.3+40-20+7.7)/5 = 1.88$。
- 计算 $\hat{\gamma}^{\bar{X}}(0)$ (方差):
$\hat{\gamma}^{\bar{X}}(0) = \frac{1}{5-0} [ (5-1.88)^2 + (-23.3-1.88)^2 + (40-1.88)^2 + (-20-1.88)^2 + (7.7-1.88)^2 ]$
这是一个纯粹的计算,结果会是一个正数。
- 计算 $\hat{\gamma}^{\bar{X}}(1)$ (滞后1):
$\hat{\gamma}^{\bar{X}}(1) = \frac{1}{5-1} [ (5-1.88)(-23.3-1.88) + (-23.3-1.88)(40-1.88) + \dots ]$
同样,这是一个直接的计算。
我们会对 $h=0, 1, 2, \dots, n$ (这里是 $n=500$) 都计算一遍,得到一个长长的自协方差序列 $\{\hat{\gamma}(0), \hat{\gamma}(1), \ldots, \hat{\gamma}(500)\}$。这个序列就是我们送入下一步进行傅里叶变换的输入。
⚠️ [易错点]
- 均值的处理: 在计算自协方差时,减去样本均值是标准做法。如果去趋势步骤做得很好,$\hat{\bar{X}}_t$ 的均值应该非常接近0,减不减影响不大。但严谨起见,最好还是减去。
- 计算复杂度: 这一步的计算量是比较大的。对于每个滞后 $h$,都需要遍历一次长度约为 $T$ 的序列。总的计算复杂度大约是 $O(n \times T)$。在本文的设定中 ($T=7800, n=500$),这是完全可以接受的。
📝 [总结]
步骤2是一个承上启下的步骤。它首先利用步骤1的结果,通过相减得到关键的分析对象——去趋势时间序列 $\hat{\bar{X}}_t$。然后,它系统地计算了这个序列从滞后0到$n$的自协方差,生成了一个自协方差序列 $\hat{\gamma}^{\bar{X}}(h)$。这个序列是连接时域和频域的桥梁,也是下一步傅里叶分析的直接输入。
🎯 [存在目的]
本步骤的目的是将理论上的分析工具(自协方差函数)应用到我们经过预处理的数据上,从而得到一个数值序列,这个序列根据定理1,包含了我们想要的所有关于周期强度的信息。这是从抽象理论走向数值计算的关键一步。
🧠 [直觉心智模型]
回到肖像画家的比喻。
- 在步骤1,你得到了一张去除了背景炫光的“平均脸”照片 $\hat{\bar{X}}_t$。
- 在步骤2,你开始对这张干净的照片进行测量。你拿出各种尺寸的卡尺(对应滞后 $h$)。
- 你测量照片上相距为 $h=1$ 毫米的任意两点的“相似度”(协方差),然后取平均,得到 $\hat{\gamma}(1)$。
- 你又测量相距为 $h=2$ 毫米的点的相似度,得到 $\hat{\gamma}(2)$。
- ...
- 你一直测量到 $h=500$ 毫米,得到了一组完整的测量数据 $\{\hat{\gamma}(0), \hat{\gamma}(1), \ldots, \hat{\gamma}(500)\}$。这组数据详细描述了这张“平均脸”在不同空间尺度上的结构特征。下一步,你就要分析这组数据,来判断这张脸上到底有哪些主要的特征(比如眼睛、鼻子,对应周期)。
💭 [直观想象]
回到海浪分析的比喻。
- 在步骤1,你得到了一条剔除了宏观潮汐趋势的“纯波浪”数据曲线 $\hat{\bar{X}}_t$。
- 在步骤2,你开始分析这条曲线的内在结构。
- 你问:如果当前时刻是一个波峰,那么在1秒之后($h=1$),它倾向于变成波峰还是波谷?你通过计算 $\hat{\gamma}(1)$ 来回答。
- 你又问:如果当前是波峰,那么在10秒之后($h=10$)呢?你计算 $\hat{\gamma}(10)$。
- 你系统地计算了所有感兴趣的时间滞后 $h=0, 1, \dots, 500$ 对应的自协方差,得到一个函数图像。这个图像本身可能也像波浪一样起伏,它蕴含了原始波浪中所有周期成分的信息。
3.5 步骤3:估计强度系数
📜 [原文11]
步骤 3。估计强度系数。根据定理 1,当样本数量很大时,(3) 中的极限为:
$$
\begin{aligned}
\gamma_{T}^{\bar{X}_{s, \cdot}}(-h)=\gamma_{T}^{\bar{X}_{s, \cdot}}(h) & \xrightarrow{\text { a.s. }} \frac{1}{2} \sum_{j=1}^{n} \bar{a}_{j, s, \cdot}^{2} \cos \left(\lambda_{j} h\right)+\frac{\mathbf{1}_{h=0}}{D} \sigma_{s}^{2} \\
& =\frac{1}{4} \sum_{j=1}^{n} \bar{a}_{j, s, \cdot}^{2}\left(e^{i \lambda_{j} h}+e^{-i \lambda_{j} h}\right)+\frac{\mathbf{1}_{h=0}}{D} \sigma_{s}^{2} \\
& =\sum_{j=-n}^{-1} \frac{1}{4} \bar{a}_{-j, s, \cdot}^{2} e^{i \frac{\pi}{n} j h}+\frac{\mathbf{1}_{h=0}}{D} \sigma_{s}^{2}+\sum_{j=1}^{n} \frac{1}{4} \bar{a}_{j, s, \cdot}^{2} e^{i \frac{\pi}{n} j h}
\end{aligned}
$$
因此,当 $T$ 很大时,我们可以近似地将
$$
\left(\hat{\gamma}_{T}^{\bar{X}_{s, \cdot}}(-n), \hat{\gamma}_{T}^{\bar{X}_{s, \cdot}}(-n+1), \ldots, \hat{\gamma}_{T}^{\bar{X}_{s, \cdot}}(0), \ldots, \hat{\gamma}_{T}^{\bar{X}_{s, \cdot}}(n-1), \hat{\gamma}_{T}^{\bar{X}_{s, \cdot}}(n)\right)
$$
视为 $\left(\bar{a}_{n, s, \cdot}^{2}, \bar{a}_{n-1, s, \cdot}^{2}, \ldots, \sigma_{s}^{2}, \ldots, \bar{a}_{n-1, s, \cdot}^{2}, \bar{a}_{n, s, \cdot}^{2}\right)$ 的 DFT。因此,我们通过对估计的自协方差 $\gamma_{T}^{\bar{X}_{s, \cdot}}(h)$ 应用离散傅里叶反变换来估计强度系数:
$$
\hat{\bar{a}}_{j, s, \cdot}^{2}=\frac{2}{n}\left(\sum_{h=1}^{n} \hat{\gamma}_{T}^{\bar{X}_{s, \cdot}}(h)\left(e^{-i \frac{\pi}{n} h j}+e^{i \frac{\pi}{n} h j}\right)+\hat{\gamma}_{T}^{\bar{X}_{s, \cdot}}(0)\right)=\frac{2}{n}\left(2 \sum_{h=1}^{n} \hat{\gamma}_{T}^{\bar{X}_{s, \cdot}}(h) \cos \left(\frac{j \pi}{n} h\right)+\hat{\gamma}_{T}^{\bar{X}_{s, \cdot}}(0)\right) .
$$
在附录 C 中,我们使用合成数据验证了我们模型的有效性。
📖 [逐步解释]
这是整个估计流程的最后一步,也是最高潮的部分:从自协方差序列中“榨取”出我们最终想要的强度系数 $a_j^2$。
- 理论回顾与变形:
- 作者首先重写了定理1的结论,并做了一些数学上的变形,目的是把它变成一个标准的离散傅里叶变换(DFT)的形式。
- 第一步变形: 利用欧拉公式 $\cos(x) = \frac{e^{ix} + e^{-ix}}{2}$,将 $\cos(\lambda_j h)$ 替换掉。这样,原来基于余弦的表达式就变成了基于复指数 $e^{i\lambda_j h}$ 的表达式。这是傅里叶分析的标准语言。
- 第二步变形: 作者将求和范围从 $j=1,\dots,n$ 扩展到了 $j=-n, \dots, n$。这是一个技巧,使得公式的形式与标准的DFT公式完全对应起来。这里定义了 $\bar{a}_{-j}^2 = \bar{a}_j^2$。
- 变形后的结论: 这个变形说明,我们观测到的自协方差序列 $\gamma(h)$ (作为 $h$ 的函数),可以被看作是另一个序列(主要是我们想求的 $\frac{1}{4}\bar{a}_j^2$)的傅里叶变换的结果。
- 噪声项的处理: 注意这里的噪声方差变成了 $\sigma_s^2 / D$。这是因为我们在分析的是平均了 $D$ 天的序列 $\bar{X}_{t,s,\cdot}$,之前我们推导过它的噪声方差会减小 $D$ 倍。
- 傅里叶反变换:
- 核心逻辑: 如果 A 是 B 的傅里叶变换,那么 B 就是 A 的傅里叶反变换。
- 既然自协方差序列 $\gamma(h)$ 是强度序列 $a_j^2$ 的傅里叶变换,那么反过来,我们想求的强度序列 $a_j^2$ 就是我们已知的自协方差序列 $\gamma(h)$ 的傅里叶反变换!
- 这就是本步骤的核心思想:对步骤2中计算出的自协方差序列 $\{\hat{\gamma}^{\bar{X}}(h)\}_{h=-n}^n$ 应用离散傅里叶反变换算法,就能得到强度 $\{\hat{\bar{a}}_j^2\}_{j=1}^n$ 的估计值。
- 最终的估计公式:
- 作者给出了最终的计算公式。它看起来很复杂,但它就是离散傅里叶余弦变换 (Discrete Cosine Transform, DCT) 的一个具体表达式。
- 第一个等号后的公式: 这是用复指数形式写的。注意 $e^{-i\frac{\pi}{n}hj} + e^{i\frac{\pi}{n}hj} = 2\cos(\frac{\pi}{n}hj)$。
- 第二个等号后的公式: 这是更直观的、用余弦写的形式。它告诉我们,为了计算第 $j$ 个频率上的强度 $\hat{\bar{a}}_j^2$,我们需要:
- 将自协方差序列 $\hat{\gamma}(h)$ (for $h=1..n$) 与一个对应的余弦波 $\cos(\frac{j\pi}{n}h)$逐点相乘,然后求和。这本质上是在计算 $\hat{\gamma}(h)$ 与频率为 $j\pi/n$ 的余弦基函数的“相关性”。
- 如果 $\hat{\gamma}(h)$ 本身就含有很强的 $j\pi/n$ 频率成分,那么这个乘积求和的结果就会很大。
- 最后加上 $\hat{\gamma}(0)$ 项,并乘以一个归一化常数 $\frac{2}{n}$。
💡 [数值示例]
假设 $n=2$。我们想估计 $\hat{\bar{a}}_1^2$ 和 $\hat{\bar{a}}_2^2$。
我们在步骤2中已经计算出了自协方差: $\{\hat{\gamma}(0), \hat{\gamma}(1), \hat{\gamma}(2)\}$。
- 计算 $\hat{\bar{a}}_1^2$ (对应频率 $\lambda_1=\pi/2$):
$\hat{\bar{a}}_1^2 = \frac{2}{2} [ 2(\hat{\gamma}(1)\cos(\frac{1\pi}{2}\cdot 1) + \hat{\gamma}(2)\cos(\frac{1\pi}{2}\cdot 2)) + \hat{\gamma}(0) ]$
$= [ 2(\hat{\gamma}(1)\cos(\pi/2) + \hat{\gamma}(2)\cos(\pi)) + \hat{\gamma}(0) ]$
$= [ 2(\hat{\gamma}(1) \cdot 0 + \hat{\gamma}(2) \cdot (-1)) + \hat{\gamma}(0) ]$
$= \hat{\gamma}(0) - 2\hat{\gamma}(2)$
- 计算 $\hat{\bar{a}}_2^2$ (对应频率 $\lambda_2=\pi$):
$\hat{\bar{a}}_2^2 = \frac{2}{2} [ 2(\hat{\gamma}(1)\cos(\frac{2\pi}{2}\cdot 1) + \hat{\gamma}(2)\cos(\frac{2\pi}{2}\cdot 2)) + \hat{\gamma}(0) ]$
$= [ 2(\hat{\gamma}(1)\cos(\pi) + \hat{\gamma}(2)\cos(2\pi)) + \hat{\gamma}(0) ]$
$= [ 2(\hat{\gamma}(1) \cdot (-1) + \hat{\gamma}(2) \cdot 1) + \hat{\gamma}(0) ]$
$= \hat{\gamma}(0) - 2\hat{\gamma}(1) + 2\hat{\gamma}(2)$
数值代入: 假设我们从数据中算得 $\hat{\gamma}(0)=54, \hat{\gamma}(1)=0, \hat{\gamma}(2)=-50$。(近似定理1例子中的无噪声情况)
- $\hat{\bar{a}}_1^2 = 54 - 2(-50) = 154$
- $\hat{\bar{a}}_2^2 = 54 - 2(0) + 2(-50) = -46$
结果分析:
- 我们估计出 $\hat{\bar{a}}_1^2$ 是一个很大的正数,说明频率为 $\pi/2$ 的周期非常显著。
- 我们估计出 $\hat{\bar{a}}_2^2$ 是一个负数。理论上强度平方不应为负。这通常是由于样本噪声、模型设定误差或频谱泄露造成的。在实践中,负的估计值通常被当作0来处理,表示在该频率上没有检测到显著的周期能量。
⚠️ [易错点]
- 负估计值: 如上例所示,由于估计误差,$\hat{\bar{a}}_j^2$ 算出来可能是负数。这是一个常见的现象,特别是在信号很弱的频率上。通常的处理方式是 $max(0, \hat{\bar{a}}_j^2)$,即把负值强行置为0。
- 算法实现: 没人会手写这个求和公式。在实际编程中,我们会使用高效的快速傅里叶变换 (FFT) 库(例如 Python中的 numpy.fft 或 scipy.fft)来完成这个计算。这些库的算法复杂度是 $O(n \log n)$,远快于直接求和的 $O(n^2)$。
- 与功率谱的关系: $\hat{\bar{a}}_j^2$ 的集合 $\{ \hat{\bar{a}}_1^2, \hat{\bar{a}}_2^2, \ldots, \hat{\bar{a}}_n^2 \}$ 本质上就是这个时间序列的“功率谱密度函数”(Periodogram)的估计。它展示了序列的方差是如何分布在不同频率上的。
📝 [总结]
步骤3是整个估计过程的终点。它利用傅里叶分析的强大威力,通过对步骤2得到的自协方差序列进行离散傅里叶反变换(具体来说是余弦变换),成功地反解出了每个预设频率 $\lambda_j$ 上对应的周期强度的平方 $\bar{a}_j^2$。至此,我们便完成了从原始的、复杂的成交量数据中量化其内部周期结构的核心任务。
🎯 [存在目的]
本步骤的目的是给出从自协方差函数求解强度系数的具体数学公式和操作方法。它将前面所有的理论铺垫(定理1)和数据处理(步骤1和2)汇集在一起,得出了最终的量化结果。它是整个方法的“临门一脚”。
🧠 [直觉心智模型]
你是一位密码破译专家。
- 自协方差序列 $\hat{\gamma}(h)$: 这是你截获到的一段加密信息。它看起来是杂乱无章的数字。
- 傅里叶变换 (步骤3): 这是你的“解码器”。你把加密信息输入解码器。
- 强度系数 $\hat{\bar{a}}_j^2$: 解码器输出的结果。你发现,在第5、10、30个频道上,解码器输出了非常强的信号,而其他频道都是噪声。
- 结论: 你破译了!原始信息是用5分钟、10分钟和30分钟的周期加密的。$\hat{\bar{a}}_j^2$ 就是告诉你每个周期的“信息量”有多大。
💭 [直观想象]
你面前有一个毛玻璃屏风,屏风后面有几个不同颜色的灯泡在闪烁。你看不清灯泡,只能看到屏风上混合在一起的、模糊的光斑($\bar{X}_t$)。
- 步骤2: 你不去分析光斑本身,而是分析光斑的“自相关性” $\hat{\gamma}(h)$。你发现屏风上相距10厘米的两点,其亮度变化高度同步,而相距5厘米的两点则倾向于反向变化。你把这些测量结果记录下来。
- 步骤3: 你把这些记录($\hat{\gamma}(h)$序列)输入一台“光谱分析仪”(傅里叶变换)。
- 结果: 分析仪的屏幕上显示出几条谱线:在红色区域有一条很高的谱线,蓝色区域有一条中等高度的谱线,而绿色区域几乎没有信号。
- 结论: 你推断出,屏风后面有一个很亮的红色灯泡和一个中等亮度的蓝色灯泡在闪烁,而没有绿色灯泡。$\hat{\bar{a}}_{\text{red}}^2$ 和 $\hat{\bar{a}}_{\text{blue}}^2$ 就是这些谱线的高度,代表了每种颜色灯泡的强度。
4行间公式索引
1. 公式 (1):
$$
V_{t}:=m_{t}+X_{t}=m_{t}+\sum_{j=1}^{n} a_{j} \cos \left(\lambda_{j} t\right)+\varepsilon_{t}, \quad 0<\lambda_{1}<\cdots<\lambda_{j}<\cdots<\lambda_{n}<\pi
$$
解释: 这是核心的谱表示模型,将成交量 ($V_t$) 分解为趋势 ($m_t$)、周期和 ($\sum a_j \cos(\lambda_j t)$) 和噪声 ($\varepsilon_t$) 三个部分。
2. 公式 (2):
$$
\gamma_{T}^{p}(h):=\frac{1}{T-h} \sum_{t=1}^{T-h}\left(p_{t}-\bar{p} .\right)\left(p_{t+h}-\bar{p} .\right)
$$
解释: 这是样本自协方差函数的定义,用于测量一个时间序列在滞后 $h$ 时的自我相关性。
3. 公式 (3):
$$
\gamma_{T}^{X}(h) \xrightarrow{\text { a.s. }} \frac{1}{2} \sum_{j=1}^{n} a_{j}^{2} \cos \left(\lambda_{j} h\right)+\mathbf{1}_{h=0} \sigma^{2}
$$
解释: 定理1的核心结论,建立了去趋势序列的自协方差函数与其周期强度平方 ($a_j^2$) 之间的傅里叶余弦变换关系。
4. 公式 (4):
$$
\gamma_{T}^{V}(0)-\gamma_{T}^{m}(0) \xrightarrow{\text { a.s. }} \sigma^{2}+\frac{1}{2} \sum_{j=1}^{n} a_{j}^{2} .
$$
解释: 推论1的核心结论,将去趋势后的成交量方差分解为噪声方差 ($\sigma^2$) 和所有周期项贡献的方差之和。
5. 公式 (5):
$$
V_{t, s, d}:=m_{t, s, d}+X_{t, s, d}=m_{t, s, d}+\sum_{j=1}^{n} a_{j, s, d} \cos \left(\lambda_{j} t\right)+\varepsilon_{t, s, d}
$$
解释: 将基础模型(1)扩展到面板数据场景,允许每个股票($s$)、每个交易日($d$)都有其独特的参数。
6. 平均成交量模型:
$$
\bar{V}_{t, s, \cdot}=\bar{m}_{t, s, \cdot}+\bar{X}_{t, s, \cdot}=\bar{m}_{t, s, \cdot}+\sum_{j=1}^{n} \bar{a}_{j, s, \cdot} \cos \left(\lambda_{j} t\right)+\bar{\varepsilon}_{t, s, \cdot}
$$
解释: 对多日数据进行平均后得到的“典型日”模型,所有参数都变为平均值。
7. 平均模型各分量定义:
$$
\bar{m}_{t, s, \cdot}=\frac{1}{D} \sum_{d=1}^{D} m_{t, s, d}, \quad \bar{X}_{t, s \cdot}=\frac{1}{D} \sum_{d=1}^{D} X_{t, s, d}, \quad \bar{a}_{j, s \cdot \cdot}=\frac{1}{D} \sum_{d=1}^{D} a_{j, s, d}, \quad \bar{\varepsilon}_{t, s \cdot \cdot}=\frac{1}{D} \sum_{d=1}^{D} \varepsilon_{t, s, d}
$$
解释: 定义了平均模型中各个分量是如何通过对每日分量求平均得到的。
8. 趋势估计公式:
$$
\hat{\bar{m}}_{t, s, \cdot}=\frac{1}{2 q+1} \sum_{j=-q}^{q} \bar{V}_{t+j, s, \cdot}, \quad q+1 \leq t \leq T-q
$$
解释: 使用滚动窗口移动平均法来估计趋势项的具体计算公式。
9. 趋势方差估计公式:
$$
\hat{\gamma}_{T}^{\bar{m}_{s, \cdot}}(0)=\frac{1}{T-2 q} \sum_{t=q+1}^{T-q}\left(\hat{\bar{m}}_{t, s, \cdot}-\frac{1}{T-2 q} \sum_{t=q+1}^{T-q} \hat{\bar{m}}_{t, s, \cdot}\right)^{2}
$$
解释: 估计出的趋势项的样本方差计算公式。
10. 去趋势序列自协方差估计公式:
$$
\hat{\gamma}_{T}^{\bar{X}_{s, \cdot}}(h)=\frac{1}{T-2 q-h} \sum_{t=q+1}^{T-q-h}\left(\bar{X}_{t, s, \cdot}-\frac{1}{T-2 q} \sum_{t=q+1}^{T-q} \bar{X}_{t, s, \cdot}\right)\left(\bar{X}_{t+h, s, \cdot}-\frac{1}{T-2 q} \sum_{t=q+1}^{T-q} \bar{X}_{t, s, \cdot}\right) .
$$
解释: 对去趋势后的序列计算其样本自协方差的具体公式。
11. 自协方差的傅里叶形式:
$$
\begin{aligned}
\gamma_{T}^{\bar{X}_{s, \cdot}}(-h)=\gamma_{T}^{\bar{X}_{s, \cdot}}(h) & \xrightarrow{\text { a.s. }} \frac{1}{2} \sum_{j=1}^{n} \bar{a}_{j, s, \cdot}^{2} \cos \left(\lambda_{j} h\right)+\frac{\mathbf{1}_{h=0}}{D} \sigma_{s}^{2} \\
& =\frac{1}{4} \sum_{j=1}^{n} \bar{a}_{j, s, \cdot}^{2}\left(e^{i \lambda_{j} h}+e^{-i \lambda_{j} h}\right)+\frac{\mathbf{1}_{h=0}}{D} \sigma_{s}^{2} \\
& =\sum_{j=-n}^{-1} \frac{1}{4} \bar{a}_{-j, s, \cdot}^{2} e^{i \frac{\pi}{n} j h}+\frac{\mathbf{1}_{h=0}}{D} \sigma_{s}^{2}+\sum_{j=1}^{n} \frac{1}{4} \bar{a}_{j, s, \cdot}^{2} e^{i \frac{\pi}{n} j h}
\end{aligned}
$$
解释: 将定理1的结论通过欧拉公式和扩展求和范围,变形为标准的离散傅里叶变换形式。
12. 强度系数估计公式:
$$
\hat{\bar{a}}_{j, s, \cdot}^{2}=\frac{2}{n}\left(\sum_{h=1}^{n} \hat{\gamma}_{T}^{\bar{X}_{s, \cdot}}(h)\left(e^{-i \frac{\pi}{n} h j}+e^{i \frac{\pi}{n} h j}\right)+\hat{\gamma}_{T}^{\bar{X}_{s, \cdot}}(0)\right)=\frac{2}{n}\left(2 \sum_{h=1}^{n} \hat{\gamma}_{T}^{\bar{X}_{s, \cdot}}(h) \cos \left(\frac{j \pi}{n} h\right)+\hat{\gamma}_{T}^{\bar{X}_{s, \cdot}}(0)\right) .
$$
解释: 这是通过对样本自协方差序列进行离散傅里叶反变换(余弦变换)来估计强度系数平方的最终计算公式。
13. 强度系数估计公式:
$$
\hat{\bar{a}}_{j, s, \cdot}^{2}=\frac{2}{n}\left(\sum_{h=1}^{n} \hat{\gamma}_{T}^{\bar{X}_{s, \cdot}}(h)\left(e^{-i \frac{\pi}{n} h j}+e^{i \frac{\pi}{n} h j}\right)+\hat{\gamma}_{T}^{\bar{X}_{s, \cdot}}(0)\right)=\frac{2}{n}\left(2 \sum_{h=1}^{n} \hat{\gamma}_{T}^{\bar{X}_{s, \cdot}}(h) \cos \left(\frac{j \pi}{n} h\right)+\hat{\gamma}_{T}^{\bar{X}_{s, \cdot}}(0)\right) .
$$
解释: 这是通过对样本自协方差序列进行离散傅里叶反变换(余弦变换)来估计强度系数平方的最终计算公式。
[[END_OF_RESPONSE]]所有解释内容已全部输出完毕。