量化机器学习数学基础模块
模块概述
本模块系统性地介绍量化机器学习所需的数学基础知识。数学不仅是理解机器学习算法的基础,更是构建稳健量化交易系统的核心能力。在量化投资中,数学帮助我们:
- 量化不确定性:用概率论描述市场的不确定性,评估策略的统计显著性
- 建模时间依赖:用时间序列分析捕捉价格的动态特征和规律
- 优化组合配置:用线性代数和优化理论求解最优投资组合
- 控制风险暴露:用统计学方法识别和管理尾部风险
学习目标
完成本模块学习后,你将能够:
概率论与统计学
- 理解并应用常用概率分布描述金融变量
- 掌握贝叶斯推断在因子预测中的应用
- 独立进行假设检验,正确解读 p 值和显著性
- 使用 Bootstrap 方法构建置信区间
- 理解极值理论在尾部风险建模中的应用
时间序列分析
- 判断时间序列的平稳性并进行相应检验
- 使用 ARIMA/GARCH 模型拟合和预测金融时间序列
- 应用协整理论进行配对交易
- 使用 Kalman 滤波器估计时变参数
- 用 HMM 识别市场状态转换
线性代数与优化
- 熟练使用 NumPy 进行矩阵运算
- 理解 PCA 的原理并在因子降维中应用
- 估计和优化协方差矩阵
- 使用凸优化方法求解投资组合问题
- 从优化视角理解正则化的作用
前置知识
| 领域 | 要求 | 说明 |
|---|---|---|
| Python | 中级 | 熟悉 Python 语法、函数、类 |
| NumPy | 入门 | 了解数组创建和基本操作 |
| 微积分 | 入门 | 理解导数、偏导数、积分的概念 |
| 基础统计 | 入门 | 了解均值、方差、标准差的概念 |
不需要你是数学专业或统计学背景。本模块采用”先直觉后严谨”的方式,每个概念都会用金融场景解释,再给出数学推导和代码实现。
文件导航
| 文件 | 内容 | 预计时间 |
|---|---|---|
| 01-概率论与统计学.md | 概率分布、贝叶斯推断、假设检验、Bootstrap、极值理论 | 3-4 小时 |
| 02-时间序列分析.md | 平稳性、ARIMA、GARCH、协整、Kalman滤波、HMM | 3-4 小时 |
| 03-线性代数与优化.md | 矩阵运算、PCA、协方差矩阵、凸优化、梯度下降 | 2-3 小时 |
总计学习时间: 约 8-10 小时
学习建议
推荐学习路径
- 第一次阅读:按顺序阅读,专注于理解”是什么”和”为什么”,不要陷入数学推导细节
- 动手实践:运行每个代码示例,修改参数观察结果变化
- 第二遍阅读:关注公式推导,理解数学原理
- 项目应用:选择一个自己的量化项目,尝试应用所学知识
学习技巧
- 关注金融解释:每个数学概念都有对应的金融场景,理解这种对应关系比记住公式更重要
- 运行代码:所有代码都是可运行的,用模拟数据演示,不需要外部数据源
- 画图思考:可视化是理解数学直觉的好工具,尝试自己修改代码画图
- 建立联系:思考不同模块之间的联系,比如 GARCH 和波动率、PCA 和因子正交化
数学基础在量化 ML 中的位置
┌─────────────────────────────────────┐
│ 量化机器学习完整知识体系 │
└─────────────────────────────────────┘
│
┌─────────────────────────────┼─────────────────────────────┐
│ │ │
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ 数学基础 │ │ 机器学习 │ │ 量化应用 │
│ (本模块) │──────────▶│ 算法原理 │──────────▶│ 策略开发 │
│ │ │ │ │ │
│ • 概率统计 │ │ • 监督学习 │ │ • 因子挖掘 │
│ • 时间序列 │ │ • 无监督学习 │ │ • 组合优化 │
│ • 线性代数 │ │ • 深度学习 │ │ • 风险管理 │
│ • 优化理论 │ │ • 强化学习 │ │ • 回测评估 │
└───────────────┘ └───────────────┘ └───────────────┘
│ ▲ │
└─────────────────────────────┼─────────────────────────────┘
│
数学基础支撑上层
机器学习算法和应用
核心知识点速查
概率论与统计学
| 概念 | 金融应用 | 关键公式/方法 |
|---|---|---|
| 正态分布 | 收益率建模、VaR 计算 | |
| t 分布 | 厚尾收益、IC 显著性检验 | 比 ND 有更厚的尾部 |
| 贝叶斯定理 | 因子预测、概率更新 | $P(A |
| 中心极限定理 | IC 统计推断基础 | 样本均值趋于正态分布 |
| t 检验 | IC 显著性判断 | |
| Bootstrap | IC 置信区间 | 重采样方法 |
| EVT | 尾部风险建模 | POT/GPD 方法 |
时间序列分析
| 概念 | 金融应用 | 关键方法 |
|---|---|---|
| 平稳性 | 确保统计推断有效 | ADF 检验 |
| ACF/PACF | 识别 ARIMA 阶数 | 自相关函数图 |
| ARIMA | 收益率预测 | Box-Jenkins 方法 |
| GARCH | 波动率建模/预测 | 条件异方差建模 |
| 协整 | 配对交易、统计套利 | Engle-Granger 检验 |
| Granger 因果 | 因子领先滞后关系分析 | 格兰杰因果检验 |
| Kalman 滤波 | 时变 Beta、状态估计 | 状态空间模型 |
| HMM | 市场状态识别 | 隐马尔可夫模型 |
线性代数与优化
| 概念 | 金融应用 | 关键方法 |
|---|---|---|
| 矩阵运算 | 投资组合计算 | NumPy 线性代数 |
| 特征分解 | PCA、因子分析 | np.linalg.eig |
| SVD | 降维、去噪 | np.linalg.svd |
| PCA | 因子正交化、降维 | sklearn.decomposition.PCA |
| 协方差矩阵 | 风险建模 | LW 压缩、EWM |
| 二次规划 | 均值方差优化 | cvxpy、scipy.optimize |
| 梯度下降 | 神经网络训练 | SGD、Adam |
| 正则化 | 防止过拟合 | L1/L2 惩罚 |
常用 Python 库
本模块使用的 Python 库:
# 数值计算
import numpy as np
import scipy.stats as stats
from scipy import optimize
from scipy.optimize import minimize
# 时间序列分析
from statsmodels.tsa.stattools import adfuller, acf, pacf, grangercausalitytests
from statsmodels.tsa.arima.model import ARIMA
from statsmodels.tsa.statespace.kalman_filter import KalmanFilter
# 优化
import cvxpy as cp
# 机器学习
from sklearn.decomposition import PCA
from sklearn.covariance import LedoitWolf
from sklearn.linear_model import Lasso, Ridge
# 绘图
import matplotlib.pyplot as plt
import seaborn as sns本模块特点
1. 零依赖 qlib
所有示例使用纯 Python + NumPy/SciPy,不依赖 qlib 或其他量化框架,便于理解底层原理。
2. 模拟数据
所有代码使用模拟数据演示,不需要外部数据源,即学即练。
3. 金融场景导向
每个数学概念都对应量化金融的具体应用场景,避免抽象空谈。
4. 完整代码示例
每个方法都有完整的 Python 实现,可以运行、修改、实验。
5. 中文化
所有内容用中文撰写,包括代码注释,降低学习门槛。
下一步
开始学习 01-概率论与统计学.md,建立量化 ML 的统计学思维基础。