---
title: "从散点到损失函数：回归、Beta 与量化系统第一章（2026-07-17）"
canonical: "https://gomars.fun/pages/1/"
updated: "2026-07-23T09:14:41Z"
---

# 从散点到损失函数：回归、Beta 与量化系统第一章（2026-07-17）

> 这不是一篇从公式开始的回归教程，而是一次认知路径的完整复盘：先把“时间序列”和“散点图”彻底分开，再理解回归线为什么会自动出现、为什么最小二乘不是“穿过最多点”，最后把损失函数放回 Alpha、风险、成本、组合与执行组成的完整量化系统里。

本文承接 quants/量化新手资产选择、策略与入门指南：资产品类全景图（2026年中版） 和 quants/机构级量化系统最小可运行模板选择指南：Top 5 开源仓库与学习路线（2026-07-15）。前两篇回答“量化可以做什么”和“完整系统怎样运行”，这一篇补上中间最重要的统计地基。

## 阅读指南

### 这篇文章解决什么问题

1. 为什么两条随时间变化的价格曲线，换一种画法就会变成“一坨散点”。
2. 散点图的横轴为什么不是时间，日期又去了哪里。
3. 回归线是人手画出来的，还是算法算出来的。
4. 为什么“命中最多散点”不是一条可用的最优标准。
5. 最小二乘、残差、损失函数、Beta、相关系数和 R² 分别在说什么。
6. 为什么模型在最小化损失，却不等于策略直接在最大化赚钱。
7. OLS、树模型、XGBoost、LightGBM、深度学习、Transformer 和 Foundation Model 位于同一棵技术树的什么位置。

### 读完应该获得什么能力

- 看到时间序列图和散点图时，不再混淆坐标轴含义。
- 能用一句话解释回归线、残差、Beta、相关系数和 R²。
- 能说明为什么最小二乘是一种选择，而不是宇宙唯一正确的规则。
- 能把“模型损失”“组合目标”“执行目标”和“最终收益”分成四件事。
- 能指出自己当前位于完整量化地图的哪一层，下一步为什么要学。

### 前置与后续阅读

- 前置：不要求高等数学，只需要理解百分比收益率和二维坐标。
- 建议顺序：本文 → 损失函数家族与稳健回归 → 因子检验与时间序列验证 → LightGBM/XGBoost → 风险、成本与组合构建。
- 如果想先看代码骨架，回到 quants/机构级量化系统最小可运行模板选择指南：Top 5 开源仓库与学习路线（2026-07-15）。

## 快速结论

1. **时间序列图里，横轴是日期；回归散点图里，横轴是一个变量，纵轴是另一个变量。** 日期没有被画在轴上，而是变成了每一个点的身份。
2. **回归线不是人凭感觉画的。** 普通最小二乘回归会自动选择截距 $\alpha$ 和斜率 $\beta$，使全部纵向残差的平方和最小。
3. **“穿过最多点”不是最优标准。** 连续数据中的点几乎不会恰好落在线上；如果人为规定“离线多近算命中”，答案又会随阈值变化。
4. **Beta 是斜率，不是相关系数。** Beta 回答“市场代理变动 1% 时，腾讯平均同向变多少”；相关系数回答“两者同步程度有多强”。
5. **R² 不是赚钱概率。** 它只说明样本中线性模型解释了多少波动；高 R² 不保证有 Alpha，更不保证扣除成本后赚钱。
6. **损失函数只负责训练模型。** 最终收益还要经过风险模型、成本模型、组合构建、执行、成交和归因反馈。
7. **XGBoost、LightGBM 和深度学习没有抛弃损失函数。** 它们仍然定义目标并优化，只是模型形状、正则化、优化方式和数据表达能力更复杂。
8. **你当前的位置不是“学完回归”，而是刚建立了 Alpha 模型层的入口。** 下一步先把数据口径、样本外验证和因子检验补牢，再上树模型。

## 这次真正值得保存的，是思考路径

知识点以后随时可以查，认知转折却很容易忘。今天的路径大致经历了六个节点。

### 节点一：误把所有横轴都看成时间

最初看到腾讯和恒生科技的图，直觉会把它想成两条随时间起伏的曲线：今天涨、明天跌，两条线彼此追逐。这种图当然存在，但它是**时间序列图**。

### 节点二：意识到日期可以不再当坐标轴

对每一个交易日，都可以算出两个数：

- 当天恒生科技市场代理的收益率 $x_t$。
- 当天腾讯的收益率 $y_t$。

然后把同一天的两个数配成一个坐标 $(x_t, y_t)$。1 月 3 日是一个点，1 月 4 日又是一个点。所有日期做完以后，横轴已经不再是时间，而是恒生科技代理的日收益；纵轴是腾讯日收益。

### 节点三：困惑“一坨点为什么还能有一条线”

散点没有天然连线顺序。回归线也不是把点按日期连起来，而是在问另一个问题：**有没有一条简单的直线，能够概括 x 与 y 的平均关系？**

### 节点四：从“穿过最多点”追问到最优标准

人的眼睛容易把“最优线”理解为穿过最多点，或者尽量从点云中间划过去。但“中间”必须变成可计算的规则。最小二乘给出的规则是：把每个点的预测误差平方，再全部相加，找总和最小的那条线。

### 节点五：发现真正的核心是损失函数

一旦追问“为什么偏偏用平方误差”，问题就从画线进入了机器学习的核心：我们必须先定义什么叫错、错多少、怎样汇总，然后模型才知道应该往哪个方向调整。

### 节点六：意识到损失函数只是量化系统的一小块

模型拟合得好，不等于仓位合理；仓位合理，不等于能低成本成交；成交完成，也不等于收益来源可持续。损失函数属于 Alpha 模型内部，赚钱是整套系统共同作用后的结果。

## 第一部分：同一批日期，怎样从两条曲线变成散点

### 时间序列图保留了“先后顺序”

设腾讯复权价格为 $P_t$，恒生科技市场代理的复权价格为 $Q_t$。时间序列图画的是：

- 横轴：日期 $t$。
- 纵轴：$P_t$ 或 $Q_t$。

它适合回答：什么时候上涨、什么时候回撤、两个资产是否在相近时期转向。

### 回归散点图主动丢掉了“先后顺序”

先把价格转成日收益率：

$$
r^{Tencent}_t = \frac{P_t}{P_{t-1}} - 1
$$

$$
r^{HSTECH}_t = \frac{Q_t}{Q_{t-1}} - 1
$$

再定义：

$$
x_t = r^{HSTECH}_t, \qquad y_t = r^{Tencent}_t
$$

于是，每个交易日变成一个点 $(x_t, y_t)$。散点图不再强调 1 月 3 日发生在 1 月 4 日之前，而是把所有交易日放在一起，观察两个变量的共同变化结构。

> [!important] 第一个“啊哈时刻”
> 时间并没有从数据中消失，只是没有继续占用坐标轴。日期现在是每个样本点的索引，而不是图上的 x 轴。

### 真实数据图：腾讯与恒生科技 ETF 代理

![腾讯与恒生科技 ETF 代理：从时间序列到回归与损失函数](https://gomars.fun/pages/assets/17474db463f496a7-956965346a/864d99cd0c5fc58c.png)

这张图使用 2024-01-02 至 2026-06-30 的港股日线复权收盘价：腾讯控股 00700，以及南方恒生科技指数 ETF 03033。恒生科技指数官方页面把 HSTECH 定义为符合筛选标准、在香港上市且科技主题业务暴露较高的 30 家大型科技公司；本文使用 03033 作为可交易代理，而不是把 ETF 数据冒充官方指数点位。[恒生科技指数官方页面](https://www.hsi.com.hk/eng/indexes/all-indexes/hstech?bb_dest=in)；[2026 年 3 月官方 Factsheet](https://www.hsi.com.hk/static/uploads/contents/en/dl_centre/factsheets/hsteche.pdf)

为什么使用 ETF 代理：

1. ETF 与腾讯都在港股交易时段成交，日期容易严格对齐。
2. ETF 是可交易资产，更接近真实组合会面对的价格、流动性与跟踪误差。
3. ETF 不是指数本身，会受费用、跟踪误差、折溢价和分红处理影响，因此结果应称为“对恒生科技暴露的代理回归”。

固定样本得到：

| 指标 | 结果 | 应该怎样读 |
| --- | ---: | --- |
| 价格观察数 | 611 | 两个标的都存在复权价格的共同交易日 |
| 日收益样本数 | 610 | 第一日只能作为计算下一日收益的基准 |
| Beta | 0.723 | ETF 代理日收益变动 1% 时，腾讯日收益在样本内平均同向变动约 0.72% |
| 相关系数 | 0.801 | 两者同日涨跌具有较强线性同步性 |
| R² | 0.641 | 简单线性模型在样本内解释了腾讯约 64.1% 的日收益波动 |
| 日截距 Alpha | 0.0459% | 只是该窗口的回归截距，不能直接解释成可交易超额收益 |

这里最容易被误读的是 Alpha。把日截距机械复利年化约为 12.3%，不代表已经找到一个年化 12.3% 的策略：样本窗口有限，收益并不独立同分布，腾讯本身还是指数成分股，ETF 与指数存在跟踪误差，而且这里没有样本外验证、风险调整、交易成本和可执行组合。

数据页面：[腾讯 00700 历史价格](https://webbsite.0xmd.com/dbpub/hpu.asp?i=3601&sort=dateup)；[南方恒生科技指数 ETF 03033 历史价格](https://webbsite.0xmd.com/dbpub/hpu.asp?i=29644&sort=dateup)。仓库里同时保存了固定 CSV 快照，避免以后数据源变化导致文章中的数字悄悄漂移。

## 第二部分：回归线到底是怎样算出来的

最简单的线性回归写成：

$$
y_t = \alpha + \beta x_t + \varepsilon_t
$$

其中：

- $y_t$：当天腾讯真实收益。
- $\alpha + \beta x_t$：模型根据当天恒生科技代理收益给出的预测。
- $\varepsilon_t$：真实值减预测值，也就是残差。
- $\alpha$：截距。
- $\beta$：斜率。

### 残差是“竖着量”的误差

对某个点 $(x_t, y_t)$，回归线在同一个 $x_t$ 上给出预测 $\hat y_t$：

$$
\hat y_t = \alpha + \beta x_t
$$

残差为：

$$
\varepsilon_t = y_t - \hat y_t
$$

普通最小二乘最小化的是纵向残差，不是点到直线的几何垂直距离。这是因为模型把 x 当解释变量，把 y 当被解释变量；把 x、y 对调后，得到的回归线通常不是原来那一条。

### “最优线”必须先定义什么叫错

普通最小二乘的损失是：

$$
L(\alpha, \beta) = \sum_{t=1}^{n}(y_t - \alpha - \beta x_t)^2
$$

算法会找使 $L$ 最小的 $\alpha$ 和 $\beta$。scikit-learn 对 `LinearRegression` 的定义也是最小化观测目标与线性预测之间的残差平方和。[scikit-learn Ordinary Least Squares 文档](https://scikit-learn.org/stable/modules/linear_model.html#ordinary-least-squares)

在只有一个解释变量且包含截距时，斜率可以直接写成：

$$
\beta = \frac{Cov(x,y)}{Var(x)}
$$

截距是：

$$
\alpha = \bar y - \beta \bar x
$$

所以回归线不是“看着差不多”画出来的，而是由全部样本共同决定。

### 为什么不是“穿过最多点”

这个直觉有三个问题：

1. 连续变量的点几乎不可能精确落在同一条线上，“精确命中数”通常接近零。
2. 如果规定离线 0.1% 算命中，那么把阈值改成 0.2%，最优线可能立刻改变。
3. 命中只区分对错，不区分偏差 0.21% 和偏差 10%，会丢失大量信息。

最小二乘则给每个点一个连续误差，并且平方会让大误差受到更重惩罚。上图右下角的 U 形曲线，就是在尝试不同 Beta 时得到的平方残差和；最低点对应当前样本的 $\beta \approx 0.723$。

### 为什么最小二乘常用，但不是唯一选择

最小二乘有几个工程优点：

- 在线性模型中目标函数凸，解稳定且容易计算。
- 可微，便于优化。
- 在条件误差近似高斯、方差稳定等假设下，有清晰统计解释。
- 平方会强烈惩罚大误差。

但最后一点也是缺点：金融收益经常有厚尾和异常点，平方损失会被极端行情显著拉动。不同问题可以选择不同损失：

| 损失 | 主要关注 | 适合什么问题 | 代价 |
| --- | --- | --- | --- |
| 平方损失 L2 | 大误差惩罚更重 | 普通回归、可微基线 | 对异常点敏感 |
| 绝对误差 L1 | 误差绝对值 | 稳健回归 | 在 0 处不可微，优化与统计性质不同 |
| Huber | 小误差平方、大误差线性 | 同时要平滑与抗异常 | 要选择转折阈值 |
| Quantile / Pinball | 某个条件分位数 | 风险区间、尾部预测 | 不再预测条件均值 |
| Log loss | 概率是否校准 | 涨跌分类、事件概率 | 需要正确处理概率标签 |
| Ranking loss | 相对排序 | 横截面选股 | 排名好不等于收益和容量好 |

> [!note] 它在量化地图中的位置
> 回归形式、标签、损失函数、正则化和训练算法都属于 **Alpha 模型层**。它们负责把特征变成预期收益、方向、概率或排序分数。

## 第三部分：Beta、相关系数、R² 和 Alpha 不要混成一件事

| 概念 | 核心公式或定义 | 回答的问题 | 不能回答什么 |
| --- | --- | --- | --- |
| Beta | $Cov(x,y)/Var(x)$ | x 变化 1 个单位时，y 平均变化多少 | 两者关系是否稳定、是否因果、策略是否赚钱 |
| 相关系数 | $Cov(x,y)/(\sigma_x\sigma_y)$ | 两者线性同步程度有多强 | 变化幅度比例、因果方向 |
| R² | $1-SSE/SST$ | 模型解释了样本中多少 y 的波动 | 样本外效果、Alpha、成本后收益 |
| Alpha 截距 | $\bar y-\beta\bar x$ | 当 x 为 0 时，模型给出的 y 条件均值 | 稳定超额收益或可交易收益保证 |

### Beta 是带单位的斜率

如果 x、y 都用百分比收益，Beta 表示百分比变化的比例。本例 Beta 小于 1，只说明在这个样本窗口里，腾讯对 ETF 代理同日波动的线性敏感度较低；它不是“安全分数”，也不是“质量分数”。换基准、换频率、换窗口，Beta 都会变化。

### 相关系数是标准化后的同步程度

相关系数被限制在 -1 到 1。它不关心两者各自的波动单位，只关心标准化后的共同涨跌。本例相关系数约 0.801，说明点云大体沿右上方向分布，但仍存在明显残差。

### 简单一元回归中，R² 等于相关系数平方

在**包含截距的一元线性回归**中：

$$
R^2 = Corr(x,y)^2
$$

本例 $0.801^2 \approx 0.641$。但加入多个特征、去掉截距、使用样本外 R² 或采用其他模型后，不能再不加条件地套用这条关系。

### 高 R² 可能只是高 Beta 暴露，不是 Alpha

如果腾讯与恒生科技代理同步性很强，模型很容易解释大量波动；但这种解释主要来自共同市场暴露。真正的 Alpha 问题是：在已知市场、行业、风格与其他风险暴露之后，是否还能产生稳定、样本外、成本后的增量预测。

## 第四部分：潜意识里的目标是赚钱，但模型看到的不是钱

“量化的目标不就是赚钱吗？”这句话在系统级别没错，在模型训练层面却过于模糊。系统里至少有四种不同目标。

### 1. 模型训练目标

模型看见特征 $X$ 和标签 $y$，通过最小化 MSE、Log loss、Ranking loss 等损失学习参数。它负责预测，不直接知道你的资金、换手、冲击和回撤承受力。

### 2. 研究评估目标

研究者用样本外 IC、Rank IC、MSE、分类校准、分层收益、稳定性和特征漂移判断模型是否有增量信息。这一步要防止数据泄漏、幸存者偏差和反复试验造成的过拟合。

### 3. 组合构建目标

组合层常见的思想是：

$$
\max_w \quad \text{预期收益} - \lambda \cdot \text{风险} - \gamma \cdot \text{交易成本}
$$

同时满足仓位、行业、杠杆、流动性和换手约束。模型分数到这里才变成目标权重。

### 4. 执行目标

执行层要把目标权重变成真实订单，在成交概率、价差、冲击、时间风险和机会成本之间取舍。一个预测正确但无法成交的信号，对真实账户没有价值。

![量化系统全景图：从数据到反馈](https://gomars.fun/pages/assets/17474db463f496a7-956965346a/bb4793acc1772a7d.png)

Excalidraw 可编辑源文件：[量化系统全景图：从数据到反馈](https://gomars.fun/pages/assets/17474db463f496a7-956965346a/c4d887d99a1234c3.excalidraw.md)

这张图最重要的不是层数，而是接口：

| 层 | 输入 | 输出 |
| --- | --- | --- |
| 数据层 | 原始行情、财务、事件、另类数据 | 可复现特征、标签、训练/验证/测试切分 |
| Alpha 模型 | 特征与标签 | 预期收益、方向、概率或排名 |
| 风险模型 | 持仓、暴露、历史协方差与限额 | 风险预测和约束 |
| 成本模型 | 订单、价差、成交量、波动 | 预期费用、滑点、冲击与容量 |
| 组合构建 | Alpha + 风险 + 成本 | 目标权重 |
| 执行模型 | 目标权重 + 市场状态 | 订单、成交、真实持仓与现金 |
| 归因反馈 | 收益、持仓、成交、风险 | 哪一层有效、哪一层失效、下一轮研究问题 |

> [!important] 第二个“啊哈时刻”
> 损失函数不是量化系统的最终目标，而是 Alpha 模型训练时使用的局部语言。系统最终是否赚钱，要看预测信息能否穿过风险、成本、组合和执行层而不被消耗掉。

## 第五部分：从最小二乘到 XGBoost、LightGBM、Transformer

技术演进不是“新模型把旧模型推翻”，而是模型表达能力、训练方式和工程效率不断扩展。

| 技术 | 模型怎样表达关系 | 通常怎样训练 | 在量化中的价值 | 主要风险 |
| --- | --- | --- | --- | --- |
| OLS | 一条直线或超平面 | 最小化平方损失 | 快、透明、适合做第一基线和暴露解释 | 线性假设、异常点、共线性、非平稳 |
| 决策树 | 按特征阈值切成多个区域 | 选择能最大幅度降低损失的切分 | 自动捕捉非线性和交互 | 单树不稳定、容易过拟合 |
| GBDT | 多棵树逐步叠加 | 每轮拟合当前损失的负梯度 | 强大的表格数据基线 | 时间泄漏、参数搜索过度、换手未约束 |
| XGBoost | 正则化的提升树集合 | 训练损失 + 模型复杂度，使用一阶/二阶信息 | 成熟、稳健、可处理稀疏特征 | 结果仍依赖标签、切分和样本外验证 |
| LightGBM | 直方图切分、leaf-wise 生长的提升树 | 梯度提升并优化训练速度与内存 | 大样本、多特征、快速实验 | 小样本 leaf-wise 更易过拟合，需限制叶子与深度 |
| 深度学习 | 多层可学习表示 | 反向传播最小化目标函数 | 原始序列、图像、文本、多模态 | 数据需求大、解释难、非平稳市场中脆弱 |
| Transformer | 注意力建模序列和跨位置关系 | 反向传播 + 大规模并行训练 | 长序列、新闻/公告/文本、多资产关系 | 计算成本、泄漏、过拟合、并不天然适合所有表格 Alpha |
| Foundation Model | 大规模预训练后迁移或微调 | 预训练目标 + 下游适配 | 文本理解、研究助手、多任务表征 | 训练语料时点、可审计性、幻觉、部署与数据合规 |

### XGBoost 和 LightGBM 仍然在优化损失

XGBoost 的核心目标可以概括为“训练损失 + 树复杂度正则项”，不是离开损失函数另起炉灶。官方参数文档也把学习任务、目标函数、L1/L2 正则与树构建方式明确分开。[XGBoost 参数文档](https://xgboost.readthedocs.io/en/stable/parameter.html)；[XGBoost 论文](https://arxiv.org/abs/1603.02754)

LightGBM 主要在树的工程实现上做了重要优化：连续特征分桶形成直方图，并采用 leaf-wise 生长；在叶子数固定时它往往能更快降低损失，但小样本下也更容易过拟合，因此仍要控制 `num_leaves`、`max_depth` 与叶子最小样本数。[LightGBM Features 官方文档](https://lightgbm.readthedocs.io/en/latest/Features.html)

### 深度学习和 Transformer 也没有摆脱目标函数

神经网络通过反向传播计算损失对参数的梯度。Transformer 增加了注意力等结构，使模型更擅长处理序列和跨位置关系，但仍然需要明确训练目标。PyTorch 也把 `Transformer` 定位为原始架构的参考实现，并提醒现代高性能实现发展很快。[PyTorch Transformer 文档](https://docs.pytorch.org/docs/stable/generated/torch.nn.modules.transformer.Transformer.html)

### 为什么现在不应直接跳到 Foundation Model

对当前阶段，模型复杂度不是主要瓶颈。更容易决定成败的是：

1. 标签有没有未来信息。
2. 复权、停牌、退市和成分股历史是否正确。
3. 训练、验证和测试是否按时间切分。
4. 因子在不同市场状态下是否稳定。
5. 预测增量能否覆盖风险、换手和冲击。

如果 OLS 和树模型基线都没有通过这些检查，Transformer 只会更昂贵地放大同一批错误。

## 常见误区清单

### 误区 1：散点图横轴仍然是时间

纠正：横轴已经变成恒生科技代理收益率；日期只是点的索引。

### 误区 2：散点图是在画两条时间曲线

纠正：每个点同时包含同一天的两个变量，没有“第一条线”和“第二条线”。

### 误区 3：回归线是人手动划出来的

纠正：给定损失、模型形式和数据，算法会算出确定的参数；更换损失或样本，线才会变化。

### 误区 4：穿过最多点的线就是最好

纠正：连续数据几乎没有精确命中；最小二乘比较全部残差平方和。

### 误区 5：Beta 越大越好，或者越小越安全

纠正：Beta 只是相对某个基准、某个窗口和某种频率的敏感度，不是质量评分。

### 误区 6：相关性高就可以配对交易

纠正：相关不等于价差平稳，更不等于存在可交易的均值回归。配对交易还要研究协整、结构变化、成本和卖空约束。

### 误区 7：R² 高就是预测能力强

纠正：样本内高 R² 可能只反映共同市场暴露；真正需要样本外、增量、成本后的证据。

### 误区 8：模型的目标就是赚钱

纠正：模型优化可计算的损失；组合和执行层才把预测转成资金结果。

### 误区 9：模型越新越高级，效果一定越好

纠正：金融数据少、噪声大、分布会变。透明、稳定、可复现的简单基线，往往比没有验证纪律的复杂模型更有价值。

## 如何复现和更新本文图表

### 统计图

固定数据快照：`quants/foundations/data/tencent_csop_hstech_daily_2024-01-02_2026-06-30.csv`

绘图源文件：`quants/foundations/scripts/build_regression_charts.py`

在 vault 根目录运行：

```bash
python3 quants/foundations/scripts/build_regression_charts.py
```

脚本优先使用 Seaborn 主题，未安装 Seaborn 时会回退到 Matplotlib 自带样式；计算和绘图只依赖 NumPy 与 Matplotlib。以后换成别的股票或新的数据窗口，只要保持 CSV 的三列结构不变，文章中的图片路径无需修改。

### 结构图

本文没有使用 Mermaid。量化系统图和学习路线图都保存了：

- 可直接在 Obsidian 与网页中显示的 PNG 预览。
- 用于无损缩放和后续导出的 SVG 版本。
- 可继续拖动和修改的 `.excalidraw.md` 源文件。

当前这个 vault 的插件清单里没有启用 Excalidraw，但这不影响预览；需要编辑源图时，再安装或启用 Excalidraw 社区插件并切换到 Excalidraw View。

## 后续学习导航

![量化学习路线图：从回归到完整策略](https://gomars.fun/pages/assets/17474db463f496a7-956965346a/3d28097a9158e7f2.png)

Excalidraw 可编辑源文件：[量化学习路线图：从回归到完整策略](https://gomars.fun/pages/assets/17474db463f496a7-956965346a/f708416f81e65b95.excalidraw.md)

| 阶段 | 为什么学 | 学完获得什么能力 | 最小交付物 |
| --- | --- | --- | --- |
| 0. 数据与收益率 | 错误口径会让后面全部失真 | 复权、对齐、收益率、标签、时间切分 | 一份可审计数据快照与数据字典 |
| 1. OLS 与损失函数 | 建立预测、误差和参数的直觉 | 散点、残差、Beta、相关、R²、L1/L2/Huber | 手算小样本 + 可复现回归图 |
| 2. 因子检验 | 防止只在样本内看起来有效 | IC、Rank IC、分层、滚动稳定性、泄漏检查 | 一个单因子样本外报告 |
| 3. 树模型基线 | 处理非线性和特征交互 | LightGBM/XGBoost、时间序列 CV、特征重要性 | 与 OLS 同数据同标签的严格对照 |
| 4. 风险·成本·组合 | 预测分数不能直接当仓位 | 风险暴露、协方差、成本、换手、约束优化 | 从预测分数到目标权重的可解释规则 |
| 5. 回测与执行 | 目标权重最终必须成交 | 订单、手续费、滑点、冲击、成交与对账 | 成本前后回测与执行日志 |
| 6. 归因与迭代 | 知道收益究竟来自哪里 | Alpha、Beta、行业、成本和执行归因 | 监控面板、失效条件与研究反馈 |
| 可选支线 | 只有在传统基线稳定后再扩大表达能力 | 序列、多模态、文本、迁移学习 | 与树模型的样本外、成本后公平比较 |

### 下一步最合理的主题

不是立刻训练 Transformer，而是沿着今天的问题继续追：

1. 同一批数据分别使用 L2、L1、Huber 和 Quantile loss，回归线会怎样变化。
2. 人为加入极端行情点，观察每种损失对异常值的敏感度。
3. 把固定全样本回归改成滚动 60 日或 120 日回归，观察 Beta 和相关性是否稳定。
4. 再把线性模型换成 LightGBM/XGBoost，但保持数据、标签和时间切分完全不变，只比较模型层。

这会自然形成下一章：**从最小二乘到稳健损失：金融厚尾、滚动 Beta 与样本外验证。**

## 自测：如果能回答这些问题，第一章才算真正掌握

- [ ] 为什么同一批日期既能画成两条时间曲线，也能画成散点？
- [ ] 散点图中的某一个点代表什么？
- [ ] 日期在散点图中去了哪里？
- [ ] 残差为什么是 $y-\hat y$？
- [ ] 最小二乘最小化的到底是什么？
- [ ] 为什么“穿过最多点”不是稳定的目标？
- [ ] Beta、相关系数和 R² 分别回答什么问题？
- [ ] 为什么样本内 R² 高不等于策略会赚钱？
- [ ] 损失函数位于完整量化系统的哪一层？
- [ ] XGBoost、LightGBM 和 Transformer 为什么仍然需要损失函数？
- [ ] 当前下一步应该补数据与验证，还是直接上更复杂模型？为什么？

## 一句话收束

回归真正教会我们的，不是怎样画一条线，而是量化研究最基本的工作方式：**先把问题变成数据，再把“什么叫错”写成目标，用样本外证据检查它，最后让预测穿过风险、成本、组合与执行，才有资格讨论赚钱。**
