ARCH(1) 模型

波动率预测 · 动态对冲策略
第3讲 · 条件异方差
📐 1. ARCH(1) 模型定义 自回归条件异方差

均值方程

设收益率序列 rt 满足:

rt = μ + εt ,   εt = σt · zt

其中 zt ~ i.i.d. N(0,1) (或标准化t分布),σt 为条件波动率。

方差方程 (ARCH(1))

条件方差 σt2 依赖于过去残差平方:

σt2 = ω + α1 · εt-12

约束:ω > 0 , α1 ≥ 0 (保证方差为正)。
若 α1 = 0 则为常数方差。

⚙️ 2. 核心性质 无条件矩 · 尖峰厚尾

统计性质

  • 无条件均值 E[εt] = 0
  • 无条件方差 Var(εt) = ω / (1 - α1) , 要求 α1 < 1
  • 峰度 > 3 (若 α1 > 0) → 厚尾
  • 自相关 εt2 存在正自相关
  • 平稳性 二阶平稳 ⇔ α1 ∈ [0,1)

波动率聚集 (Volatility Clustering)

大的 εt-12 导致大的 σt2,从而高波动后跟高波动,形成聚集效应。ARCH(1) 通过 α1 捕捉该现象。

▶ 记忆衰减: 冲击影响以 α1k 衰减。
εt-1² σt² εt α₁ · zt · √ 滞后一期反馈 (t → t+1)
📊 3. 参数估计 (MLE) 极大似然估计

似然函数 (高斯假设)

对于样本 t=1,…,T,条件对数似然:

ℓ(θ) = -½ Σ [ ln(2π) + ln(σt²) + εt² / σt² ]

其中 θ = (μ, ω, α₁)。
通常忽略常数项,最大化:

ℓ(θ) ∝ -½ Σ [ ln(σt²) + εt² / σt² ]

数值优化 & 步骤

  1. 初始化:设定 ω, α₁ 初值 (如 OLS 残差方差)。
  2. 迭代:给定 θ,计算 εt = rt - μ,σt² = ω + α₁ εt-1²。
  3. 计算似然 并利用梯度/数值方法 (BFGS) 更新参数。
  4. 约束:ω > 0, 0 ≤ α₁ < 1 (平稳性)。
✔ 常用库: arch (Python) / rugarch (R)
# Python · ARCH(1) 伪代码 (MLE)
import numpy as np
from scipy.optimize import minimize

def arch1_loglik(theta, r):
    mu, omega, alpha1 = theta
    eps = r - mu
    T = len(eps)
    sigma2 = np.zeros(T)
    sigma2[0] = omega / (1 - alpha1)  # 无条件方差初始化
    for t in range(1, T):
        sigma2[t] = omega + alpha1 * eps[t-1]**2
    ll = -0.5 * np.sum(np.log(sigma2[1:]) + eps[1:]**2 / sigma2[1:])
    return -ll  # 极小化负对数似然

# 约束: omega>0, 0<=alpha1<1
bounds = [(None, None), (1e-6, None), (0, 0.999)]
res = minimize(arch1_loglik, [0, 0.01, 0.3], args=(r,), bounds=bounds, method='L-BFGS-B')
mu_hat, omega_hat, alpha1_hat = res.x
🔍 4. 模型检验 诊断与验证

残差诊断

  • 标准化残差:zt = εt / σt 应近似 i.i.d. N(0,1)。
  • Ljung-Box Q 检验:对 zt 及 zt² 检验自相关。若模型正确,zt² 不应有显著自相关。
  • ARCH-LM 检验:对残差平方进行拉格朗日乘子检验,判断是否残留 ARCH 效应。

信息准则 & 模型选择

  • AIC = -2ℓ + 2k (k 参数个数)
  • BIC = -2ℓ + k ln(T)
  • 更小值表示更优。可比较 ARCH(1) vs ARCH(2) 或 GARCH(1,1)。
📌 若 α₁ 显著且残差平方自相关消失 → 模型充分。
检验方法原假设 H₀统计量决策准则
Ljung-Box (z²)残差平方无自相关Q(m) ~ χ²(m)p > 0.05 不拒绝
ARCH-LM (m阶)无 ARCH 效应LM = T·R² ~ χ²(m)p > 0.05 接受 H₀
Jarque-Bera (z)正态性JB ~ χ²(2)金融数据常拒绝,但一致性仍可
参数显著性 (t检验)α₁ = 0t = α₁ / se(α₁)|t| > 1.96 拒绝
估计 ARCH(1) 残差诊断 通过检验? 是 否 → 扩展模型 GARCH / EGARCH