量化交易中文教材

第 04a 章 非线性时间序列模型

本章对应 Tsay 原书第 4 章前半(4.1 节)。第 03a、03b 章的波动率模型主要处理"方差的非线性",本章把注意力转到"均值的非线性",并介绍门限、平滑转移、马尔可夫转换、非参数与神经网络五类工具。非线性检验、建模流程、多步预测与预测评估放在第 04b 章。

学习目标

  1. 能用条件均值 \(g(F_{t-1})\) 与条件方差 \(h(F_{t-1})\) 区分"均值非线性"和"方差非线性",并说明 ARMA、GARCH 各属哪一类。
  2. 掌握门限自回归(TAR/SETAR)的定义、几何遍历条件和三个典型性质(爆炸区制下仍可平稳、不可时间反转、无常数项但均值非零),会用网格搜索估计门限。
  3. 理解平滑转移 AR(STAR)与马尔可夫转换 AR(MSA)的构造,能说出 MSA 与 SETAR 在状态是否可观测、预测形式上的区别,会由转移概率计算期望持续期 \(1/w_i\)。
  4. 掌握 Nadaraya–Watson 核回归、局部线性回归和带宽选择(正态参考带宽、留一交叉验证),知道维数灾难以及 FAR、NAAR 如何规避它。
  5. 读懂单隐层前馈神经网络的结构与参数计数,理解原书实证给出的教训:复杂模型在样本外未必胜过带漂移随机游走。

读前导读

这一章在解决什么问题

前几章的模型有一个共同点:明天的预期收益是过去收益的线性组合(ARMA),或者明天的风险随过去冲击变化(GARCH)。这一章问的是:如果收益的动态本身随"状态"改变怎么办? 比如市场大跌之后的反弹规律和平稳上涨时不同,经济衰退期和扩张期的增长动态不同。

你在 CFA 里接触过的几个场景都和本章有关。CFA 二级回归一节讲过虚拟变量和分段回归:给"危机期"加一个虚拟变量,让截距或斜率在危机期不同。门限模型(TAR)就是这个思路,只不过"危机期"不是你事先标注的日期,而是由数据自己决定"前一期跌幅超过多少就换一套系数"。马尔可夫转换模型更进一步,承认我们永远看不到当前是牛市还是熊市,只能给出概率——这和信用风险里的评级迁移矩阵是同一种数学对象(每期以一定概率在状态之间转移)。核回归和神经网络则是"连函数形式都不假设",让数据画出曲线。

本章最重要的一句话在 4.1.1:不相关不等于独立。收益的自相关接近零(看起来像白噪声),并不代表收益不可预测;可预测性可能藏在非线性结构里。最后的神经网络实证则给出反面提醒:模型越灵活,样本外越可能输给最朴素的基准。

需要先想起来的数学

1. 条件期望与条件方差。 \(E(x_t\mid F_{t-1})\) 读作"在已知 \(t-1\) 期及以前所有信息时,\(x_t\) 的预期值"。它是一个随信息变化的随机变量,不是一个固定数。例:AR(1) \(x_t=0.5x_{t-1}+a_t\),已知 \(x_{t-1}=2\) 时条件期望为 1,已知 \(x_{t-1}=-2\) 时为 \(-1\)。条件方差同理。见 第 00 册第 07 章 概率中的分析工具。

2. 示性函数与分段函数。 \(\mathbb 1(A)\) 在条件 \(A\) 成立时取 1,否则取 0,就是回归里的虚拟变量。TAR 的条件均值是分段线性函数,在门限处"拐弯"甚至"跳一下"。

3. Logistic 函数。 \(F(z)=1/(1+e^{-z})\) 把任意实数压到 \((0,1)\):\(F(0)=0.5\),\(F(5)\approx0.993\),\(F(-5)\approx0.007\)。把 \(z\) 乘以一个很大的数(如 1000),它就几乎变成"\(z>0\) 取 1,否则取 0"的阶梯。STAR 和神经网络都用它。见 第 00 册第 04 章 级数与收敛(指数函数部分)。

4. 几何分布与几何级数。 每期以概率 \(w\) "离开",停留期数 \(N\) 满足 \(P(N=n)=(1-w)^{n-1}w\),期望 \(E(N)=1/w\)。求这个期望要用到几何级数求导。见 第 00 册第 04 章 级数与收敛。

5. 加权最小二乘与正规方程。 局部线性回归就是在每个点 \(x\) 做一次 WLS:对 \(a,b\) 求偏导令其为零,解一个 \(2\times2\) 线性方程组。见 第 00 册第 05 章 多元微积分与优化 和 第 00 册第 06 章 线性代数速成。

怎么读这一章

核心必读:4.1(线性的严格含义与均值/方差非线性的分类)、4.3(TAR 与 SETAR,尤其 4.3.1 的三个性质和网格搜索估计)、4.5(马尔可夫转换,含期望持续期和滤波/平滑概率的区别)、4.7.2(神经网络的实证教训)。4.2 双线性模型第一次只需看懂"二阶项能同时影响均值和方差"这一结论。4.4 STAR 理解成"平滑版 TAR"即可。4.6 非参数方法中,4.6.1–4.6.2 的加权平均思想和带宽权衡要读懂,4.6.3 的公式 (4.25) 可以先只记"局部常数 vs 局部直线",4.6.4 浏览即可。建议顺序:4.1 → 4.3 → 4.5 → 4.7 → 4.6 → 4.4 → 4.2,最后读量化实战。


4.1 为什么需要非线性模型

4.1.1 线性的严格含义

先回忆第 02a 章。一个纯随机(purely stochastic)序列 \(\{x_t\}\) 若能写成

\[x_t=\mu+\sum_{i=0}^{\infty}\psi_i a_{t-i},\qquad \psi_0=1,\tag{4.1}\]

其中 \(a_t\) 是 独立同分布(iid)、零均值的连续随机变量,就称它是线性(linear)的;\(\sigma_a^2\sum\psi_i^2<\infty\) 时它弱平稳。ARMA 模型有 MA(\(\infty\)) 表示,所以是线性的。不满足 (4.1) 的过程就是非线性(nonlinear)的。

注意 (4.1) 要求冲击 \(a_t\) 独立,而不仅仅是不相关。Wold 分解告诉我们:任何弱平稳纯随机序列都能写成不相关冲击的线性组合。GARCH 过程正好落在两者之间——它的冲击不相关但不独立(平方相关),因此 GARCH 是非线性的。这是理解本章的第一个关键点:ACF 看起来像白噪声,并不意味着序列不可预测。

白话解释:「不相关」只说明两个变量之间没有线性关系;「独立」说的是一个变量的取值对另一个变量的分布毫无信息。一个经典反例:\(X\sim N(0,1)\),\(Y=X^2\)。\(\operatorname{Cov}(X,Y)=E(X^3)-E(X)E(X^2)=0\),两者不相关;但知道 \(X\) 就完全知道 \(Y\),显然不独立。GARCH 的冲击就是这种情况:\(a_t\) 和 \(a_{t-1}\) 不相关(无法预测方向),但 \(a_t^2\) 和 \(a_{t-1}^2\) 正相关(大波动后跟大波动)。所以检验线性依赖用 \(r_t\) 的 ACF,检验非线性依赖至少还要看 \(r_t^2\) 或 \(|r_t|\) 的 ACF。

最一般地,纯随机序列可写为当前与过去冲击的函数 \(x_t=f(a_t,a_{t-1},\dots)\)。线性模型就是 \(f\) 取线性函数;但这个一般形式参数无穷多,不能直接用,需要加结构。

4.1.2 用条件矩分类

记 \(F_{t-1}\) 为到 \(t-1\) 时刻为止的信息集(σ 域)。定义

\[\mu_t=E(x_t\mid F_{t-1})\equiv g(F_{t-1}),\qquad \sigma_t^2=\operatorname{Var}(x_t\mid F_{t-1})\equiv h(F_{t-1}),\tag{4.3}\]

于是 \(x_t=g(F_{t-1})+\sqrt{h(F_{t-1})}\,\epsilon_t\),\(\epsilon_t=a_t/\sigma_t\)。

白话解释:「信息集(σ 域)」在这里可以简单理解为「截至 \(t-1\) 期收盘时你能看到的全部数据」,不必纠结测度论定义。上式把任何收益拆成两块:可预测的部分 \(g\)(预期收益)和不可预测的部分(当期冲击),后者的大小由 \(h\)(预期风险)决定。这和 CAPM 里「预期收益 + 意外」的拆法一样,只是这里的预期由历史数据决定。两种非线性分别对应两个问题:预期收益是否随状态非线性变化?预期风险是否随时间变化?

  • 线性序列:\(g\) 是线性函数,\(h=\sigma_a^2\) 是常数。
  • \(g\) 非线性:均值非线性(nonlinear in mean)。本章主要讨论这一类。
  • \(h\) 随时间变化:方差非线性(nonlinear in variance)。第 03a 章的 ARCH/GARCH(除 GARCH-M 外)都属此类。

对交易者的含义:均值非线性意味着方向/收益本身可能存在状态依赖的可预测性(例如下跌后与上涨后的动态不同);方差非线性意味着风险可预测。两者常同时存在,后面的 TAR-GARCH 就是一例。

文献中的非线性模型大致分两代。第一代让 \(\mu_t\) 按简单的参数非线性函数演化:双线性模型(Granger & Andersen 1978)、门限自回归 TAR(Tong 1978)、状态相依模型(Priestley 1980)、马尔可夫转换模型(Hamilton 1989)。第二代借助计算能力:非线性状态空间模型(Carlin, Polson & Stoffer 1992)、函数系数 AR(Chen & Tsay 1993a)、非线性可加 AR(Chen & Tsay 1993b)、多元自适应回归样条 MARS(Lewis & Stevens 1991),以及核回归、神经网络等非参数/半参数方法。


4.2 双线性模型(Bilinear Model)

线性模型 (4.1) 可看作 \(f\) 的一阶 Taylor 展开。自然的推广是加入二阶交叉项:

\[x_t=c+\sum_{i=1}^{p}\phi_i x_{t-i}-\sum_{j=1}^{q}\theta_j a_{t-j}+\sum_{i=1}^{m}\sum_{j=1}^{s}\beta_{ij}\,x_{t-i}a_{t-j}+a_t.\tag{4.4}\]

这就是双线性模型。它的平稳性等性质通常通过写成状态空间形式来推导。一个有启发性的特例是

\[x_t=\mu+\sum_{i=1}^{s}\beta_i a_{t-i}a_t+a_t,\tag{4.5}\]

此时 \(E(x_t\mid F_{t-1})=\mu\),而 \(\operatorname{Var}(x_t\mid F_{t-1})=\big(1+\sum_{i=1}^{s}\beta_i a_{t-i}\big)^2\sigma_a^2\)——均值为常数,方差却随过去冲击变化。可见双线性结构也能产生条件异方差,与随机系数 AR、CHARMA 模型(第 03b 章)类似。

推导拆解:把 (4.5) 改写成 \(x_t=\mu+\big(1+\sum_{i}\beta_ia_{t-i}\big)a_t\)。 第一步:在 \(F_{t-1}\) 下,过去的冲击 \(a_{t-1},\dots,a_{t-s}\) 都已知,所以括号里的 \(c_t\equiv1+\sum\beta_ia_{t-i}\) 是一个已知常数。 第二步:求条件期望,\(E(x_t\mid F_{t-1})=\mu+c_t\,E(a_t\mid F_{t-1})=\mu+c_t\cdot0=\mu\),用了「\(a_t\) 与过去独立、均值为零」。 第三步:求条件方差,常数 \(\mu\) 不贡献方差,\(\operatorname{Var}(c_ta_t\mid F_{t-1})=c_t^2\sigma_a^2\),用了 \(\operatorname{Var}(cX)=c^2\operatorname{Var}(X)\)。 数值例子:\(s=1\),\(\beta_1=0.5\),\(\sigma_a=1\)。若上期冲击 \(a_{t-1}=2\),则本期条件方差为 \((1+1)^2=4\);若 \(a_{t-1}=-2\),则为 \(0\)。注意它对正负冲击不对称,这一点和 GARCH 用 \(a_{t-1}^2\) 不同。

例 4.1(CRSP 等权指数月收益,1926-01 至 2008-12,996 个观测)。 PACF 在滞后 1、3 显著,残差平方的相关提示条件异方差。拟合特殊双线性模型(条件正态 MLE):

\[R_t=0.0114+0.167R_{t-1}-0.095R_{t-3}+0.071\,(1+0.377a_{t-1}-0.646a_{t-3})\,\epsilon_t,\]

各估计在 5% 水平显著,但标准化残差的平方仍有显著序列相关。作为对照,AR(3)–ARCH(3) 模型

\[R_t=0.013+0.223R_{t-1}+0.006R_{t-2}-0.013R_{t-3}+a_t,\quad \sigma_t^2=0.002+0.185a_{t-1}^2+0.301a_{t-2}^2+0.197a_{t-3}^2\]

拟合得更好,进一步研究发现 AR(1)–GARCH(1,1) 已足够。教训:双线性模型在理论上优雅,但在金融收益上通常不如 GARCH 族实用;它的价值主要在于说明"二阶项"如何同时影响均值和方差。


4.3 门限自回归模型(TAR)

4.3.1 动机与一个简单例子

金融与经济序列常见上升与下降模式不对称:例如失业率"上升快、下降慢",股价"跌得急、涨得缓"。线性 ARMA 是时间可逆的,刻画不了这种不对称。TAR 用分段线性模型逼近条件均值,但分段不是在时间轴上切(那是结构突变模型),而是在门限变量的取值空间上切。

考虑两区制 AR(1):

\[x_t=\begin{cases}-1.5\,x_{t-1}+a_t, & x_{t-1}<0,\\[2pt] \;\;\,0.5\,x_{t-1}+a_t, & x_{t-1}\ge 0,\end{cases}\qquad a_t\sim \text{iid }N(0,1).\tag{4.8}\]

门限变量是 \(x_{t-1}\)(延迟 \(d=1\)),门限为 0。这个看似简单的模型有三个反直觉的性质:

  1. 一个区制爆炸,整体却平稳。 第一区制系数 \(-1.5\) 的绝对值大于 1,但过程仍是几何遍历(geometrically ergodic)且平稳的。(4.8) 型模型几何遍历的充要条件是

    \[\phi_1^{(1)}<1,\qquad \phi_1^{(2)}<1,\qquad \phi_1^{(1)}\phi_1^{(2)}<1\]

    (Petruccelli & Woolford 1984;Chen & Tsay 1991)。这里 \(-1.5\times0.5=-0.75<1\),满足。直觉:负的大系数会把负值"弹"成正值,正值区制是平稳的,所以过程不会跑向无穷。遍历性的重要性在于遍历定理(ergodic theorem)——样本均值收敛到总体均值——它是时间序列里大数定律的对应物,保证我们能用一条样本路径做统计推断。

    推导拆解:为什么条件里是 \(\phi<1\) 而不是 \(|\phi|<1\)?用 (4.8) 跟踪一条不加噪声的路径就能看出来。从 \(x=-1\) 出发:\(x\to1.5\)(进入正区制)\(\to0.75\to0.375\to\cdots\) 逐步衰减到 0。负系数的作用是「翻转符号」,翻转后进入另一个区制,所以单看一个区制的 \(|\phi|\) 没有意义,要看「来回一趟」的总放大倍数,也就是乘积 \(\phi^{(1)}\phi^{(2)}\)。反过来,若某区制系数为正且大于 1(如 1.2),正值会一直留在本区制并越滚越大,永远出不来,过程就发散了,这就是 \(\phi^{(j)}<1\) 的含义。

    「几何遍历」可以理解为:不管从哪里出发,过程的分布都以几何速度(像 \(0.9^n\) 那样)收敛到同一个平稳分布。读者只需记住它的用途:保证样本均值、样本方差等统计量有意义。

  2. 不可时间反转。 \(x_{t-1}<0\) 时,负的爆炸系数使 \(x_t\) 倾向于跳到正值;\(x_{t-1}>0\) 时,需要好几期才慢慢衰减回负值。于是序列表现为"突然向上跳、缓慢向下走",把时间倒过来看就完全不同——这正是不可时间反转(not time reversible)。

  3. 没有常数项,均值却不为零。 原书 200 个模拟观测的样本均值为 0.61(标准误 0.07)。一般地,\(E(x_t)\) 是各区制条件均值按平稳分布下处于各区制的概率加权的平均。要让 TAR 均值为零,某些区制反而需要非零常数——这与线性平稳模型(常数非零⇔均值非零)完全不同。

4.3.2 自激门限自回归(SETAR)

一般的 \(k\) 区制 SETAR(self-exciting TAR)模型为

\[x_t=\phi_0^{(j)}+\phi_1^{(j)}x_{t-1}+\cdots+\phi_p^{(j)}x_{t-p}+a_t^{(j)},\qquad \gamma_{j-1}\le x_{t-d}<\gamma_j,\tag{4.9}\]

\(j=1,\dots,k\),\(-\infty=\gamma_0<\gamma_1<\dots<\gamma_{k-1}<\gamma_k=\infty\)。\(d\) 称延迟参数(delay),\(\gamma_j\) 称门限(thresholds);各区制的新息 \(\{a_t^{(j)}\}\) 为零均值、方差 \(\sigma_j^2\) 的 iid 序列,相互独立。(原书该式把 \(\phi_p^{(j)}\) 前的符号排成了负号,属排印问题,此处已更正为正号。)各区制的 AR 模型必须不同,否则可以合并区制。"自激"指门限变量就是序列自身的滞后值。如果门限变量换成其他可观测变量 \(z_{t-d}\)(平稳、分布连续、\(t-1\) 时已知),就称开环 TAR(open-loop TAR)。

估计 SETAR 的标准做法很朴素:给定 \(d\) 和门限 \(\gamma\),模型在每个区制内就是普通线性回归,可以分别用 OLS;于是在 \(x_{t-d}\) 的样本分位数(通常截掉两端各 10%–15%,以保证每个区制有足够样本)上网格搜索 \(\gamma\),取总残差平方和最小者。本章"量化实战"给出实现。

例 4.2(美国月度失业率,1948-01 至 2009-03,735 个观测)。 序列"上升快、下降慢",取一阶差分 \(y_t=(1-B)u_t\)。季节 ARIMA 基准模型

\[(1-1.13B+0.27B^2)(1-0.51B^{12})y_t=(1-1.12B+0.44B^2)(1-0.82B^{12})a_t,\quad\hat\sigma_a=0.187\]

已通过诊断(\(Q(12)=12.3\),\(Q(24)=25.5\)),1 步预测 2009 年 4 月失业率 8.8,实际 8.9。门限模型为

\[y_t=\begin{cases}0.083y_{t-2}+0.158y_{t-3}+0.118y_{t-4}-0.180y_{t-12}+a_{1t}, & y_{t-1}\le0.1,\\ 0.421y_{t-2}+0.239y_{t-3}-0.127y_{t-12}+a_{2t}, & y_{t-1}>0.1,\end{cases}\]

两区制残差标准差分别为 0.180、0.217,观测数 460、262。解读:当月失业率上升超过 0.1 个百分点时,动态依赖明显更强(\(y_{t-2}\) 系数从 0.083 升到 0.421)——失业率大幅上升意味着经济走弱,政策更可能出手,动态因此改变。ARIMA 模型的 \(\psi\) 权重 \(1+0.01B+0.18B^2+\cdots\) 中滞后 1 几乎为零,所以 TAR 模型不含 \(y_{t-1}\) 项也不奇怪。

4.3.3 门限思想用于波动率:TAR-GARCH

门限不仅能切均值,也能切方差。第 03b 章的 GJR/TGARCH 只让 \(a_{t-1}^2\) 的系数依赖冲击符号;更一般的做法是让 \(\sigma_{t-1}^2\) 的系数也依赖符号。

例 4.3(IBM 日对数收益,%,1962-07-03 至 2003-12-31,10,446 个观测)。 原书比较了三个模型:

模型 方差方程 标准化残差平方的 \(Q(10)\) 隐含无条件均值
AR(2)–GARCH(1,1) \(0.037+0.077a_{t-1}^2+0.913\sigma_{t-1}^2\) 11.67 (p=0.31) 0.060(样本均值 0.039)
AR(2)–GJR \(0.075+0.081P_{t-1}a_{t-1}^2+0.157N_{t-1}a_{t-1}^2+0.863\sigma_{t-1}^2\) 97.07 (p=0.00) —
AR(2)–TAR–GARCH(1,1) \(0.075+0.041a_{t-1}^2+0.903\sigma_{t-1}^2+(0.030a_{t-1}^2+0.062\sigma_{t-1}^2)N_{t-1}\) 13.54 (p=0.20) 0.033

其中 \(N_{t-1}\) 是 \(a_{t-1}<0\) 的示性变量,\(P_{t-1}=1-N_{t-1}\)。TAR–GARCH 全部参数 1% 显著、诊断通过、隐含均值最接近样本均值。注意负冲击区制下 \(0.041+0.030+0.903+0.062=1.036\),接近甚至略超 1——负冲击后的波动几乎是 IGARCH 式的高度持续。结论:IBM 日波动的不对称性远比 GJR 所能表达的更强,负冲击不仅放大当期冲击的影响,也提高了波动的持续性。

金融直觉:GARCH(1,1) 中 \(\alpha_1+\beta_1\) 衡量波动冲击的「半衰」速度,类似 AR(1) 系数。正冲击区制 \(0.041+0.903=0.944\),一次波动冲击的影响约 \(\ln0.5/\ln0.944\approx12\) 天衰减一半;负冲击区制约为 1,冲击几乎不衰减。对风险管理的含义是:下跌之后不仅次日 VaR 要上调,而且未来几周的 VaR 都要维持高位。只调整「冲击放大」而不调整「持续性」的 GJR 模型会低估下跌后的中期风险,这就是它的 \(Q(10)\) 诊断失败的原因。


4.4 平滑转移 AR 模型(STAR)

SETAR 的条件均值在门限处跳跃,有人认为不自然。平滑转移 AR(smooth transition AR,Chan & Tong 1986;Teräsvirta 1994)用一个取值在 \([0,1]\) 的连续函数代替示性函数。两区制 STAR(\(p\)):

\[x_t=c_0+\sum_{i=1}^{p}\phi_{0,i}x_{t-i}+F\!\left(\frac{x_{t-d}-\Delta}{s}\right)\left(c_1+\sum_{i=1}^{p}\phi_{1,i}x_{t-i}\right)+a_t,\tag{4.15}\]

\(\Delta\)、\(s\) 是转移的位置与尺度参数,\(F\) 常取 logistic、指数函数或某个 CDF。条件均值是两个线性方程

\[\mu_{1t}=c_0+\sum\phi_{0,i}x_{t-i},\qquad \mu_{2t}=(c_0+c_1)+\sum(\phi_{0,i}+\phi_{1,i})x_{t-i}\]

的连续加权组合。优点是条件均值可微;缺点是 \(\Delta\) 与 \(s\) 很难估计,标准误往往很大(Teräsvirta 1994 中 t 值仅约 1.0),实践中常把尺度参数预先固定。\(s\to0\) 时 STAR 退化为 SETAR。

白话解释:取 logistic 函数 \(F(z)=1/(1+e^{-z})\),\(\Delta=0\),\(s=0.5\)。当 \(x_{t-d}=-2\) 时 \(z=-4\),\(F\approx0.018\),模型几乎就是第一组 AR;当 \(x_{t-d}=2\) 时 \(F\approx0.982\),几乎就是第二组 AR(两组系数相加);当 \(x_{t-d}=0\) 时 \(F=0.5\),两组各占一半。\(s\) 越小,从 0 到 1 的过渡越陡;\(s\to0\) 时变成在 \(\Delta\) 处的直角台阶,这就是 SETAR。\(\Delta\) 和 \(s\) 难估计的原因也由此可见:若样本中很少有点落在过渡区附近,数据几乎提供不了关于过渡「多陡」的信息,似然函数在 \(s\) 方向上很平。

例 4.4(3M 月简单收益,1946-02 至 2008-12)。 ARCH(2) 模型 \(\sigma_t^2=0.003+0.088a_{t-1}^2+0.109a_{t-2}^2\) 无法表现正负冲击的不对称。改用平滑转移波动率模型(logistic 尺度参数固定为 1000,近似"按 \(a_{t-1}\) 符号切换"):

\[\sigma_t^2=(0.003+0.205a_{t-1}^2+0.092a_{t-2}^2)+\frac{0.001-0.239a_{t-1}^2}{1+\exp(-1000\,a_{t-1})}.\]
  • 大的负 \(a_{t-1}\)(转移函数 \(\to0\)):\(\sigma_t^2\approx0.003+0.205a_{t-1}^2+0.092a_{t-2}^2\);
  • 大的正 \(a_{t-1}\)(转移函数 \(\to1\)):\(\sigma_t^2\approx0.004-0.034a_{t-1}^2+0.092a_{t-2}^2\)。

正冲击下 \(a_{t-1}^2\) 的系数为负,看似违反直觉,但数值很小,含义是"大的正冲击之后几乎没有 ARCH 效应"——这正支持了不对称反应。原书用 R 的 optim(BFGS)最小化负对数似然完成估计,思路与第 03a 章自写 GARCH 似然完全相同:递推出 \(\sigma_t^2\),累加 \(\ln\sigma_t+\tfrac12 a_t^2/\sigma_t^2\)。


4.5 马尔可夫转换模型(Markov Switching)

4.5.1 模型

Hamilton (1989) 强调经济在扩张与收缩之间非周期性地切换,提出马尔可夫转换自回归(Markov switching AR,MSA):

\[x_t=\begin{cases}c_1+\sum_{i=1}^{p}\phi_{1,i}x_{t-i}+a_{1t}, & s_t=1,\\ c_2+\sum_{i=1}^{p}\phi_{2,i}x_{t-i}+a_{2t}, & s_t=2,\end{cases}\tag{4.18}\]

其中 \(s_t\in\{1,2\}\) 是不可观测的一阶马尔可夫链,转移概率

\[P(s_t=2\mid s_{t-1}=1)=w_1,\qquad P(s_t=1\mid s_{t-1}=2)=w_2.\]

\(w_i\) 越小,在状态 \(i\) 停留越久。停留时间服从几何分布,状态 \(i\) 的期望持续期为 \(1/w_i\)。

推导拆解:设刚进入状态 \(i\),每期以概率 \(w_i\) 离开、以 \(1-w_i\) 留下,各期独立(马尔可夫性)。停留恰好 \(n\) 期意味着前 \(n-1\) 期都留下、第 \(n\) 期离开,所以 \(P(N=n)=(1-w_i)^{n-1}w_i\)。期望为

\[E(N)=\sum_{n=1}^{\infty}n(1-w_i)^{n-1}w_i=w_i\cdot\frac{1}{[1-(1-w_i)]^2}=\frac1{w_i}.\]
中间一步用了 \(\sum_{n\ge1}nq^{n-1}=1/(1-q)^2\),它是几何级数 \(\sum q^n=1/(1-q)\) 两边对 \(q\) 求导得到的。

金融直觉:两状态转移矩阵 \(\begin{pmatrix}1-w_1&w_1\\w_2&1-w_2\end{pmatrix}\) 和信用评级迁移矩阵是同一种对象,只是这里的状态(扩张/收缩)不可观测。长期处于状态 1 的比例为 \(w_2/(w_1+w_2)\):进入状态 1 越容易(\(w_2\) 大)、离开越难(\(w_1\) 小),比例越高。

4.5.2 MSA 与 SETAR 的三点区别

SETAR MSA
转换机制 确定性:由可观测的 \(x_{t-d}\) 决定 随机性:由隐藏马尔可夫链决定
当前区制是否已知 只要 \(x_{t-d}\) 已观测就确定 永远不能确知,只能用滤波给出概率
预测 步长 \(\le d\) 时只来自一个区制;超过 \(d\) 后才是各区制的组合 总是各状态预测的概率加权组合
估计 网格搜索 + OLS,简单 EM 算法(Hamilton 1990)或 MCMC(McCulloch & Tsay 1994)

推广方向包括:转移概率依赖解释变量(logistic/probit 链接,McCulloch & Tsay 1993);用马尔可夫转换在不嵌套的非线性模型(如双线性与 SETAR)间做贝叶斯选择(Chen, McCulloch & Tsay 1997);多于两个状态(计算量急剧上升)。系统论述见 Hamilton (1994) 第 22 章。

4.5.3 例 4.5:美国季度实际 GNP 增长率

数据为 1947Q2–1991Q1 季调实际 GNP 增长率(%),这是非线性时间序列研究的经典数据。用 MSA(\(p=4\)) 和 Gibbs 抽样(5,000 次迭代)估计,后验均值(括号为后验标准差):

\(c\) \(\phi_1\) \(\phi_2\) \(\phi_3\) \(\phi_4\) \(\sigma\) \(w\)
状态 1 0.909 (0.202) 0.265 (0.113) 0.029 (0.126) −0.126 (0.103) −0.110 (0.109) 0.816 (0.125) 0.118 (0.053)
状态 2 −0.420 (0.324) 0.216 (0.347) 0.628 (0.377) −0.073 (0.364) −0.097 (0.404) 1.017 (0.293) 0.286 (0.064)

从中读出:

  1. 状态 1 的边际均值 \(0.909/(1-0.265-0.029+0.126+0.110)=0.965\),状态 2 为 \(-0.420/(1-0.216-0.628+0.073+0.097)=-1.288\)——状态 1 是扩张,状态 2 是收缩。
  2. 状态 2 的后验标准差大,因为负增长季度少,信息不足。
  3. 走出收缩(\(w_2=0.286\))比陷入收缩(\(w_1=0.118\))容易。
  4. 期望持续期:收缩约 \(1/0.286\approx3.5\) 季度(原书写作 3.69,大约一年),扩张约 \(1/0.118\approx8.5\) 季度(原书写作 11.31,约 3 年)。注意:按 \(1/w\) 直接计算得到 3.50 和 8.47;原书数字可能来自后验抽样中 \(1/w\) 的后验均值(由 Jensen 不等式,\(E(1/w)>1/E(w)\)),而不是点估计的倒数。两种算法结论一致:扩张期远长于收缩期。
  5. \(x_{t-2}\) 的系数在两状态差异很大(0.029 对 0.628),扩张与收缩期的经济动态不同。

量化含义:把"状态 2"换成"高波动/下跌市",这就是业界常用的市场状态识别(regime detection)模型。平滑概率 \(P(s_t=k\mid F_T)\) 用于事后标注历史状态,滤波概率 \(P(s_t=k\mid F_t)\) 才能用于实时决策——回测时混用两者会引入前视偏差。

白话解释:滤波概率回答「站在今天收盘,用到今天为止的数据,今天处于熊市的概率是多少」;平滑概率回答「站在样本末尾,用全部数据回头看,那天处于熊市的概率是多少」。后者知道「后来真的跌了很久」,所以对状态切换点的判断准得多,也正因此不能用来做历史上当天的决策。滤波概率的递推每期两步:先用转移矩阵把昨天的状态概率推到今天(预测步),再用今天的收益在两个状态下的似然加权更新(贝叶斯更新步),思路与卡尔曼滤波相同。


4.6 非参数方法

当我们无法预先写出 \(Y\) 与 \(X\) 的非线性形式时,可让数据自己"说话"。代价是高度依赖数据,容易过拟合。

4.6.1 平滑的本质

设 \(Y_t=m(X_t)+a_t\),\(m(\cdot)\) 是未知光滑函数。如果在 \(X=x\) 处有许多重复观测,样本均值就收敛到 \(m(x)\)。金融数据在同一个 \(x\) 处没有重复观测,但只要 \(m\) 足够光滑,\(X_t\) 接近 \(x\) 的那些 \(Y_t\) 仍能很好地近似 \(m(x)\)。于是用加权平均

\[\hat m(x)=\sum_{t=1}^{T}w_t(x)\,y_t,\qquad \sum_t w_t(x)=1,\]

离 \(x\) 越近权重越大。距离度量和权重分配方式不同,就得到不同的非参数方法。

4.6.2 核回归

核(kernel)\(K(\cdot)\) 通常是一个密度函数。用带宽(bandwidth)\(h>0\) 重标度:\(K_h(x)=K(x/h)/h\)。权重

\[w_t(x)=\frac{K_h(x-x_t)}{\sum_{s=1}^{T}K_h(x-x_s)}\]

得到 Nadaraya–Watson 估计:

\[\hat m(x)=\frac{\sum_{t=1}^{T}K_h(x-x_t)\,y_t}{\sum_{t=1}^{T}K_h(x-x_t)}.\tag{4.23}\]

常用核:高斯核 \(K_h(x)=\frac{1}{h\sqrt{2\pi}}e^{-x^2/(2h^2)}\);Epanechnikov 核 \(K_h(x)=\frac{0.75}{h}\big(1-\frac{x^2}{h^2}\big)\mathbb 1(|x/h|\le1)\)。

白话解释:NW 估计就是「按距离打折的加权平均」。数值例子:三个观测 \((x,y)=(0,1),(1,3),(3,10)\),用 Epanechnikov 核、\(h=2\),估计 \(\hat m(0.5)\)。距离分别为 \(0.5,0.5,2.5\),对应 \(u=x/h\) 为 \(0.25,0.25,1.25\);核值正比于 \(1-u^2\),即 \(0.9375,0.9375,0\)(第三个点超出带宽,权重为零)。于是 \(\hat m(0.5)=(0.9375\times1+0.9375\times3)/(0.9375\times2)=2\)。注意 \(K_h\) 中的 \(1/h\) 因子在分子分母中约掉,权重只取决于相对距离。\(\mathbb 1(\cdot)\) 是示性函数,条件成立时取 1,否则取 0。

带宽决定一切。 以 Epanechnikov 核在观测点 \(x_t\) 处为例:\(h\to0\) 时 \(\hat m(x_t)\to y_t\),估计只是复现数据(欠平滑、方差大);\(h\to\infty\) 时 \(\hat m(x_t)\to\bar y\),所有结构被抹平(过平滑、偏差大)。这就是偏差–方差权衡。两种主流选法:

  1. 插入法(plug-in):最小化平均积分平方误差 \(\text{MISE}=E\int[\hat m(x)-m(x)]^2dx\) 的渐近展开。Fan & Yao (2003) 的正态参考带宽:高斯核 \(\hat h=1.06\,s\,T^{-1/5}\),Epanechnikov 核 \(\hat h=2.34\,s\,T^{-1/5}\),\(s\) 为自变量样本标准差。

  2. 留一交叉验证(leave-one-out CV):去掉第 \(j\) 个点,用其余点估计 \(\hat m_{h,-j}(x_j)\),最小化

    \[CV(h)=\frac1T\sum_{j=1}^{T}\big[y_j-\hat m_{h,-j}(x_j)\big]^2W(x_j),\]

    \(W(\cdot)\) 是用于降低边界点权重的非负权函数。

正态参考带宽假设 \(m\) 的弯曲程度与正态密度相当;当真实函数起伏较多时,它会过平滑,CV 带宽通常更小(见本章代码输出)。

4.6.3 局部线性回归

在 \(x\) 附近用直线而不是常数去拟合:求 \(a,b\) 最小化

\[L(a,b)=\sum_{t=1}^{T}\big[y_t-a-b(x-x_t)\big]^2K_h(x-x_t),\tag{4.24}\]

取 \(\hat m(x)=\hat a\)(\(\hat b\) 还可作为导数 \(m'(x)\) 的估计)。这是加权最小二乘。令 \(s_{T,\ell}=\sum_t K_h(x-x_t)(x-x_t)^\ell\),解正规方程得

\[\hat m(x)=\frac{\sum_t w_t y_t}{\sum_t w_t},\qquad w_t=K_h(x-x_t)\big[s_{T,2}-(x-x_t)s_{T,1}\big],\tag{4.25}\]

实践中分母加 \(1/T^2\) 防止为零。

推导拆解:记 \(k_t=K_h(x-x_t)\),\(d_t=x-x_t\),则 \(s_{T,\ell}=\sum k_td_t^\ell\)(\(s_{T,0}\) 就是权重总和)。 第一步:对 \(a\) 求偏导令其为零,得 \(\sum k_t(y_t-a-bd_t)=0\),即 \(a\,s_{T,0}+b\,s_{T,1}=\sum k_ty_t\)。 第二步:对 \(b\) 求偏导令其为零,得 \(\sum k_td_t(y_t-a-bd_t)=0\),即 \(a\,s_{T,1}+b\,s_{T,2}=\sum k_td_ty_t\)。 第三步:这是关于 \((a,b)\) 的 \(2\times2\) 线性方程组,用克莱默法则解 \(a\):

\[\hat a=\frac{s_{T,2}\sum k_ty_t-s_{T,1}\sum k_td_ty_t}{s_{T,0}s_{T,2}-s_{T,1}^2}=\frac{\sum k_t(s_{T,2}-d_ts_{T,1})y_t}{\sum k_t(s_{T,2}-d_ts_{T,1})}.\]
最后一个等号是因为分母 \(s_{T,0}s_{T,2}-s_{T,1}^2\) 恰好等于 \(\sum_t k_t(s_{T,2}-d_ts_{T,1})\)(展开即得)。这就是 (4.25)。

白话解释:为什么局部直线比局部常数在边界更好?在样本右端点附近,所有邻居都在左边。如果真实函数是上升的,左边邻居的 \(y\) 都偏小,局部常数(平均值)就系统性偏低;局部直线会顺着斜率外推,把这个偏差抵消掉。若只拟合常数 \(a\),结果正是 Nadaraya–Watson 估计——所以 NW 是"局部常数"回归。Fan (1993) 证明局部线性估计具有更好的抽样性质,尤其边界偏差小;若 \(m\) 有更高阶导数,可用更高阶局部多项式。

多元情形可用多元正态核或单变量核的乘积;但维数一高,邻域里的点就稀少,这就是下面要说的维数灾难。

例 4.6(美国 3 个月国库券周利率,1970–1997,1,461 个观测)。 把利率看作扩散过程 \(y_t=\mu(x_{t-1})dt+\sigma(x_{t-1})dw_t\),\(y_t=x_t-x_{t-1}\)。用 lowess 非参数地估计漂移 \(\mu(\cdot)=E(y_t\mid x_{t-1})\),并以 \(|y_t|\) 代理波动估计 \(\sigma(\cdot)\)。结果:\(\hat\mu(x)\) 在低利率时为正、高利率时为负——均值回复;\(\hat\sigma(x)\) 随利率上升而增大,在接近 10% 时斜率加速——水平效应,与 CIR 等 \(\sigma\propto x^\gamma\) 型模型一致。这个例子说明,简单的非参数图就能为参数模型(第 06 章的扩散方程)提供设定依据。

4.6.4 由非参数思想催生的三个模型

  • 函数系数 AR(FAR,Chen & Tsay 1993a):

    \[x_t=f_1(\mathbf X_{t-1})x_{t-1}+\cdots+f_p(\mathbf X_{t-1})x_{t-p}+a_t,\tag{4.27}\]

    系数是状态变量 \(\mathbf X_{t-1}\) 的光滑函数。TAR(\(f_i\) 为阶梯函数)、STAR、EXPAR 都是它的特例。\(\mathbf X_{t-1}\) 为低维(如标量)时可用局部线性回归估计 \(f_i\);Cai, Fan & Yao (2000) 显示 FAR 能显著改进 1 步预测。量化上,这正是"因子暴露随市场状态(波动率、估值)平滑变化"的形式化。

  • 非线性可加 AR(NAAR,Chen & Tsay 1993b):一般非线性 AR(\(p\)) \(x_t=f(x_{t-1},\dots,x_{t-p})+a_t\) 需要 \(p\) 维平滑,样本稍小就做不动,这就是维数灾难(curse of dimensionality)。可加模型

    \[x_t=f_0(t)+\sum_{i=1}^{p}f_i(x_{t-i})+a_t\tag{4.28}\]

    每个 \(f_i\) 只有一个自变量,可在给定其他 \(f_j\) 时轮流一维平滑(backfitting)。可加性是强假设,需检验(Chen, Liu & Tsay 1995)。

  • 非线性状态空间模型(Carlin, Polson & Stoffer 1992):

    \[S_t=f_t(S_{t-1})+u_t,\qquad x_t=g_t(S_t)+v_t,\tag{4.29}\]

    用 MCMC 处理状态转移的完整条件分布。它要求 \(f_t,g_t\) 已知,可先用 FAR、NAAR 探索其形式。状态空间与 MCMC 的系统介绍见原书第 11、12 章。


4.7 神经网络

4.7.1 前馈网络的结构

原书只讨论前馈神经网络(feed-forward neural network)。以单隐层网络为例,第 \(j\) 个隐节点

\[h_j=f_j\Big(\alpha_{0j}+\sum_{i\to j}w_{ij}x_i\Big),\qquad f_j(z)=\frac{e^z}{1+e^z},\tag{4.30}\]

\(\alpha_{0j}\) 称偏置(bias),\(w_{ij}\) 称权重,\(f_j\) 是激活函数(activation function)。输出节点

\[o=f_o\Big(\alpha_{0o}+\sum_{j\to o}w_{jo}h_j\Big),\tag{4.32}\]

\(f_o\) 取线性函数(回归)或 Heaviside 函数(\(z>0\) 时为 1,否则为 0,此时称门限神经元,用于分类)。若允许输入直接连到输出(跳层,skip layer):

\[o=f_o\Big[\alpha_{0o}+\sum_{i\to o}\alpha_{io}x_i+\sum_{j\to o}w_{jo}f_j\Big(\alpha_{0j}+\sum_{i\to j}w_{ij}x_i\Big)\Big].\tag{4.34}\]

线性输出下,跳层部分就是普通线性 AR,所以 (4.34) 是线性模型的推广。

参数计数是理解过拟合风险的第一步。2–3–1 网络(2 个输入、3 个隐节点、1 个输出):隐层每个节点有 1 个偏置 + 2 个权重,共 \(3\times3=9\);输出层 1 个偏置 + 3 个权重,共 4;合计 13 个参数,加上跳层的 2 个直连系数为 15 个。

单隐层前馈网络在隐节点足够多时,能在紧集上一致逼近任意连续函数(Hornik, Stinchcombe & White 1989),即万能逼近性质。但"能逼近"不等于"能从有限噪声数据中学到"。训练通常用最小二乘 \(S^2=\sum(r_t-o_t)^2\) 加正则化,用反向传播(back propagation)梯度算法迭代求解;数据分为训练与验证两个子样本,用样本外表现选网络——这正是交叉验证的思想。网络训练的数值细节见第 10 册。

4.7.2 两个实证:网络没有赢过随机游走

例 4.7(IBM 月对数收益,%,1926–1999)。 用前 864 个观测(1926–1997)训练 3–2–1 跳层网络,输入 \(r_{t-1},r_{t-2},r_{t-3}\):

\[\hat r_t=3.22-1.81f_1(\mathbf r_{t-1})-2.28f_2(\mathbf r_{t-1})-0.09r_{t-1}-0.05r_{t-2}-0.12r_{t-3},\]

残差标准误 6.56,略小于 AR(1) 模型 \(r_t=1.101+0.077r_{t-1}+a_t\) 的 6.61。但看 1998–1999 年 24 个月的 1 步预测均方误差(MSFE):

预测方法 样本外 MSFE
训练样本均值(带漂移随机游走) 91.85
AR(1) 91.70
3–2–1 神经网络 91.74

网络与 AR(1) 几乎一样,比基准只好一点点。更重要的是,换不同的随机初始权重,网络的样本外 MSE 在 89.46 到 93.65 之间波动;改变隐节点数,波动更大。网络估计结果本身的不稳定性,远大于它相对基准的改进幅度。

例 4.8(方向预测)。 定义 \(d_t=1\)(若 \(r_t\ge0\))否则 0;输入为 \(r_t\) 和 \(d_t\) 各 4 个滞后,用 8–4–1 网络(49 个参数)、Heaviside 输出预测下月涨跌。单次训练的命中率为 0.58,但每次训练差异很大。重复 500 次:24 个月中预测错误数均值 11.28、中位数 11、范围 4–18。对照组"带漂移随机游走"(\(\hat r_t=1.19+\epsilon_t\ge0\) 即判涨)的错误数均值 10.53、中位数 11、范围 5–17。结论:8–4–1 网络并不优于带漂移随机游走。

这两个例子在今天依然是机器学习选股的标准警示:样本内拟合改进不代表样本外可用;必须与朴素基准做严格的样本外比较,并报告估计结果对随机种子、超参数的敏感性。方向预测是否显著优于随机,可以用第 04b 章的 \(2\times2\) 列联表 \(\chi^2\) 检验来判断。


量化实战

应用场景

  1. 市场状态识别与状态依赖信号。 马尔可夫转换模型是做"牛/熊""低波/高波"状态划分的标准工具。典型用法:在高波动状态降低杠杆或关闭动量因子;把因子 IC、策略收益按状态分组统计。实时决策只能用滤波概率,不能用平滑概率。
  2. 门限模型做规则型信号。 SETAR 的门限可以直接翻译成交易规则(例如"前一期跌幅超过阈值后,均值回复系数显著更大")。门限变量也可以是成交量、波动率、利差等外生变量(开环 TAR)。
  3. 不对称波动建模。 TAR-GARCH 与平滑转移 GARCH 刻画"下跌后波动更高、更持久",直接用于 VaR 与波动率目标(vol targeting)仓位。
  4. 非参数探索。 在建立参数模型前,用核回归或局部线性回归画出 \(E(r_{t+1}\mid z_t)\) 对某个信号 \(z_t\) 的曲线,看关系是否单调、是否存在阈值。这比直接线性回归更能发现"只在极端值处有效"的信号。

Python 示例

下面的代码依次完成三件事:模拟式 (4.8) 的 TAR 过程并用网格搜索估计 SETAR;模拟一个两状态收益序列并用 statsmodels 的马尔可夫转换回归识别状态;用 Nadaraya–Watson 核回归和留一交叉验证估计非线性函数。

import numpy as np
import pandas as pd
from statsmodels.tsa.regime_switching.markov_regression import MarkovRegression

rng = np.random.default_rng(42)

# ---------- 1. 模拟式 (4.8) 的两区制 TAR(1),并用网格搜索估计 SETAR ----------
def sim_tar(T, burn=500):
    x = np.zeros(T + burn)
    a = rng.standard_normal(T + burn)
    for t in range(1, T + burn):
        phi = -1.5 if x[t-1] < 0 else 0.5
        x[t] = phi * x[t-1] + a[t]
    return x[burn:]

x = sim_tar(5000)
print(f"TAR 样本均值 = {x.mean():.3f}  (无常数项,但均值不为 0)")
dx = np.diff(x)
print(f"上升步平均幅度 = {dx[dx>0].mean():.3f}, 下降步平均幅度 = {-dx[dx<0].mean():.3f}")

def fit_setar(x, p=1, d=1, trim=0.15):
    """两区制 SETAR(p):对门限做网格搜索,每个候选门限下两区制分别 OLS,取总 SSR 最小者"""
    T = len(x); s = max(p, d)
    Y = x[s:]
    X = np.column_stack([np.ones(T - s)] + [x[s-i:T-i] for i in range(1, p+1)])
    z = x[s-d:T-d]                                   # 门限变量 x_{t-d}
    cands = np.quantile(z, np.linspace(trim, 1-trim, 141))
    best = None
    for r in cands:
        ssr, coefs = 0.0, []
        for m in (z <= r, z > r):
            b, *_ = np.linalg.lstsq(X[m], Y[m], rcond=None)
            ssr += np.sum((Y[m] - X[m] @ b) ** 2); coefs.append(b)
        if best is None or ssr < best[0]:
            best = (ssr, r, coefs)
    return best

ssr, r, (b1, b2) = fit_setar(x)
print(f"估计门限 r = {r:.3f}")
print(f"区制1 (x_(t-1)<=r): 常数 {b1[0]: .3f}, phi {b1[1]: .3f}")
print(f"区制2 (x_(t-1)> r): 常数 {b2[0]: .3f}, phi {b2[1]: .3f}")

# ---------- 2. 马尔可夫转换:识别"平静/动荡"两种市场状态 ----------
T = 2000
P = np.array([[0.98, 0.02], [0.05, 0.95]])   # P[i,j] = P(s_t=j | s_{t-1}=i)
mu, sig = np.array([0.05, -0.10]), np.array([0.8, 2.0])
s = np.zeros(T, dtype=int)
for t in range(1, T):
    s[t] = rng.choice(2, p=P[s[t-1]])
r_t = mu[s] + sig[s] * rng.standard_normal(T)

res = MarkovRegression(pd.Series(r_t), k_regimes=2, trend="c", switching_variance=True).fit(disp=False)
prob = np.asarray(res.smoothed_marginal_probabilities)   # T x 2
# 以方差大者为"动荡"状态
k_hi = int(np.argmax([res.params[f"sigma2[{k}]"] for k in range(2)]))
for k in range(2):
    print(f"状态{k}: 均值 {res.params[f'const[{k}]']: .3f}, 方差 {res.params[f'sigma2[{k}]']:.3f}, "
          f"期望持续期 {res.expected_durations[k]:.1f} 期")
hit = np.mean((prob[:, k_hi] > 0.5) == (s == 1))
print(f"平滑概率>0.5 判定动荡状态的准确率 = {hit:.3f}")

# ---------- 3. Nadaraya–Watson 核回归 + 留一交叉验证选带宽 ----------
n = 600
xk = rng.uniform(-2, 2, n)
yk = np.sin(1.5 * xk) + 0.4 * rng.standard_normal(n)

def nw(x0, x, y, h):
    w = np.exp(-0.5 * ((x0[:, None] - x[None, :]) / h) ** 2)
    return (w @ y) / w.sum(axis=1)

def loocv(h, x, y):
    w = np.exp(-0.5 * ((x[:, None] - x[None, :]) / h) ** 2)
    np.fill_diagonal(w, 0.0)                         # 去掉自身
    return np.mean((y - (w @ y) / w.sum(axis=1)) ** 2)

hs = np.linspace(0.03, 1.0, 50)
cv = [loocv(h, xk, yk) for h in hs]
h_cv = hs[int(np.argmin(cv))]
h_ref = 1.06 * xk.std(ddof=1) * n ** (-1/5)          # 正态参考带宽
grid = np.linspace(-1.8, 1.8, 7)
print(f"CV 带宽 = {h_cv:.3f}, 正态参考带宽 = {h_ref:.3f}")
print("x      :", np.round(grid, 2))
print("真值   :", np.round(np.sin(1.5 * grid), 3))
print("NW估计 :", np.round(nw(grid, xk, yk, h_cv), 3))

关键输出:

TAR 样本均值 = 0.704  (无常数项,但均值不为 0)
上升步平均幅度 = 1.404, 下降步平均幅度 = 1.087
估计门限 r = -0.138
区制1 (x_(t-1)<=r): 常数  0.100, phi -1.328
区制2 (x_(t-1)> r): 常数 -0.008, phi  0.505
状态0: 均值  0.046, 方差 0.655, 期望持续期 45.3 期
状态1: 均值 -0.292, 方差 4.180, 期望持续期 20.8 期
平滑概率>0.5 判定动荡状态的准确率 = 0.943
CV 带宽 = 0.089, 正态参考带宽 = 0.351
NW估计 : [-0.411 -0.969 -0.809  0.075  0.784  0.947  0.422]

读输出时注意四点。第一,TAR 无常数项但均值约 0.70,上升步明显大于下降步,复现了 4.3.1 节的性质 2、3。第二,网格搜索找到的门限(−0.14)与真值 0 有偏差,门限估计本身的抽样误差不小,实际使用时应报告门限附近的似然剖面。第三,马尔可夫转换模型估计的期望持续期(45.3、20.8 期)接近真值 \(1/0.02=50\)、\(1/0.05=20\),但这里用的是平滑概率;做实盘信号要改用 res.filtered_marginal_probabilities。第四,CV 带宽(0.089)比正态参考带宽(0.351)小得多,因为真实函数 \(\sin(1.5x)\) 的弯曲程度超过正态参考假设。


本章小结

本章的核心是从"不相关"走向"独立":线性模型要求冲击独立,金融收益的冲击往往只是不相关,残留的依赖可能藏在均值的非线性里(门限、状态转换),也可能藏在方差里(GARCH 族)。TAR/SETAR 用可观测的门限变量在取值空间里分段,估计简单、解释直观,能刻画"上升快下降慢"等不对称;STAR 让转换变平滑;马尔可夫转换让转换由隐藏状态驱动,适合描述经济或市场的周期性切换。非参数方法(核回归、局部线性回归)不预设函数形式,适合在建模前探索非线性结构,但受维数灾难限制,FAR、NAAR 是折中方案。神经网络是灵活的半参数逼近器,原书实证提醒我们:在月度收益这样信噪比极低的序列上,它没能赢过随机游走。

概念 / 公式 要点
线性序列 \(x_t=\mu+\sum\psi_ia_{t-i}\),\(a_t\) iid 冲击须独立;不相关不足以称线性
\(\mu_t=g(F_{t-1})\),\(\sigma_t^2=h(F_{t-1})\) \(g\) 非线性:均值非线性;\(h\) 时变:方差非线性
双线性 \(x_t=\mu+\sum\beta_ia_{t-i}a_t+a_t\) 均值常数,条件方差 \((1+\sum\beta_ia_{t-i})^2\sigma_a^2\)
SETAR (4.9) 门限空间分段线性 AR;网格搜索 \(\gamma\) + 分区 OLS
TAR(1) 遍历条件 \(\phi^{(1)}<1,\ \phi^{(2)}<1,\ \phi^{(1)}\phi^{(2)}<1\)
TAR-GARCH \(\sigma_t^2=\alpha_0+\alpha_1a_{t-1}^2+\beta_1\sigma_{t-1}^2+(\alpha_2a_{t-1}^2+\beta_2\sigma_{t-1}^2)N_{t-1}\)
STAR (4.15) 转移函数 \(F\in[0,1]\) 连续加权两个 AR
MSA (4.18) 隐藏马尔可夫链;期望持续期 \(1/w_i\);预测为状态概率加权
Nadaraya–Watson (4.23) \(\hat m(x)=\sum K_h(x-x_t)y_t/\sum K_h(x-x_t)\)
正态参考带宽 高斯核 \(1.06sT^{-1/5}\);Epanechnikov 核 \(2.34sT^{-1/5}\)
局部线性 (4.24) 加权 LS 拟合直线;边界偏差小
FAR / NAAR 系数为状态的函数 / 可加一维平滑,规避维数灾难
2–3–1 网络参数数 13(加跳层 15)

练习

基础

  1. 判断下列模型是"均值非线性""方差非线性"还是线性:(a) AR(2);(b) GARCH(1,1);(c) GARCH-M;(d) 式 (4.8) 的 TAR;(e) 式 (4.5) 的双线性模型。 提示:(a) 线性;(b) 方差非线性;(c) 均值和方差都非线性(\(\mu_t\) 依赖 \(\sigma_t^2\));(d) 均值非线性;(e) 方差非线性(条件均值为常数)。
  2. 两区制 TAR(1):\(x_t=0.9x_{t-1}+a_t\)(\(x_{t-1}<0\)),\(x_t=-1.2x_{t-1}+a_t\)(\(x_{t-1}\ge0\))。它是否几何遍历?若把 \(-1.2\) 改成 \(1.2\) 呢? 提示:第一种 \(0.9<1\)、\(-1.2<1\)、\(0.9\times(-1.2)=-1.08<1\),遍历;第二种 \(1.2>1\),不遍历。
  3. 马尔可夫转换模型中 \(w_1=0.02\)、\(w_2=0.10\),求两状态的期望持续期及平稳分布下处于状态 1 的概率。 提示:50 期和 10 期;平稳概率 \(\pi_1=w_2/(w_1+w_2)=0.833\)。
  4. 计算 3–4–1 跳层前馈网络(线性输出)的参数个数。 提示:隐层 \(4\times(1+3)=16\),输出层 \(1+4=5\),跳层 3,合计 24。

进阶

  1. (原书习题 4.3)GE 月对数收益的平滑门限 IGARCH(1,1):\(r_t=1.14+a_t\),\(\sigma_t^2=0.119a_{t-1}^2+0.881\sigma_{t-1}^2+\dfrac{4.276-0.084\sigma_{t-1}^2}{1+\exp(-10a_{t-1})}\)。已知 \(a_{996}=-5.06\)、\(\sigma_{996}^2=50.5\),求 1 步波动率预测;再求 \(a_{996}=5.06\) 时的值。 提示:\(a=-5.06\) 时转移函数 \(\approx e^{-50.6}\approx0\),\(\sigma^2_{997}\approx0.119\times25.60+0.881\times50.5=47.54\);\(a=+5.06\) 时转移函数 \(\approx1\),再加 \(4.276-0.084\times50.5=0.034\),得 47.57。两者几乎相同,说明在 \(\sigma^2\) 这么高时,正冲击区制的截距增加被 \(\sigma^2\) 系数的减少抵消——不对称性取决于当时的波动水平。
  2. (原书习题 4.4)马尔可夫转换 GARCH:\(r_t=1.25+a_t\);状态 1:\(\sigma_t^2=0.10a_{t-1}^2+0.93\sigma_{t-1}^2\);状态 2:\(\sigma_t^2=4.24+0.10a_{t-1}^2+0.78\sigma_{t-1}^2\);\(P(s_t=2\mid s_{t-1}=1)=0.15\),\(P(s_t=1\mid s_{t-1}=2)=0.05\)。已知 \(a_{100}=6.0\)、\(\sigma_{100}^2=50.0\)。(a) 若 \(s_{100}=2\) 确定,求 1 步波动率预测;(b) 若 \(P(s_{100}=2)=0.8\) 呢? 提示:两状态下的 1 步方差分别为 50.10 和 46.84。(a) \(P(s_{101}=2)=0.95\),预测 \(0.05\times50.10+0.95\times46.84=47.00\);(b) \(P(s_{101}=2)=0.8\times0.95+0.2\times0.15=0.79\),预测 \(0.21\times50.10+0.79\times46.84=47.52\)。
  3. 修改本章代码中的 fit_setar,同时对延迟 \(d\in\{1,2,3\}\) 做搜索,并用 SSR 选择 \(d\)。对式 (4.8) 的模拟数据,验证选出的 \(d=1\)。
  4. 用本章的 NW 核回归代码,把 \(y\) 换成 \(r_{t+1}\)、\(x\) 换成 \(r_t\)(数据用 TAR 模拟序列),画出 \(\hat m(x)\),验证它在 \(x=0\) 附近出现折点。再与局部线性回归 (4.25) 比较边界(\(|x|\) 很大处)的表现。
  5. 思考题:为什么在回测中用马尔可夫转换模型的平滑概率做仓位决策会高估策略表现?应如何修正? 提示:平滑概率用到了 \(t\) 之后的数据(前视偏差);应改用滤波概率,并在每个再估计时点只用当时可得数据滚动估计参数。

原书推荐习题:4.3、4.4(对应上面第 5、6 题),4.1、4.2(门限 GARCH,见第 04b 章练习)。


原书对照

本章小节 原书章节 PDF 页码
4.1 线性与非线性 第 4 章导言 p.195–197
4.2 双线性模型 4.1.1 p.197–198
4.3 TAR、TAR-GARCH 4.1.2 p.199–204
4.4 STAR 4.1.3 p.204–206
4.5 马尔可夫转换 4.1.4 p.206–209
4.6 非参数方法、FAR、NAAR、非线性状态空间 4.1.5–4.1.8 p.209–219
4.7 神经网络 4.1.9 p.219–225
TAR-GARCH 与 STAR 波动率的 RATS 程序;神经网络 R 命令 第 4 章附录 A、B p.242–244

(原书印刷页码约等于 PDF 页码减 20。)