第 01 章 金融收益率及其统计特征
对应 Tsay《Analysis of Financial Time Series》(第 3 版)第 1 章。这一章是整册的地基:它规定了我们研究的对象(收益率而不是价格)、描述这些对象的语言(分布、矩、条件分布、似然),以及贯穿全书的几条实证事实(尖峰厚尾、波动聚集、个股与指数的差异)。
学习目标
读完本章,你应当能够:
- 准确区分简单收益率、对数收益率、超额收益率、含分红收益率,知道它们各自在"跨时间累加"和"跨资产加权"时的规则。
- 正确计算年化收益:理解几何平均与算术平均的差别,以及两者之间约 \(\sigma^2/2\) 的"波动拖累"。
- 计算样本偏度、超额峰度,并用 \(6/T\)、\(24/T\) 的渐近方差和 Jarque–Bera 统计量检验正态性。
- 说出收益率候选分布(正态、对数正态、稳定分布、正态尺度混合)各自的优缺点,会用对数正态矩公式在对数收益和简单收益之间换算。
- 理解"联合分布 = 一串条件分布之积"的分解,以及它如何给出时间序列模型的似然函数——这是后面 ARMA、GARCH 估计的统一出发点。
读前导读
这一章在解决什么问题
这一章做两件事:统一"收益率"这门语言,然后说明真实收益率长什么样。
第一件事你在 CFA 一级的 Quantitative Methods 和 GIPS 部分都见过:持有期收益、几何平均与算术平均、连续复利。本章把它们重新放在一起,强调两条规则:跨时间累加用对数收益,跨资产加权用简单收益。CFA 里你记住了"几何平均 ≤ 算术平均",本章告诉你差多少:约 \(\sigma^2/2\),这个数来自 \(\ln(1+x)\) 的二阶泰勒展开。
第二件事是统计描述。CFA 讲过偏度、峰度和"金融收益厚尾",但多半停在定性层面。本章给出可以直接计算的检验(偏度 t 检验、峰度 t 检验、Jarque–Bera),并引出一个贯穿全册的想法:如果方差本身随时间随机变化,那么即使每一天的收益都是正态的,混在一起看也会厚尾。这正是第 03a 章 GARCH 的出发点。
最后,1.5 节把"联合密度 = 条件密度连乘"写成似然函数。你在 CFA 二级见过 OLS 回归,但没见过时间序列的极大似然。本章的 (1.18) 是一个模板,后面 ARMA、GARCH 的估计都只是往里面填不同的 \(\mu_t\) 和 \(\sigma_t^2\)。
需要先想起来的数学
1. 泰勒展开(一阶、二阶)。 函数在某点附近可以用多项式近似:\(f(x)\approx f(0)+f'(0)x+\tfrac12 f''(0)x^2\)。对 \(\ln(1+x)\),\(f'(0)=1\),\(f''(0)=-1\),所以 \(\ln(1+x)\approx x-x^2/2\)。数值例子:\(x=0.05\) 时 \(\ln1.05=0.04879\),一阶近似 0.05,二阶近似 \(0.05-0.00125=0.04875\),二阶几乎精确。久期是价格对收益率的一阶展开,凸性是二阶项,道理相同。见 第 00 册第 02 章 导数与泰勒展开。
2. 极限与 \(e\)。 \((1+r/m)^m\) 在 \(m\to\infty\) 时趋于 \(e^r\),这就是连续复利。\(e^x\) 和 \(\ln x\) 互为反函数,\(\ln(ab)=\ln a+\ln b\),所以"乘积取对数变成求和"。见 第 00 册第 04 章 级数与收敛 和 第 00 册第 01 章 函数极限与连续。
3. 积分形式的期望与密度。 连续随机变量的期望 \(E[g(X)]=\int g(x)f(x)\,dx\),联合分布函数是联合密度的二重积分,"把 \(Y\) 积分掉"就得到 \(X\) 的边际分布。你只需把积分理解成"连续版的加权求和"。见 第 00 册第 03 章 积分。
4. 矩母函数与 Jensen 不等式。 正态变量 \(X\sim N(\mu,\sigma^2)\) 满足 \(E(e^X)=e^{\mu+\sigma^2/2}\),这是对数正态矩公式 (1.17) 的来源。Jensen 不等式说:对凸函数 \(g\),\(E[g(X)]\ge g(E[X])\),例如 \(E(X^2)\ge(EX)^2\)(就是方差非负)。见 第 00 册第 07 章 概率中的分析工具。
5. 依分布收敛记号 \(\xrightarrow{d}\)。 表示"样本量 \(T\) 很大时,这个统计量的分布接近右边那个分布"。读作"渐近服从",用法和 CFA 里"大样本下用 z 检验"一样。
怎么读这一章
1.2 节(收益率定义)和 1.3.3 节(正态性检验)是核心必读,尤其 1.2.2 的波动拖累和 1.2.5 的组合收益规则,回测中天天用到。1.4.3 的四种候选分布要读懂"正态尺度混合为什么厚尾"那一段,它是第 03a 章的伏笔。1.5.2 的似然函数必须读懂,后面每章都会回到它。1.3.1 的联合/边际/条件分布如果概率课学得扎实可以快速扫过;1.4.2 离散性、1.7 其他过程第一次可以只看结论。建议顺序:1.2 → 1.3.2–1.3.3 → 1.4.3 → 1.5.2 → 1.6,最后跑一遍量化实战的代码。
1.1 研究对象:为什么是收益率
金融时间序列分析研究的是资产价值随时间的演化(asset valuation over time)。它和一般时间序列分析的关键区别在于:金融理论本身和实证序列都带着不确定性。例如波动率(volatility)有多种定义,而且不能直接观测,必须通过统计模型去估计。因此统计理论和方法在这里格外重要。
那为什么我们几乎总是研究收益率而不是价格?Campbell, Lo & MacKinlay(1997)给了两条理由:
- 对普通投资者来说,收益率是投资机会的完整且无量纲(scale-free)的概括。100 元的股票涨 1 元和 10 元的股票涨 1 元,含义完全不同,收益率把它们放到同一尺度上。
- 收益率序列的统计性质比价格序列"好处理"得多。价格通常没有固定水平(第 02b 章会说明它是单位根非平稳的),而收益率往往接近平稳,可以用平稳时间序列的工具分析。
下面先把各种收益率的定义和关系弄清楚。这部分看似简单,却是回测和绩效计算中最常见的出错来源。
1.2 收益率的定义
设 \(P_t\) 为资产在 \(t\) 时刻的价格,暂不考虑分红。
1.2.1 单期与多期简单收益率
从 \(t-1\) 到 \(t\) 持有一期,简单总收益率(simple gross return)为
简单净收益率(simple net return,常简称简单收益率)为
从 \(t-k\) 持有到 \(t\),共 \(k\) 期,多期简单总收益率是各期总收益率之积,称复合收益率(compound return):
对应的净收益率为 \(R_t[k]=(P_t-P_{t-k})/P_{t-k}\)。
1.2.2 年化收益率:几何平均而不是算术平均
不注明时间间隔时,收益率默认按年计。持有 \(k\) 年的年化收益率(annualized return)是各年总收益率的几何平均:
右边的写法说明:几何平均等价于"先取对数、做算术平均、再取指数"。当单期收益很小时,利用 \(\ln(1+x)\approx x\)、\(e^x\approx 1+x\) 的一阶 Taylor 展开,
Tsay 特别提醒:这个近似在某些应用中精度不够。原因是把展开做到二阶,\(\ln(1+R)\approx R-R^2/2\),于是
其中 \(\sigma^2\) 是单期收益的方差。收益波动越大,算术平均对真实复利增长的高估越严重。一个极端的例子:第一年 \(+50\%\)、第二年 \(-50\%\),算术平均为 0,但财富变成 \(1.5\times0.5=0.75\),几何平均约为 \(-13.4\%\)。这就是常说的波动拖累(volatility drag)。
推导拆解:\(\sigma^2/2\) 是怎么来的? 第一步:几何平均 \(g\) 满足 \(\ln(1+g)=\frac1k\sum\ln(1+R_j)\)(上面那个式子两边取对数)。 第二步:对右边每一项用二阶泰勒展开 \(\ln(1+R)\approx R-R^2/2\),得到 \(\frac1k\sum R_j-\frac1{2k}\sum R_j^2=\bar R-\tfrac12\overline{R^2}\)。 第三步:样本二阶矩 \(\overline{R^2}=\sigma^2+\bar R^2\)(方差 = 二阶矩 − 均值平方),而日、月收益的 \(\bar R^2\) 远小于 \(\sigma^2\),可略去,于是右边 \(\approx\bar R-\sigma^2/2\)。 第四步:左边 \(\ln(1+g)\approx g\)(一阶展开),所以 \(g\approx\bar R-\sigma^2/2\)。 数值检验:年波动 20% 时 \(\sigma^2/2=0.02\),即算术平均比 CAGR 高约 2 个百分点。用 \(\pm50\%\) 的例子,\(\sigma^2/2=0.125\),近似得 \(-12.5\%\),与精确值 \(-13.4\%\) 接近;波动这么大时三阶以上的项不可忽略,所以略有误差。
1.2.3 连续复利
年利率 10%、本金 1 美元,一年付息 \(m\) 次时,年末净值为 \((1+0.1/m)^m\)。原书表 1.1 给出:
| 付息方式 | 次数 \(m\) | 年末净值 |
|---|---|---|
| 每年 | 1 | 1.10000 |
| 每半年 | 2 | 1.10250 |
| 每季 | 4 | 1.10381 |
| 每月 | 12 | 1.10471 |
| 每周 | 52 | 1.10506 |
| 每日 | 365 | 1.10516 |
| 连续 | \(\infty\) | \(e^{0.1}=1.10517\) |
\(m\to\infty\) 时 \((1+r/m)^m\to e^r\),得到连续复利(continuous compounding)。一般地,初始资本 \(C\)、年利率 \(r\)、持有 \(n\) 年,终值与现值为
(1.5) 就是连续复利下的现值(present value),期权定价(第 08 册)中的贴现因子 \(e^{-r\ell}\) 即来源于此。
1.2.4 对数收益率
资产的连续复利收益率又称对数收益率(log return):
它有两个优点:
- 时间上可加。多期对数收益是单期之和:
\[r_t[k]=\ln(1+R_t[k])=\sum_{j=0}^{k-1}\ln(1+R_{t-j})=r_t+r_{t-1}+\cdots+r_{t-k+1}.\]
- 统计性质更易处理。和的分布比积的分布好研究;如果单期对数收益是正态的,多期对数收益仍然是正态的。
两者的换算:\(r_t=\ln(1+R_t)\),\(R_t=e^{r_t}-1\)。若以百分比表示,则 \(r_t=100\ln(1+R_t/100)\),\(R_t=100(e^{r_t/100}-1)\)。
例 1.1(原书)月对数收益率 4.46%,对应的简单收益率为 \(100[\exp(0.0446)-1]=4.56\%\)。若一季度内三个月的对数收益率分别为 4.46%、−7.34%、10.77%,则季度对数收益率为 \(4.46-7.34+10.77=7.89\%\)——直接相加即可,这就是对数收益的方便之处。
1.2.5 组合收益率:只有简单收益可以加权
设组合把价值比例 \(w_i\) 投入资产 \(i\)(\(\sum w_i=1\)),则组合的简单收益是成分资产简单收益的加权平均:
推导很直接:组合期末价值 \(=\sum_i w_iV(1+R_{it})=V(1+\sum_iw_iR_{it})\)。但对数收益没有这个性质,因为 \(\ln(\sum w_ie^{r_{it}})\neq\sum w_ir_{it}\);只有当收益都很小时才近似成立 \(r_{p,t}\approx\sum w_ir_{it}\)。
金融直觉:可以把它想成会计里的"金额可加、比率不可加"。各资产期末市值是金额,金额能直接加总,所以简单收益(金额变动 / 期初金额)按期初市值权重加权就是组合收益。对数收益是 \(\ln\) 之后的量,\(\ln\) 不是线性函数,"先取对数再加权"和"先加权再取对数"不相等。而且由 Jensen 不等式(\(\ln\) 是凹函数),\(\sum w_i r_{it}\le r_{p,t}\),对数收益加权总是低估组合的真实对数收益,波动越大低估越多。练习 2 的 ±20% 例子里差了约 2 个百分点。
把两条规则放在一起记:
时间上累加用对数收益(或简单总收益连乘);横截面上加权用简单收益。
量化回测中最常见的错误之一,就是把各资产的对数收益按权重相加当作组合收益。在大波动时期,这个误差会很明显。
1.2.6 分红、超额收益与多空头寸
含分红收益。若 \(D_t\) 为 \(t-1\) 到 \(t\) 之间支付的分红,\(P_t\) 为不含分红的价格,则
原书实证数据(芝加哥大学 CRSP 数据库)中的收益都含分红。
超额收益(excess return)是资产收益与某个参考资产收益之差,参考资产常取短期国库券(T-bill):
金融文献把超额收益看作一个"做多该资产、做空参考资产、初始投入为零"的套利组合的收益。
多头与空头。多头(long)指持有资产;空头(short)指借入资产卖出,日后买回同样数量归还,因此价格下跌对空头有利。注意一个回测细节:持有空头期间若标的发放现金分红,空头必须自掏腰包向出借方支付等额分红。
1.3 分布与矩:一个快速回顾
研究收益率就是研究一组随机变量 \(\{r_{it};\ i=1,\dots,N;\ t=1,\dots,T\}\) 的分布。下面回顾本书要用到的概率工具(系统的概率论见第 02 册,统计推断见第 03 册)。
1.3.1 联合、边际与条件分布
联合分布(joint distribution):\(F_{X,Y}(x,y;\theta)=P(X\le x,Y\le y;\theta)\),\(\theta\) 为参数。若联合密度存在,\(F_{X,Y}(x,y)=\int_{-\infty}^x\int_{-\infty}^y f(w,z)\,dz\,dw\)。
边际分布(marginal distribution):\(F_X(x;\theta)=F_{X,Y}(x,\infty;\theta)\),即把 \(Y\) 积分掉。标量情形就是累积分布函数(CDF),单调不减,\(F(-\infty)=0\),\(F(\infty)=1\)。
分位数(quantile):\(x_p=\inf_x\{x\mid p\le F_X(x)\}\)(\(\inf\) 读作"下确界",可以先理解为"满足条件的最小的 \(x\)")称为第 \(100p\) 百分位数。在险价值 VaR 本质上就是损失分布的分位数(第 07a 章)。
条件分布(conditional distribution):条件密度
等价地写成乘法形式
(1.9) 看似平凡,却是时间序列极大似然估计的核心:把一段序列的联合密度拆成"一步一步的条件密度"之积(见 1.5 节)。\(X\) 与 \(Y\) 独立当且仅当 \(f_{x|y}=f_x\)。
1.3.2 矩、偏度与峰度
第 \(\ell\) 阶原点矩 \(m'_\ell=E(X^\ell)\),中心矩 \(m_\ell=E[(X-\mu_x)^\ell]\)。一阶矩是均值 \(\mu_x\),二阶中心矩是方差 \(\sigma_x^2\)。正态分布由前两阶矩唯一确定;对其他分布,三阶、四阶矩提供额外信息:
- 偏度(skewness)\(S\) 衡量不对称性。正态分布 \(S=0\)。
- 峰度(kurtosis)\(K\) 衡量尾部厚度。正态分布 \(K=3\),所以把 \(K-3\) 称为超额峰度(excess kurtosis)。超额峰度为正称厚尾或尖峰(heavy tails, leptokurtic),样本中更容易出现极端值;为负称短尾(platykurtic),例如有限区间上的均匀分布。
软件陷阱:不同软件的 kurtosis 含义不同。R 的 fBasics::kurtosis 和 Python 的 scipy.stats.kurtosis(默认 fisher=True)输出超额峰度;原书提到的 S-Plus 输出的是普通峰度(未减 3)。读输出前先查文档。
样本估计。设样本 \(\{x_1,\dots,x_T\}\):
1.3.3 正态性检验
在正态假设下,\(\hat S\) 与 \(\hat K-3\) 渐近服从均值为 0、方差分别为 \(6/T\) 与 \(24/T\) 的正态分布。于是:
- 偏度检验:\(H_0:S(r)=0\),统计量 \(t=\hat S(r)/\sqrt{6/T}\),\(|t|>Z_{\alpha/2}\) 时拒绝(\(Z_{\alpha/2}\) 是标准正态的上 \(\alpha/2\) 分位数)。
- 峰度检验:\(H_0:K(r)-3=0\),统计量 \(t=[\hat K(r)-3]/\sqrt{24/T}\)。
- Jarque–Bera 检验(1987)把两者合在一起:
\[JB=\frac{\hat S^2(r)}{6/T}+\frac{[\hat K(r)-3]^2}{24/T}\ \xrightarrow{d}\ \chi^2_2 .\]它就是两个渐近独立的标准正态统计量的平方和,所以自由度为 2。p 值小于显著性水平时拒绝正态。
白话解释:这三个检验和 CFA 里的均值 t 检验是同一个套路:(估计值 − 原假设下的值)/ 标准误。区别只在标准误。正态分布下样本偏度的标准误是 \(\sqrt{6/T}\),超额峰度的标准误是 \(\sqrt{24/T}\),这两个数是理论推出来的常数,记住即可。例如 \(T=2500\) 个交易日(约 10 年),偏度标准误约 0.049,超额峰度标准误约 0.098。所以样本超额峰度只要超过 0.2 左右就显著,而日收益动辄 5–10,几乎必然拒绝正态。 JB 把两个 z 统计量各自平方再相加。一个标准正态的平方服从 \(\chi^2_1\),两个独立的相加服从 \(\chi^2_2\);\(\chi^2_2\) 的 5% 临界值是 5.99。注意:样本很大时 JB 对微小偏离也会拒绝,所以"拒绝正态"本身信息不多,要看偏离的方向和大小(峰度大多少、偏向哪边)。
例 1.2(原书,IBM 日简单收益)数据为 1970-01-02 起到 2008 年底的 IBM 日简单收益,\(T=9845\)。以百分比计,样本均值 0.0402、标准差 1.693、偏度 0.0614、超额峰度 9.916。
- 偏度检验:\(t=0.0614/\sqrt{6/9845}=0.0614/0.0247=2.49\),双侧 p 值约 0.013,5% 水平下显著右偏。
- 对数收益 \(100\ln(1+R_t/100)\) 的均值 t 检验:\(t=1.5126\),p=0.1304,不能拒绝"期望收益为零"。
- 对数收益的 JB 统计量为 60921.9,p 值小于 \(2.2\times10^{-16}\),强烈拒绝正态。
注意这个例子的"规模感":日收益超额峰度接近 10,而正态分布为 0。几乎所有日频金融收益都会得到类似结论。
1.4 收益率的分布
1.4.1 最一般的框架
最一般的模型是所有资产、所有时期对数收益的联合分布:
\(\mathbf Y\) 为描述经济环境的状态向量,\(\theta\) 为参数。这个分布太一般,没有直接的实用价值,但它给了一个"定位"各类模型的坐标系:
- 资本资产定价模型 CAPM(Sharpe 1964)关心的是同一时刻 \(N\) 个资产的横截面联合分布;
- 时间序列模型关心的是单个资产随时间的动态结构。本册第 02a–07b 章的单变量分析就属于后者。
对单个资产 \(i\),把它的 \(T\) 期收益的联合分布按时间顺序反复使用 (1.9),得到分解
密度形式为
推导拆解:(1.16) 只是把 (1.9) 用了 \(T-1\) 次。以 \(T=3\) 为例: 第一步,把 \((r_1,r_2)\) 看成 \(Y\)、\(r_3\) 看成 \(X\),用 (1.9):\(f(r_1,r_2,r_3)=f(r_3\mid r_2,r_1)\,f(r_1,r_2)\)。 第二步,对 \(f(r_1,r_2)\) 再用一次 (1.9):\(f(r_1,r_2)=f(r_2\mid r_1)\,f(r_1)\)。 合起来:\(f(r_1,r_2,r_3)=f(r_1)\,f(r_2\mid r_1)\,f(r_3\mid r_2,r_1)\)。\(T\) 期时依此类推,每一步都把"最新的一期"剥离出来,条件放在它之前的全部历史上。 这个分解不需要任何假设,对任何分布都成立。它的价值在于:时间序列模型通常只告诉你"给定过去,今天怎么分布",而这正好就是每个因子 \(f(r_t\mid\text{过去})\)。
于是建模的核心问题变成:条件分布 \(F(r_{it}\mid r_{i,t-1},\dots)\) 怎么设定、怎么随时间演化。 第 02a 章的 ARMA 设定条件均值,第 03a 章的 GARCH 设定条件方差,第 04a 章的非线性模型设定更一般的条件结构。
随机游走假说(random-walk hypothesis)的一种版本说:条件分布等于边际分布。那么收益在时间上独立、不可预测,(1.15) 退化为边际分布之积。
1.4.2 离散性:高频价格不是连续的
在高频层面,价格只能按最小报价单位(tick size)变动。纽约证券交易所(NYSE)1997 年 7 月以前的 tick 是 1/8 美元,1997 年 7 月到 2001 年 1 月是 1/16 美元;2000 年 8 月起分批试点十进制报价,2001-01-29 起 NYSE 与 AMEX 全部改为十进制。离散性对高频收益分布影响很大,第 05 章(及本套教材第 07 册)再讨论。
1.4.3 候选的边际分布
条件分布比边际分布更重要,但边际分布更容易估计;而且很多资产收益的序列相关很弱,边际分布与条件分布相差不大。文献中提出过以下几种边际分布。
(1) 正态分布。 传统假设简单收益 \(R_{it}\) 独立同分布(iid)正态。它有三个困难:
- 简单收益的下界是 −1(最多亏光),而正态分布没有下界;
- 若单期 \(R_{it}\) 正态,多期 \(R_{it}[k]\) 是总收益的乘积,不再是正态;
- 实证收益普遍有正的超额峰度。
(2) 对数正态分布(lognormal)。假设对数收益 \(r_t\) iid \(N(\mu,\sigma^2)\),于是 \(1+R_t=e^{r_t}\) 服从对数正态,自动满足 \(R_t>-1\),且多期对数收益仍正态。利用正态变量的矩母函数 \(E(e^{X})=e^{\mu+\sigma^2/2}\),可得
反过来,若已知简单收益的均值 \(m_1\) 和方差 \(m_2\),则对数收益的均值与方差为
推导拆解:(1.17) 的两步。 均值:\(1+R_t=e^{r_t}\),\(r_t\sim N(\mu,\sigma^2)\),直接用矩母函数 \(E(e^{r_t})=e^{\mu+\sigma^2/2}\),减 1 即得。 方差:\(\operatorname{Var}(R_t)=\operatorname{Var}(e^{r_t})=E(e^{2r_t})-[E(e^{r_t})]^2\)。\(2r_t\sim N(2\mu,4\sigma^2)\),再用一次矩母函数得 \(E(e^{2r_t})=e^{2\mu+2\sigma^2}\)。所以方差 \(=e^{2\mu+2\sigma^2}-e^{2\mu+\sigma^2}=e^{2\mu+\sigma^2}(e^{\sigma^2}-1)\)。 为什么多出 \(\sigma^2/2\):\(e^x\) 是凸函数,由 Jensen 不等式 \(E(e^{r})>e^{E(r)}\)。直观上,上涨时 \(e^r\) 放大得多、下跌时缩小得少,波动越大,均值被往上拉得越多。这和期权的凸性收益是同一回事。
(1.17) 有一个很实用的含义:用对数收益模型预测简单收益或价格时,\(E(R_t)\neq e^{\mu}-1\),要加上 \(\sigma^2/2\) 的修正,否则预测会系统性偏低。第 02b 章季节模型的例 2.3 把对数 EPS 的预测反变换回 EPS 时,用的就是这个关系。
对数正态的缺点是:它仍然无法解释正的超额峰度。
(3) 稳定分布(stable distribution)。稳定分布族对加法封闭,正好适合对数收益的时间聚合,也能刻画厚尾。但非正态的稳定分布方差无穷,这与绝大多数以方差为核心的金融理论冲突,统计建模也困难。代表是 Cauchy 分布,密度 \(f(x)=\dfrac{1}{\pi(1+x^2)}\),关于中位数对称、均值和方差都不存在。
(4) 正态尺度混合(scale mixture of normals)。设 \(r_t\sim N(\mu,\sigma^2)\),但 \(\sigma^2\) 本身是随机的(例如 \(\sigma^{-2}\) 服从 Gamma 分布)。最简单的是有限混合:
\(\sigma_1^2\) 小、\(\sigma_2^2\) 大。取 \(\alpha=0.05\),意思是 95% 的收益来自"平静"状态,5% 来自"剧烈"状态。剧烈状态偶尔出现,就把尾部拉厚了。优点:保持了正态的易处理性,所有阶矩有限,又能刻画超额峰度;缺点:混合参数(如 \(\alpha\))很难估计。
可以算出混合分布(设 \(\mu=0\))的峰度:\(E(r^4)=3[(1-\alpha)\sigma_1^4+\alpha\sigma_2^4]\),\(E(r^2)=(1-\alpha)\sigma_1^2+\alpha\sigma_2^2\),由 Jensen 不等式 \(E(r^4)/[E(r^2)]^2>3\)(只要 \(\sigma_1\neq\sigma_2\))。这也预告了第 03a 章的核心思想:方差随时间随机变化,会让无条件分布呈现厚尾。
推导拆解:把"随机的方差"记作 \(V\),它以概率 \(1-\alpha\) 取 \(\sigma_1^2\)、以概率 \(\alpha\) 取 \(\sigma_2^2\)。 第一步(条件期望):给定 \(V\),\(r\sim N(0,V)\),正态的四阶矩是 \(3V^2\)、二阶矩是 \(V\)。 第二步(对 \(V\) 再取期望,即全期望公式):\(E(r^4)=3E(V^2)\),\(E(r^2)=E(V)\)。 第三步:峰度 \(=3E(V^2)/[E(V)]^2\)。因为 \(E(V^2)-[E(V)]^2=\operatorname{Var}(V)>0\),所以比值大于 1,峰度大于 3。 结论很干净:超额峰度 \(=3\operatorname{Var}(V)/[E(V)]^2\),方差本身波动越大(相对于其均值),尾巴越厚。这条式子在第 03a 章算 GARCH 峰度时会再出现。
原书图 1.1 比较了标准正态、Cauchy 与混合 \(0.95N(0,1)+0.05N(0,16)\) 的密度:Cauchy 尾最厚,混合正态次之,标准正态最薄。
1.5 多元收益与似然函数
1.5.1 多元收益
记 \(\mathbf r_t=(r_{1t},\dots,r_{Nt})'\)。第 08a、08b、10 章研究 \(\{\mathbf r_t\}\) 的联合分布,同样按 (1.15) 分解,重点是条件均值向量与条件协方差矩阵如何随时间演化。均值向量 \(\boldsymbol\mu_x=E(\mathbf X)\),协方差矩阵 \(\boldsymbol\Sigma_x=E[(\mathbf X-\boldsymbol\mu_x)(\mathbf X-\boldsymbol\mu_x)']\),样本估计
协方差存在时它们是一致估计。金融文献常假设 \(\mathbf r_t\) 服从多元正态。
1.5.2 收益率的似然函数
若 (1.16) 中的条件分布 \(f(r_t\mid r_{t-1},\dots,r_1;\theta)\) 是均值 \(\mu_t\)、方差 \(\sigma_t^2\) 的正态分布(\(\mu_t\)、\(\sigma_t^2\) 都是过去信息和参数 \(\theta\) 的函数),则
对数似然为
使之最大的 \(\theta\) 就是极大似然估计(maximum-likelihood estimate, MLE)。请把这个式子记牢:
- 若 \(\mu_t\) 由 ARMA 给出、\(\sigma_t^2\) 为常数,就是第 02a 章 ARMA 的(条件)似然;
- 若 \(\sigma_t^2\) 由 GARCH 递推给出,就是第 03a 章 GARCH 的条件似然;
- 把正态密度换成 Student-t、GED 等,就得到非正态条件分布下的似然。
全书大部分模型的估计,都只是在这一个模板里替换 \(\mu_t\)、\(\sigma_t^2\) 和密度函数。常把第一项 \(\ln f(r_1;\theta)\) 略去,得到条件似然;样本大时影响很小。
白话解释:似然函数回答的问题是"如果参数是 \(\theta\),观察到手上这串数据的可能性有多大",MLE 就是挑一个让这串数据"最不意外"的 \(\theta\)。取对数是为了把连乘变成求和,求和更容易求导和数值优化。 看对数似然方括号里的三项:\(\ln(2\pi)\) 是常数,不影响最优解;\((r_t-\mu_t)^2/\sigma_t^2\) 是"标准化后的预测误差平方",惩罚预测得不准;\(\ln\sigma_t^2\) 惩罚把方差设得太大。没有第二项,模型会把 \(\sigma_t^2\) 设成无穷大来让误差项归零;没有第三项,模型不关心预测精度。两项权衡,才得到合理的方差估计。 当 \(\sigma_t^2=\sigma^2\) 是常数时,最大化对数似然就等价于最小化 \(\sum(r_t-\mu_t)^2\),即你在 CFA 二级熟悉的最小二乘。所以 OLS 是"正态 + 常数方差"下 MLE 的特例。
1.6 收益率的实证性质
原书表 1.2 汇总了指数和个股的日、月收益描述统计(百分比,样本截至 2008-12-31;SP 为 S&P 综合指数,VW、EW 为 CRSP 市值加权与等权指数)。摘录代表性数字如下:
| 序列 | 均值 | 标准差 | 偏度 | 超额峰度 | 最小 | 最大 |
|---|---|---|---|---|---|---|
| SP 日简单收益 | 0.029 | 1.056 | −0.73 | 22.81 | −20.47 | 11.58 |
| IBM 日简单收益 | 0.040 | 1.693 | 0.06 | 9.92 | −22.96 | 13.16 |
| Citi-Grp 日简单收益 | 0.067 | 2.602 | 1.80 | 55.25 | −26.41 | 57.82 |
| SP 日对数收益 | 0.023 | 1.062 | −1.17 | 30.20 | −22.90 | 10.96 |
| SP 月简单收益(1926 起) | 0.58 | 5.53 | 0.32 | 9.47 | ||
| EW 月简单收益 | 1.22 | 7.40 | 1.52 | 14.94 | ||
| IBM 月简单收益 | 1.35 | 7.15 | 0.44 | 3.43 | ||
| IBM 月对数收益 | 1.09 | 7.03 | −0.07 | 2.62 |
从这张表可以读出几条一般规律:
- 日收益(无论指数还是个股)的超额峰度都很高;月度上,指数的超额峰度反而高于个股。
- 日收益均值接近 0,月收益均值略大。
- 月收益标准差大于日收益(时间聚合,方差累加)。
- 日收益中,指数的标准差小于个股——这是分散化的效果。
- 偏度不是严重问题。
- 简单收益与对数收益的统计量差别不大(日频尤其如此)。
原书图 1.4 把 IBM 月收益的经验密度与同均值、同方差的正态密度放在一起:经验密度峰更高、更瘦,尾部更厚、支撑更宽——这就是"尖峰厚尾"的直观形象。
1.7 本书研究的其他过程
除了收益率本身,本书还研究:
- 波动率过程(volatility process),即条件方差随时间的演化。原书图 1.2、1.3 的月收益时序图里,收益的变异幅度随时间变化,而且成簇出现,称波动聚集。波动率是期权定价和风险管理的关键输入,是第 03a、03b 章的主题。
- 极端收益。大的负收益对多头风险管理重要,大的正收益对空头重要。第 07b 章研究极值的频率、幅度和影响因素。
- 其他金融序列:利率、汇率、债券收益率、公司季度每股收益(EPS)等。原书图 1.5 是 1953-04 到 2009-02 美国 10 年期与 1 年期国债固定期限利率,两者同步变动,1 年期更易波动;图 1.6 是美元/日元日汇率,偶有大幅跳动。
原书表 1.3 给出几类债券和利率序列的统计(百分比)。例如 Fama 月度债券组合收益(1952-01—2008-12,\(T=684\))中,期限 1–12 个月组合均值 0.45、标准差 0.35、超额峰度 13.14;期限 61–120 个月组合均值 0.55、标准差 1.69、超额峰度 4.79。月度国债利率中,1 年期均值 5.59、标准差 2.98,10 年期均值 6.40、标准差 2.69。规律是:利率的均值随期限上升、标准差随期限下降;债券收益的标准差随期限上升、均值大致稳定;多数序列有正超额峰度。
全书分工:第 02a–04b 章关注收益的前四阶矩(条件均值、条件方差、非线性结构);第 05 章关注小时间间隔(高频与微观结构);第 06 章介绍连续时间模型与期权定价;第 07a、07b 章关注极端收益与 VaR;第 08a、08b、10 章关注多资产的联合动态;第 09 章是主成分与因子模型;第 11a–12b 章是状态空间与 MCMC 方法。
关于软件:原书用 R(Rmetrics 的 fBasics、timeSeries、fGarch 等包)、S-Plus、SCA、RATS 演示。原书附录说明了 R 的 ts() 时间序列对象,例如 ts(gm, frequency=12, start=c(1975,1)) 把 GM 月收益设为从 1975 年 1 月开始的月度序列。本教材统一用 Python(numpy/pandas/scipy/statsmodels/arch)给出示例,对应关系会在各章注明。
量化实战
本章内容在量化中的用途
- 回测的收益计算。组合 PnL 必须用各资产简单收益按权重加权;跨期累计用对数收益相加或简单总收益连乘;年化收益报告 CAGR(几何平均),不要用"日均收益 × 252"去充当复利增长率。两者之差约为 \(\sigma^2/2\),高波动策略的差距可以达到每年几个百分点。
- 数据预处理。因子研究的标准流程是:用复权价格(含分红、拆股调整,即 \(P_t+D_t\) 口径)计算收益,再减无风险利率得到超额收益。做空回测要计入借券期间应付的分红。
- 分布诊断与风险。日收益几乎总是拒绝正态,正态 VaR 会低估尾部风险。偏度/超额峰度/JB 是检查收益、因子收益、模型残差分布的最快诊断;有限混合正态是生成厚尾压力情景的简单工具。
- 预测转换。如果你的模型预测的是对数收益的均值 \(\mu\) 和方差 \(\sigma^2\),要换成简单收益或价格的期望,必须用 \(e^{\mu+\sigma^2/2}\)。
Python 示例:收益计算、波动拖累与正态性检验
下面用 95% 平静期(日波动 1%)+ 5% 剧烈期(日波动 3.5%)的有限混合正态模拟 10 年日频对数收益,演示上面四件事。
import numpy as np
import pandas as pd
from scipy import stats
rng = np.random.default_rng(42)
T = 2520 # 约 10 年日频数据
# 1) 用"有限混合正态"生成厚尾日对数收益:95% 平静期 + 5% 剧烈期
calm, wild, alpha = 0.010, 0.035, 0.05
is_wild = rng.random(T) < alpha
r = np.where(is_wild, rng.normal(0.0004, wild, T), rng.normal(0.0004, calm, T))
price = 100 * np.exp(np.cumsum(r)) # 对数收益累加得到价格
px = pd.Series(price, index=pd.bdate_range("2015-01-01", periods=T))
# 2) 由价格计算简单收益与对数收益
R = px.pct_change().dropna() # R_t = P_t/P_{t-1} - 1
lr = np.log(px).diff().dropna() # r_t = ln P_t - ln P_{t-1}
print("max |R - (e^r - 1)| =", float(np.max(np.abs(R - np.expm1(lr)))))
# 3) 时间聚合:对数收益相加 = 简单总收益连乘
print("总对数收益 %.6f ln(prod(1+R)) %.6f" % (lr.sum(), np.log1p(R).sum()))
# 4) 几何平均 vs 算术平均:差值约为 sigma^2/2(波动拖累)
g_daily = np.expm1(lr.mean()) # 日几何平均收益
a_daily = R.mean() # 日算术平均收益
print("日算术 %.6f, 日几何 %.6f, 差 %.6f, sigma^2/2 = %.6f"
% (a_daily, g_daily, a_daily - g_daily, R.var() / 2))
years = len(R) / 252
cagr = (px.iloc[-1] / px.iloc[0]) ** (1 / years) - 1
print("CAGR = %.4f, 按算术平均复利 = %.4f" % (cagr, (1 + a_daily) ** 252 - 1))
# 5) 描述统计与正态性检验(偏度、超额峰度、JB)
def moment_tests(x):
x = np.asarray(x); n = len(x)
S = stats.skew(x, bias=False)
K = stats.kurtosis(x, fisher=True, bias=False) # 超额峰度
tS, tK = S / np.sqrt(6 / n), K / np.sqrt(24 / n)
JB = tS**2 + tK**2
return dict(n=n, mean=x.mean(), std=x.std(ddof=1), skew=S, exkurt=K,
t_skew=tS, t_kurt=tK, JB=JB, p_JB=1 - stats.chi2.cdf(JB, 2))
res = pd.DataFrame({"daily_log": moment_tests(lr),
"monthly_log": moment_tests(lr.resample("ME").sum())})
print(res.round(4))
# 6) 均值 t 检验:H0: E(r)=0
t, p = stats.ttest_1samp(lr, 0.0)
print("均值 t = %.3f, p = %.3f" % (t, p))
# 7) 对数正态修正:用对数收益参数预测简单收益期望
mu, s2 = lr.mean(), lr.var()
print("E(R) 朴素 e^mu-1 = %.6f, 修正 e^(mu+s2/2)-1 = %.6f, 样本均值 = %.6f"
% (np.expm1(mu), np.expm1(mu + s2 / 2), R.mean()))
关键输出:
max |R - (e^r - 1)| = 9.610368056911511e-16
总对数收益 2.084181 ln(prod(1+R)) 2.084181
日算术 0.000907, 日几何 0.000828, 差 0.000080, sigma^2/2 = 0.000080
CAGR = 0.2318, 按算术平均复利 = 0.2567
daily_log monthly_log
n 2519.0000 116.0000
mean 0.0008 0.0180
std 0.0126 0.0597
skew 0.2849 0.4791
exkurt 7.2640 1.7969
t_skew 5.8386 2.1065
t_kurt 74.4188 3.9504
JB 5572.2527 20.0427
p_JB 0.0000 0.0000
均值 t = 3.295, p = 0.001
E(R) 朴素 e^mu-1 = 0.000828, 修正 e^(mu+s2/2)-1 = 0.000907, 样本均值 = 0.000907
几点解读:
- 算术平均与几何平均的日差值 0.000080 与 \(\sigma^2/2\) 完全吻合;按算术平均复利会把年化收益从 23.2% 高估到 25.7%。
- 这个混合分布理论超额峰度为 \(3[(0.95\cdot0.01^4+0.05\cdot0.035^4)]/(0.95\cdot0.01^2+0.05\cdot0.035^2)^2-3\approx7.39\),样本估计 7.26,JB 强烈拒绝正态。
- 聚合到月度后超额峰度降到 1.8 左右——这正是表 1.2"日频比月频更厚尾"的机制:独立的厚尾冲击相加后向正态靠拢(中心极限定理)。实际数据中月度厚尾衰减得更慢,原因是波动聚集(第 03a 章)。
- 对数正态修正 \(e^{\mu+\sigma^2/2}-1\) 准确地还原了简单收益的样本均值,朴素的 \(e^\mu-1\) 偏低。
本章小结
金融时间序列分析以收益率为主要研究对象:简单收益在横截面上可加权、对数收益在时间上可相加,年化收益是几何平均,比算术平均低约 \(\sigma^2/2\)。描述收益分布要看四阶矩,实证日收益普遍尖峰厚尾,偏度、峰度检验和 JB 检验几乎总是拒绝正态。候选分布中,对数正态解决了下界和时间聚合问题但不能解释厚尾,稳定分布方差无穷,正态尺度混合能产生厚尾而保持易处理性,并预示了"随机方差导致厚尾"的思想。把联合分布分解为条件分布之积 (1.15)–(1.16) 给出了似然函数 (1.18),后面所有 ARMA、GARCH 模型的估计都从这里出发。
| 概念 | 公式 / 要点 |
|---|---|
| 简单收益 | \(R_t=P_t/P_{t-1}-1\);多期 \(1+R_t[k]=\prod_{j=0}^{k-1}(1+R_{t-j})\) |
| 对数收益 | \(r_t=\ln(1+R_t)=p_t-p_{t-1}\);多期 \(r_t[k]=\sum_{j=0}^{k-1}r_{t-j}\) |
| 组合收益 | \(R_{p,t}=\sum w_iR_{it}\)(对数收益仅近似) |
| 年化收益 | 几何平均 \([\prod(1+R)]^{1/k}-1\approx\) 算术平均 \(-\sigma^2/2\) |
| 连续复利 | \(A=Ce^{rn}\),\(C=Ae^{-rn}\) |
| 含分红 / 超额收益 | \(R_t=(P_t+D_t)/P_{t-1}-1\);\(Z_t=R_t-R_{0t}\) |
| 偏度 / 峰度检验 | \(\hat S/\sqrt{6/T}\),\((\hat K-3)/\sqrt{24/T}\) |
| Jarque–Bera | \(JB=\hat S^2/(6/T)+(\hat K-3)^2/(24/T)\sim\chi^2_2\) |
| 对数正态矩 | \(E(R)=e^{\mu+\sigma^2/2}-1\),\(\operatorname{Var}(R)=e^{2\mu+\sigma^2}(e^{\sigma^2}-1)\) |
| 条件分解 | \(f(r_1,\dots,r_T)=f(r_1)\prod_{t\ge2}f(r_t\mid r_{t-1},\dots,r_1)\) |
| 正态条件对数似然 | \(-\frac12\sum[\ln 2\pi+\ln\sigma_t^2+(r_t-\mu_t)^2/\sigma_t^2]\) |
| 典型实证事实 | 尖峰厚尾;日频更厚;指数波动小于个股;波动聚集 |
练习
基础
- 某股票四个季度的简单收益为 10%、−5%、8%、−12%。求年度简单收益、年度对数收益、季度算术平均与几何平均。 提示:年度总收益 \(1.1\times0.95\times1.08\times0.88\);对数收益为其对数,也等于四个季度对数收益之和;几何平均 \(=(\text{年度总收益})^{1/4}-1\)。
- 两资产组合,权重各 50%,某日简单收益分别为 +20% 和 −20%。比较正确的组合收益与"对数收益加权"得到的结果。 答案要点:正确组合简单收益为 0;对数收益加权为 \(0.5[\ln1.2+\ln0.8]=-0.0204\),换回简单收益约 −2.02%,误差约 2 个百分点。
- 若 \(r_t\sim N(0.005,0.04^2)\)(月度),求 \(E(R_t)\) 与 \(\operatorname{Var}(R_t)\),并说明为什么 \(E(R_t)>e^{0.005}-1\)。 提示:用 (1.17),\(E(R_t)=e^{0.0058}-1\approx0.582\%\)。
- 样本 \(T=2500\) 的日收益,样本偏度 −0.4、超额峰度 6。分别做偏度、峰度检验并计算 JB。 答案要点:\(t_S=-0.4/\sqrt{6/2500}\approx-8.16\);\(t_K=6/\sqrt{24/2500}\approx61.2\);\(JB\approx66.7+3750\approx3817\),强烈拒绝正态。
进阶
- 证明有限混合 \((1-\alpha)N(0,\sigma_1^2)+\alpha N(0,\sigma_2^2)\) 的峰度大于 3(\(\sigma_1\neq\sigma_2\)),并求 \(\alpha=0.05\)、\(\sigma_1=1\)、\(\sigma_2=4\)(即原书图 1.1 的设定)时的超额峰度。 提示:峰度 \(=3E(\sigma^4)/[E(\sigma^2)]^2\),由 Jensen 不等式即得;数值为 \(3(0.95+0.05\cdot256)/(0.95+0.05\cdot16)^2-3=3\times13.75/3.0625-3\approx10.47\)。
- 证明 (1.17),并推导由 \((m_1,m_2)\) 反解 \(E(r_t)\)、\(\operatorname{Var}(r_t)\) 的公式。 提示:\(1+m_1=e^{\mu+\sigma^2/2}\),\(m_2/(1+m_1)^2=e^{\sigma^2}-1\),先解出 \(\sigma^2\) 再代回。
- 写出 AR(1) 模型 \(r_t=\phi_0+\phi_1r_{t-1}+a_t\)、\(a_t\sim N(0,\sigma^2)\) 的条件对数似然(以 \(r_1\) 为条件),并说明它与 (1.18) 的关系。 提示:\(\mu_t=\phi_0+\phi_1r_{t-1}\),\(\sigma_t^2=\sigma^2\);最大化等价于对 \(\phi_0,\phi_1\) 做最小二乘。
- 用本章 Python 代码,把剧烈期比例 \(\alpha\) 从 0.01 调到 0.20,画出日、周、月对数收益超额峰度随 \(\alpha\) 的变化,并解释为什么聚合频率越低峰度越小。
原书推荐习题:1.1、1.2(日频与月频描述统计及均值检验)、1.3(平均对数收益与财富终值的复利计算)、1.4(偏度/峰度 t 检验的手算实现)、1.5(汇率收益的厚尾特征)。
原书对照
| 本章小节 | 原书章节 | PDF 页码(书页) |
|---|---|---|
| 1.1 研究对象 | 第 1 章导言 | p.21–22(书页 1–2) |
| 1.2 收益率的定义 | 1.1 Asset Returns | p.22–26(书页 2–6) |
| 1.3 分布与矩 | 1.2.1 Review of Statistical Distributions and Their Moments | p.27–33(书页 7–13) |
| 1.4 收益率的分布 | 1.2.2 Distributions of Returns | p.34–38(书页 14–18) |
| 1.5 多元收益与似然 | 1.2.3 Multivariate Returns;1.2.4 Likelihood Function of Returns | p.38–39(书页 18–19) |
| 1.6 实证性质 | 1.2.5 Empirical Properties of Returns | p.39–42(书页 19–22) |
| 1.7 其他过程 | 1.3 Processes Considered;附录 R Packages | p.42–45(书页 22–25) |
| 练习 | Exercises | p.45–47(书页 25–27) |