Quantitative Methods
多元回归、时间序列、机器学习、大数据等量化分析方法。
Module 1 · 多元回归基础与假设
Multiple linear regression 使用两个或以上自变量来解释因变量的变异,比单变量回归更能刻画金融变量间的复杂关系;若使用不当,则会产生伪相关与糟糕预测。
- 多元回归用于解释或预测一个因变量与多个自变量的线性关系。
- 常见应用:解释金融变量关系、检验既有理论、做预测。
- 分析师需做的决策:选因变量、选自变量、选模型形式、明确目标(预测 vs. 理解)。
- 软件示例:Excel(Data Analysis > Regression)、Python(statsmodels、sklearn、scipy)、R(lm)、SAS(PROC REG)、STATA(regress)。
- b₀:截距,所有自变量为 0 时 Y 的期望值。
- b₁…bₖ:偏回归系数(partial slope),其他自变量不变时,Xⱼ 对 Y 的边际影响。
- εᵢ:随机误差项;n 必须大于 k。
金融世界中单因子往往不足以解释变量。多元回归常用于:
- 用 Fama–French 五因子模型解释股票超额收益(size、value、profitability、investment、market)。
- 用财务杠杆、盈利能力、营收增速、市场份额变化预测公司财务困境。
- 用政治稳定性、经济条件、ESG 等国家风险维度解释股票回报。
回归流程(Regression Process):
- 指定模型(含变量类型:连续 / 离散 dummy)。
- 若因变量连续 → 传统回归;若离散(如是否被并购)→ logistic regression。
- 估计模型并检验假设是否满足。
- 检验 goodness-of-fit 与 out-of-sample 表现。
- 用于关系识别、理论检验或预测。
偏回归系数 bⱼ 表示在其他自变量不变的前提下,Xⱼ 每变化一个单位 Y 的变化量。
- BY、CS 均为 0 时,月均收益约 0.0023%(≈ 年化 0.028%)。
- BY 上升 1 单位 → RET 下降 5.0585%(有效久期 = 5.0585)。
- CS 上升 1 单位 → RET 下降 2.1901%。
- 若 BY = 0.005、CS = 0.001:
RET = 0.0023 − 5.0585×0.005 − 2.1901×0.001 = −0.0252 = −2.52%
- 截距:三因子均为 0 时,组合期望回报 = 1.5324%。
- MKTRF ↑1% → 组合回报 ↑0.5892%。
- SMB ↑1% → 组合回报 ↓0.8719%。
- HML ↑1% → 组合回报 ↓0.0560%。
- 当 MKTRF=1, SMB=4, HML=−2:
R = 1.534 + 0.5892×1 − 0.8719×4 − 0.0560×(−2) = −1.254
| 假设 | 含义 |
|---|---|
| 1. Linearity 线性 | 因变量与自变量呈线性关系。 |
| 2. Homoskedasticity 同方差 | 残差方差在所有观测值中相同。 |
| 3. Independence of errors | 观测值相互独立,残差不相关。 |
| 4. Normality 正态性 | 残差服从正态分布。 |
| 5. Independence of X | (a) 自变量不是随机变量;(b) 自变量之间不存在精确线性关系(避免完全多重共线性)。 |
若自变量存在精确线性关系,模型无法估计;近似线性关系(显著的两两相关)会导致系数解释困难。
以下图表使用模拟数据(基于教材 ABC × Fama–French 三因子回归参数生成,N=120,并植入第 7、25、95 月三个 outliers)以演示诊断图的形态,非原始数据。
- Multiple linear regression
- 使用两个及以上自变量解释因变量变异的建模方法。
- Partial regression coefficient
- 在其他自变量不变时,某自变量每变化一单位对因变量的影响。
- Scatterplot matrix (pairs plot)
- 展示多组变量间散点图(对角线为各变量直方图)的可视化方法。
- Normal Q-Q plot
- 比较残差分布与理论正态分布的可视化工具。
Module 2 · 拟合优度评估与模型解读
本模块讨论如何用 ANOVA、Adjusted R²、AIC/BIC 判断模型拟合优度;如何对一个或多个系数做 t 检验与联合 F 检验;以及如何用多元回归进行预测与区间估计。
- Adjusted R² 调整自由度,加入 |t|>1 的变量会上升,反之下降。
- AIC 用于预测目的,BIC 用于追求最佳拟合;两者均越低越好。
- 单系数 t 检验与简单回归一致。
- 联合 F 检验比较 restricted 与 unrestricted 嵌套模型,H₀ 为被排除变量的斜率全部为 0。
- General linear F-test 检验全部斜率是否同时为 0。
- 预测时须包含所有变量与截距;预测区间同时反映 model error 与 sampling error,故比样本内回归标准误更宽。
R² = SSR / SST。多元回归中加入变量后 R² 只增不减,故不再适合作为评估指标,原因:
- 不反映系数是否显著。
- 不反映系数与预测是否有偏。
- 过拟合时 R² 可能很高但模型很差;资产定价模型 R² 低也可能是好模型。
- k ≥ 1 时,Adjusted R² < R²;Adjusted R² 可为负。
- 新变量 |t| > 1 → Adjusted R² 上升;|t| < 1 → 下降。
- 注意 |t|=1 仍达不到 5% / 1% 显著性,门槛很低。
R² = 0.6155,Adjusted R² = 0.5718,F = 14.0853 (p<0.0000)。
| Source | df | SS | MS |
|---|---|---|---|
| Regression | 5 | 90.6234 | 18.1247 |
| Residual | 44 | 56.6182 | 1.2868 |
| Total | 49 | 147.2416 | — |
验证:R² = 90.6234 / 147.2416 = 0.6155。
BIC 对参数惩罚更大(ln n > 2),偏好更精简模型。两者绝对值无意义,仅比较相对值。
| Model | R² | Adj R² | AIC | BIC |
|---|---|---|---|---|
| F1 | 0.541 | 0.531 | 19.079 | 22.903 |
| F1, F2 | 0.541 | 0.521 | 21.078 | 26.814 |
| F1, F2, F3 | 0.562 | 0.533 | 20.743 | 28.393 |
| F1, F2, F3, F4 | 0.615 | 0.580 | 16.331 | 25.891 |
| All 5 | 0.615 | 0.572 | 18.215 | 29.687 |
预测目的 → 选 F1–F4(AIC 最低);最简拟合 → 选仅 F1(BIC 最低)。
单系数检验:H₀: bⱼ = Bⱼ,t = (b̂ⱼ − Bⱼ)/SE(b̂ⱼ),df = n − k − 1。默认软件给出对 0 的 t 与 P-value。
Nested models 的联合 F 检验
- q:restricted 模型相对 unrestricted 模型减少的变量数。
- df:分子 q,分母 n − k − 1(k 来自 unrestricted)。
- H₀:被排除的 q 个斜率全部为 0;Hₐ:至少一个 ≠ 0。
Restricted (F1, F2, F3):SSE = 64.5176,df = 46。
Unrestricted (F1–F5):SSE = 56.6182,df = 44。
临界值 F(2, 44, 1%) = 5.120 → 不能拒绝 H₀。F4、F5 联合不显著,倾向精简模型。
General linear F-test(整体显著性)
以 Exhibit 1 为例:F = 18.1247 / 1.2868 = 14.0853,临界 F(5, 44, 5%) ≈ 2.427 → 拒绝 H₀,模型整体显著。
| 统计量 | 判定方向 |
|---|---|
| Adjusted R² | 越高越好 |
| AIC | 越低越好(偏预测) |
| BIC | 越低越好(偏拟合 / 精简) |
| 单系数 t | |t| > 临界值 |
| 联合 F | F > 临界值 |
预测必须包含所有自变量(即使不显著)及截距,因为系数估计已用到变量间相关性。
| 项目 | 假设值 | 系数 | 乘积 |
|---|---|---|---|
| Intercept | 1.000 | −2.1876 | −2.1876 |
| F1 | 0.110 | 1.5992 | 0.1759 |
| F2 | 0.040 | 0.1923 | 0.0077 |
| F3 | 0.080 | −0.7126 | −0.0570 |
| F4 | −0.010 | 3.3376 | −0.0334 |
| F5 | 0.001 | −2.6832 | −0.0027 |
| Ŷf | −2.0971% | ||
标准误 = 1.1466;95% 区间 [−4.4098, 0.2119],比样本内回归标准误更宽,反映 model error + sampling error。
ROA = 4.7022 + 1.2302·CAPEX − 0.0371·ADV + 0.1029·R&D
CAPEX=5, ADV=4, R&D=3:
- Adjusted R²
- 对自变量数量调整后的拟合优度。
- AIC
- 比较同因变量模型集,偏向预测目的,越小越好。
- BIC / SBC
- 惩罚更严,偏向最佳拟合 / 精简模型。
- ANOVA
- 展示 SS、df、MS、F 的方差分析表。
- Nested models
- 一个模型的自变量是另一个模型的子集。
- Restricted / Unrestricted model
- 受限模型变量较少;非受限模型为完整变量集。
- Joint test of hypotheses
- 同时对两个及以上系数施加约束的检验。
- General linear F-test
- 检验全部斜率是否同时为 0 的整体拟合检验。
- Overfitting
- 变量过多导致拟合样本噪声、解释力虚高、样本外预测变差。
Module 3 · 模型设定误差与回归假设违反
本模块讨论模型设定原则与常见设定误差,以及三大回归假设违反:异方差、序列相关、多重共线性的成因、后果、检验与修正方法。
- 良好设定五原则:经济逻辑、简约、样本外表现、函数形式恰当、不违反回归假设。
- 函数形式失败常见原因:遗漏变量、变量形式不当、变量尺度不当、数据不当合并。
- 异方差分无条件(无大碍)与有条件(标准误被低估、t 膨胀、Type I ↑)。BP 检验诊断,robust SE 修正。
- 序列相关常见于时间序列;BG 检验更稳健;用 Newey–West / HAC robust SE 修正(同时修正异方差)。
- 多重共线性:高 R²、F 显著但单 t 不显著;用 VIF 量化,>5 关注,>10 严重。
| 原则 | 说明 |
|---|---|
| 经济逻辑支撑 | 变量选择应有经济学依据。 |
| 简约 (Parsimonious) | 每个变量必须发挥实质作用。 |
| 样本外表现良好 | 避免过拟合,仅解释训练样本。 |
| 函数形式恰当 | 若存在非线性关系,应纳入非线性项。 |
| 满足回归假设 | 检测到异方差/序列相关/多重共线性应修正。 |
| 类型 | 说明 | 后果 |
|---|---|---|
| 遗漏变量 | 遗漏重要自变量 | 异方差 / 序列相关 |
| 变量形式不当 | 忽略非线性关系 | 异方差 |
| 尺度不当 | 未做必要变量转换 | 异方差 / 多重共线性 |
| 数据不当合并 | 合并不应合并的样本 | 异方差 / 序列相关 |
遗漏变量 (Omitted Variable Bias)
真实模型 Y = b₀ + b₁X₁ + b₂X₂ + ε,若仅估 Y = b₀ + b₁X₁ + ε:
- 若 X₂ 与 X₁ 不相关:仅截距有偏,b₁ 仍可估。
- 若 X₂ 与 X₁ 相关:所有系数、截距、残差均有偏且不一致;SE 不一致,无法做检验。
变量形式不当
忽略非线性关系。若关系为指数 / 比例增长,可对变量取自然对数线性化。
变量尺度不当
跨公司比较应使用 common-size(同比报表 / 比率)数据。
数据不当合并
样本若跨结构性突变(监管变化 / 波动率体制切换),散点会呈分簇。建议使用最贴近预测期条件的子样本估计。
异方差:残差方差跨观测不恒定。成因含模型误设、极端自变量值等。
- Unconditional:误差方差与 X 不相关 → 对推断无大碍。
- Conditional:误差方差与 X 相关 → MSE 有偏,F 不可靠;SE 被低估 → t 膨胀 → 更多 Type I 错误。
Breusch–Pagan 检验
- 跑原回归,得到残差。
- 用残差平方对原自变量再回归,得 R²。
- BP = n · R²,近似 χ²(k),右单尾。
H₀:无条件异方差。P<α → 拒绝 → 存在条件异方差。
OLS:MKTRF SE=0.0601 (t=20.64),SMB SE=0.1042 (t=10.51),HML 不显著。
BP = 13.40,P=0.00038 → 1% 拒绝 H₀,存在条件异方差。
White / Robust SE 修正后:MKTRF SE 0.060 → 0.091;SMB SE 0.104 → 0.111。系数不变,仅 SE 被修正,t 减小,P 增大。
注:市场有效假说下,金融数据不应长期存在异方差;若出现(如波动率聚集),意味着可被开发的 alpha 机会。
| 自变量含因变量滞后项? | 系数估计 | SE 估计 |
|---|---|---|
| 否 | 一致(OK) | 有偏 |
| 是 | 不一致 | 有偏 |
正序列相关最常见:残差符号在相邻期持续。后果:MSE 低估真实方差 → F 膨胀;SE 低估 → t 膨胀 → 更多 Type I。
Breusch–Godfrey 检验
- 跑原回归取残差 u_t。
- 用 u_t 对原自变量 + 滞后残差 u_{t−1}, …, u_{t−p} 回归。
- H₀:所有滞后残差系数为 0(无 p 阶之内序列相关)。F~F(p, n−p−k−1)。
相较 DW 仅检验一阶,BG 可检测任意阶 p,更稳健。
OLS:CONS 系数 0.8696 (SE 0.027, t=31.99, P=0)。
BG F=23.61,P=0.023 → 存在序列相关。
Newey–West / HAC robust SE:CONS SE 0.027 → 0.036,t 31.99 → 24.31。系数不变,SE 增大;同时兼修正异方差。
robust SE 别名:HAC、Newey–West、serial-correlation consistent SE。
自变量间高度(近似)线性相关。系数仍一致,但不精确:SE 膨胀、t 减小、检验功效低。
经典征兆
R² 高、F 显著,但各 t 都不显著。
VIF
- VIF=1:无相关。
- VIF>5:关注;VIF>10:严重,需修正。
- 仅看两两相关不够;多变量近似线性组合可能高度相关却两两相关不高。
仅 SGX+SVX:两者均显著,SE≈0.196。
加入 SPX 后:SE 暴增(SGX 6.17, SVX 5.50, SPX 11.66),t 全部不显著;R² 几乎不变 → 典型多重共线性。
| 变量 | 含 SPX 的 VIF | 不含 SPX 的 VIF |
|---|---|---|
| SGX | 3,863.85 | 3.97 |
| SVX | 3,083.22 | 3.97 |
| SPX | 12,904.81 | — |
修正方法
- 剔除一个或多个变量。
- 用不同代理变量。
- 增加样本量。
- 若仅做预测而非解释,可不修正。
| 假设 | 违反 | 问题 | 检测 | 修正 |
|---|---|---|---|---|
| 同方差 | 异方差 | SE 有偏 | 残差图 / BP | 改模型 / robust SE |
| 观测独立 | 序列相关 | 系数不一致 + SE 有偏 | BG | 改模型 / HAC SE |
| 自变量独立 | 多重共线性 | SE 膨胀 | VIF | 改模型 / 增样本 |
- Model specification
- 所含自变量与函数形式。
- Omitted variable bias
- 遗漏重要自变量导致的偏差。
- Heteroskedastic
- 残差方差跨观测不同。
- Unconditional / Conditional heteroskedasticity
- 误差方差是否与 X 相关。
- Breusch–Pagan test
- 检测条件异方差。
- Serial correlation / Autocorrelation
- 残差跨观测相关,常见于时间序列。
- Positive / Negative serial correlation
- 相邻残差同号 / 异号。
- First-order serial correlation
- 残差与相邻一期残差的相关。
- Durbin–Watson test
- 仅检验一阶序列相关。
- Breusch–Godfrey test
- 可检测到 p 阶的序列相关。
- Robust standard errors
- 异方差一致 SE(White)。
- Serial-correlation consistent SE
- Newey–West / HAC,同时修正异方差与自相关。
- Multicollinearity
- 自变量高度(近似)线性相关。
- Variance inflation factor (VIF)
- 量化多重共线性,>5 关注、>10 严重。
Module 4 · 多元回归的扩展
本模块讨论三大扩展:(1) 影响分析检测异常 / 高杠杆点;(2) 用哑变量纳入定性自变量;(3) 用 Logistic 回归处理二元定性因变量。
- 两类可能影响回归的观测:高杠杆点(X 极端)与离群点(Y 极端)。
- 高杠杆点用 leverage h_ii 检测,阈值 3(k+1)/n。
- 离群点用 studentized deleted residual t_i*,|t*|>3 标记,超 t(n−k−2) 临界值即为潜在影响。
- n 个类别用 n−1 个哑变量;截距哑变量平行上下移动,斜率哑变量改变斜率。
- 因变量为二元定性 → Logistic 回归,对概率做 logit 变换 ln[P/(1−P)];用 MLE 估计。
High-leverage point:X 极端;Outlier:Y 极端。两者并非必然有害,只有当其偏离回归线时才会"扭转"斜率与拟合统计量。
Leverage h_ii
- 取值 [0,1],∑h_ii = k+1。
- 阈值:h_ii > 3(k+1)/n → 潜在影响点。
Studentized Deleted Residual t_i*
- |t_i*| > 3 → 标记为离群点。
- |t_i*| > t 临界值 (n−k−2, α) → 潜在影响。
Panel A 全样本:PROD 系数 0.77 (P=0.02 显著);ONLINE 不显著。
阈值 3(k+1)/n = 3×3/15 = 0.60。仅 Obs 7(leverage=0.80)超阈值 → 潜在影响。
Panel C 删除 Obs 7 后:PROD P 升至 0.05,仍在 5% 临界 → 结论稳健。
| 测度 | 影响来源 | 判定 |
|---|---|---|
| Leverage h_ii | X 极端 | h_ii > 3(k+1)/n |
| Studentized residual | Y 极端 | |t*| > t_crit (n−k−2) |
补救:核查数据录入;winsorize;若数据有效则可能提示遗漏变量或假设违反。
哑变量取值 0/1,用于分类(行业、是否监管、事件前后等)。n 个类别 → n−1 个哑变量,未被赋值的为基准组,否则会与截距完全共线。
截距哑变量(Intercept Dummy)
- D=0:Y = b₀ + b₁X(基准)
- D=1:Y = (b₀+d₀) + b₁X(平行上下移)
斜率哑变量(Slope Dummy / Interaction)
- D=0:Y = b₀ + b₁X
- D=1:Y = b₀ + (b₁+d₁)X(斜率改变)
截距 + 斜率组合
三类:Blend / Growth / Value(基准)。EXP、CASH、AGE、SIZE 加 BLEND、GROWTH 两个截距哑变量。
BLEND 0.66,GROWTH 2.50(vs Value 基准),均显著。
加入 AGE_BLEND、AGE_GROWTH 斜率哑变量后:AGE_GROWTH 0.020 (P=0.01) 显著 → 成长基金每多一年额外 0.020% 收益,合计 AGE 斜率 = 0.065+0.020 = 0.085%。
二元因变量(破产/否、回购/否)。若用 OLS 估计线性概率模型 Y = b₀ + ΣbⱼXⱼ + ε,预测概率可能 <0 或 >1 且假设线性关系不现实。
Logit 变换
- P/(1−P) 为 odds;ln(odds) 为 log odds / logit。
- 误差服从 logistic 分布(似正态但厚尾)。
- 用 MLE 估计(非 OLS),基于二项似然。
- 系数解释:X 每增 1 单位,log odds 改变 bⱼ(其余变量不变)。
拟合优度
- 无真正 R²;用 pseudo-R² 仅在同数据集不同模型间比较。
- log-likelihood 越接近 0 越好;单值无意义,需对比。
边际效应
非线性:X 一单位变化对 P(Y=1) 的影响取决于其它变量取值。常用"均值法"——以均值代入,再让目标变量增 1 单位重算 P。
Likelihood Ratio (LR) 检验
q = 受约束个数;类似 OLS 的联合 F 检验,H₀:受约束系数全为 0。
系数:Intercept −0.4738,CASH −0.9118 (P=0.43),DE −0.3186 (P=0.017),NPM 0.9407 (P=0.024)。
截距解释:所有 X=0 时 log odds=−0.4738 → odds=0.6226 → P=38.37%。
均值处 P:代入均值 (CASH 0.083, DE 0.9182, NPM −0.0535) → P≈29.06%。
边际效应(+1%):CASH −0.19%,NPM +0.20%,DE −0.07%。
LR 检验:LR = −2(−312.68 − (−304.20)) = 16.96 > χ²(3, 5%)=7.815 → 拒绝 H₀,非约束模型更优 (P=0.0007)。
应用:机器学习二分类(情感分析、信用违约、欺诈检测等)。
- High-leverage point
- X 极端值的潜在影响观测。
- Outlier
- Y 极端值的潜在影响观测。
- Influential observation
- 删除后会显著改变回归结果的观测。
- Leverage (h_ii)
- 衡量 X 与均值距离,>3(k+1)/n 潜在影响。
- Studentized deleted residual
- 删除该观测后残差除以其标准差。
- Dummy / Indicator variable
- 0/1 取值的定性自变量。
- Intercept dummy
- 平行上下移动回归线。
- Slope dummy
- 改变回归线斜率(交互项)。
- Interaction term
- 两个或多个自变量的乘积。
- Qualitative dependent variable
- 离散(如二元)因变量。
- Logistic regression (logit)
- 对事件概率做 logit 变换的回归。
- Logistic transformation
- ln[P/(1−P)]。
- Log odds / Logit
- odds 的自然对数。
- Maximum likelihood estimation (MLE)
- 最大化样本似然估计系数。
- Likelihood ratio (LR) test
- −2(LL_R − LL_U) ~ χ²(q),比较嵌套 logit 模型。
Module 5 · 时间序列分析(上)
本部分覆盖 5.01–5.06:时间序列建模面临的挑战、线性与对数线性趋势模型、趋势模型残差检验、AR(p) 与协方差平稳性、以及用残差自相关诊断 AR 模型设定。
时间序列:同一变量在不同时间点的观测序列(如月度 CPI、季度销售)。两大用途:解释过去与预测未来。
应用线性回归到时间序列的常见难题
- 残差自相关:在 AR 模型 xₜ = b₀ + b₁xₜ₋₁ + εₜ 中,若 εₜ 自相关,会导致 b₀、b₁ 的估计 不一致(比一般回归更严重)。
- 均值/方差随时间变化:序列非平稳时直接回归会产生伪结果。
- 常用对策:变换序列(差分、取对数等)或重新设定模型,使 OLS 假设满足。
- b₁ 为趋势系数:每一期 yₜ 增加恒定 b₁。
- OLS 估计;样本内拟合值 ŷₜ = b̂₀ + b̂₁t;样本外预测 t = T+1, T+2…。
样本 1995/01–2019/06,n=294,df=292,5% 临界 t≈1.97。
| 系数 | 估计 | SE | t |
|---|---|---|---|
| 截距 | 2.7845 | 0.3732 | 7.46 ✓ |
| t(趋势) | −0.0037 | 0.0022 | −1.68 ✗ |
R²=0.0099,DW=1.2145。预测:t=306(2020/06)ŷ = 2.7845 − 0.0037×306 = 1.6523%。
趋势斜率不显著;线性趋势对多数经济序列拟合有限——斜率与截距随时间改变。
若序列呈 指数增长(恒定增长率、连续复利),取自然对数后呈线性:
- 每期 ln yₜ 增加 b₁;每期 yₜ 增长率 = e^b₁ − 1。
- 预测:ŷₜ = exp(b̂₀ + b̂₁t)。
- 适用:销售收入、GDP、股价等长期复合增长序列。
n=74(2001Q2–2019Q3)。截距 6.7617 (t=206.8),趋势 0.0295 (t=36.9),R²=0.95,DW=0.26。
预测 2019Q4 (t=75): ln ŷ = 6.7617 + 0.0295×75 = 8.9742 → ŷ = e^8.9742 ≈ $7,896.7M。
每季度增长率 = e^0.0295 − 1 ≈ 2.994%。
线性趋势模型同样数据下预测仅 6,152.87M,明显低估——可视化显示残差长期同号 → 线性趋势不适用。
线性 vs 对数线性的选择:若序列以恒定金额增长 → 线性;若以恒定比率增长 → 对数线性。
趋势模型本质是单变量 OLS,需检验残差是否自相关——用 Durbin–Watson 统计量(此处自变量为 t 而非滞后 y,DW 仍适用)。
- H₀:无正序列相关。DW < d_L → 拒绝,存在正自相关。
- Example 1(CPI 线性趋势):DW=1.2145 < d_L≈1.77 → 残差正自相关 → 趋势模型设定不当。
- Example 3(Starbucks ln 趋势):DW=0.26 < d_L≈1.60 → 同样存在正自相关。
- 结论:高 R² 不代表模型正确;存在自相关意味着可以构建更优模型(如 AR)。
时间序列观测必须按时序排列;打乱顺序会破坏估计性质。
自回归 AR(p)
AR(1):xₜ = b₀ + b₁xₜ₋₁ + εₜ,仅用上一期值预测当期。
协方差平稳(Covariance Stationary)三要件
- ① 期望恒定且有限:E(yₜ) = μ,|μ| < ∞。
- ② 方差恒定且有限。
- ③ 对任意固定滞后 s,cov(yₜ, yₜ₋ₛ) = λₛ 恒定且有限。
若序列非平稳仍套用 AR,估计将有偏且假设检验无效(伪回归)。
如何判别(直观)
- 绘图看均值/方差是否大致恒定、无明显趋势与季节性。
- 有趋势(如 Starbucks 销售)、季节性(如零售)、随机游走 → 均非平稳。
- "过去平稳"不保证"未来平稳"——状态变化会让模型失效。
AR 模型中自变量为滞后 y,DW 失效。改用残差自相关的 t 检验。
三步法
- 估计候选 AR 模型(如 AR(1))。
- 计算残差在各阶滞后的自相关 ρ̂_k。
- 对每个 ρ̂_k 做 t 检验:t = ρ̂_k / (1/√T),标准误 = 1/√T。若任一 |t| 超临界值 → 模型设定不当,需增加滞后阶数或重设。
n=65(2003Q1–2019Q1),df=63,5% 临界 t≈2.0。
| 系数 | 估计 | SE | t |
|---|---|---|---|
| 截距 | 0.1513 | 0.0480 | 3.15 ✓ |
| GMₜ₋₁ | 0.7462 | 0.0809 | 9.22 ✓ |
残差自相关标准误 = 1/√65 ≈ 0.1240。
| 滞后 | ρ̂ | t |
|---|---|---|
| 1 | 0.1308 | 1.05 |
| 2 | −0.2086 | −1.68 |
| 3 | 0.0382 | 0.31 |
| 4 | 0.0608 | 0.49 |
所有 |t| < 2 → 残差无显著自相关 → AR(1) 设定合理。
预测:GMₜ₊₁ = 0.1513 + 0.7462·GMₜ。GMₜ=0.55 → 0.5617;GMₜ=0.65 → 0.6363。
Module 5 · 时间序列分析(中)
覆盖 5.07–5.11:均值回复与多期预测、模型预测精度比较 (RMSE)、系数不稳定性、随机游走与一阶差分、单位根 Dickey–Fuller 检验。
均值回复水平 (Mean-Reverting Level)
- xₜ > x* → 预测下期下降;xₜ < x* → 预测下期上升。
- 所有协方差平稳序列都有有限均值回复水平。
- Intel 例:x* = 0.1513 / (1 − 0.7462) = 0.5961(59.61%)。
链式预测 (Chain Rule)
- 多期预测把上一期预测值代回方程;预测期越长,不确定性越高。
- Intel 例:xₜ=0.63 → x̂ₜ₊₁=0.1513+0.7462·0.63=0.6214 → x̂ₜ₊₂=0.1513+0.7462·0.6214=0.6150(61.50%)。
AR(1) (Exhibit 13):R²=0.1586,SE=2.9687;残差 lag-2 自相关 t=−2.80 显著 → 设定不当。
AR(2) (Exhibit 14):Inflₜ = 1.5996 + 0.4759·Inflₜ₋₁ − 0.1964·Inflₜ₋₂;R²=0.1907,SE=2.9208;所有 lag 残差自相关 |t| < 1 → 设定合理。
Inflₜ₋₁=4%, Inflₜ₋₂=3% → AR(1) 预测 1.3346+0.3984·4=2.93%;AR(2) 预测 1.5996+0.4759·4−0.1964·3=2.91%。
- In-sample 误差:样本期内拟合残差。比较时直接看回归 SE,越小越准。
- Out-of-sample 误差:样本期外(真正"未来")的预测误差,更具决策意义。
- RMSE = √(平均预测误差平方);RMSE 越小,模型越优。
| 模型 | 平均平方误差 | RMSE |
|---|---|---|
| AR(1) | 3.6155 | 1.9014 |
| AR(2) | 2.0043 | 1.4157 |
AR(2) RMSE 仅为 AR(1) 的 1.4157/1.9014 = 74.46%,样本内外均更优。
- 不同样本期估出的 AR 系数可能差异很大;最优滞后阶数 (p) 也会随样本变化。
- 选样本期没有严格的经济理论标准,但应避免把政策制度变化前后混在一起(如固定 vs 浮动汇率、Fed 政策切换)。
- 实务:先看图——若波动率/均值出现明显结构断点,应分段建模。
截距 0.8431 (t=2.84),Inflₜ₋₁ 0.5036 (t=6.64);4 阶残差自相关 |t|<1.99 → AR(1) 在此子样本设定合理(无需 AR(2))。
预测(Inflₜ₋₁=4%):0.8431 + 0.5036×4 ≈ 2.86%;与 1995–2018 AR(2) 的 2.91% 相差 5bps。
1995–2007 月度通胀 SD=2.86%;2008–2018 SD=3.54% → 全样本非平稳,应分段。
- 最佳预测 = 当前值;任一未来期最佳预测也是 xₜ₋₁。
- 均值回复水平 = 0/0 → 未定义;var(xₜ) = (t−1)σ² → 随 t 发散 → 非协方差平稳。
- 不能直接对随机游走跑 AR:系数与 t 统计量无效。
一阶差分 (First-Differencing)
- 差分后 b₀=0, b₁=0,均值与方差均恒定 → 平稳;可做 OLS。
- 但差分模型本身告诉我们:原序列变化不可预测。
水平 AR(1):JPY/USDₜ = 0.84 + 0.9919·JPY/USDₜ₋₁,R²=0.9897——但 b₁≈1,疑似随机游走,t 统计无效。
差分 AR(1):截距与滞后差分项均不显著,R²=0.0008 → 与随机游走一致,变动不可预测。
教训:不能仅凭 R² 选模型;高 R² 可能源于非平稳。
带漂移的随机游走 (Random Walk with Drift)
每期平均增/减 b₀;仍需差分后方能建模。
AR(1) 协方差平稳的条件:|b₁| < 1。b₁ = 1 → 单位根(随机游走,非平稳);|b₁| > 1 → 爆炸根。所有随机游走(含漂移)均有单位根。
Dickey–Fuller 变换
- H₀: g₁ = 0(存在单位根,非平稳);Hₐ: g₁ < 0(无单位根,平稳)。
- 对 ĝ₁ 计算 t 统计量,但用 Dickey–Fuller 修正后的临界值(绝对值大于普通 t 临界值)。
- 未拒绝 H₀ → 序列有单位根 → 先做差分再建 AR。
模型:Δln Salesₜ = 0.0222 − 0.5493·Δln Salesₜ₋₁;n=48,残差 4 阶自相关 |t|<2 → 设定合理。
系数解读:若当季销售无变化 (yₜ=0),下季增长 2.22%;否则增长 = 2.22% − 0.5493 × 本季增长。
预测 2012Q1:2011Q3 销售 8,405 → ln=9.0366;2011Q4 销售 8,872 → ln=9.0907;yₜ=0.0541。
ŷₜ₊₁ = 0.0222 − 0.5493 × 0.0541 = −0.0075 → Salesₜ₊₁ = 8,872 × e^(−0.0075) ≈ $8,805M。
流程:① 画图 → ② 跑 DF 检验 → ③ 若存在单位根则差分 → ④ 对差分序列建 AR(p) 并检残差。
① n 期移动平均 (Smoothing)
- 用于平滑短期波动、显示长期趋势(如 12 月 MA 抹去零售季节性)。
- 缺点:对所有期权重相等,对突变滞后反应。
- 示例:AstraZeneca 2011 四季销售 8,490 / 8,601 / 8,405 / 8,872 → 4Q MA = 8,592M。
② MA(q) 预测模型
- MA(q) 的"记忆"为 q 期:仅前 q 阶自相关显著,q+1 阶及之后为 0。
- AR vs MA 判别:AR 自相关 逐步衰减;MA 在第 q 阶之后 骤降到 0。
- 多数金融序列更适合 AR。
前 6 阶自相关 |t| 均 < 1.98 → 全部不显著 → MA(0) → 不可预测,与"短期股指收益难预测"一致。
若残差在季节滞后处(季度数据→4 阶;月度→12 阶)自相关显著,说明模型遗漏季节性。解决:加入季节滞后项。
纯 AR(1):lag-4 残差自相关 0.7630 (t=6.47) → 严重季节性,模型失败 (R²=0.20)。
加 lag-4 季节项:Δln Salesₜ = 0.0107 − 0.1540·Δln Salesₜ₋₁ + 0.7549·Δln Salesₜ₋₄;R²=0.7032,残差自相关全不显著。
预测:若 Δlast=1%, Δseasonal=2% → 增长 0.0107 − 0.1540·0.01 + 0.7549·0.02 = 2.43%。
纯 AR(1) lag-12 自相关 0.762 (t=11.21) → 显著季节性。
加 lag-12 后:Growthₜ = 0.2371 − 0.0792·Growthₜ₋₁ + 0.7798·Growthₜ₋₁₂;R² 从 0.05 升至 0.67,残差洁净。
若 last=10%, 12 月前=5% → 预测 0.2371 − 0.0792·0.1 + 0.7798·0.05 = 26.82%。
ARMA(p, q)
- 组合 AR 滞后项与 MA 误差项;理论上拟合更灵活。
- 局限:参数高度不稳定(样本/初值微变 → 结果迥异);p、q 选择难;< 80 观测不应使用;预测未必优于 AR。
ARCH(1) · 条件异方差
- a₁ > 0 → 大误差后波动率上升(金融常见)。
- 检验:对原模型残差跑回归 ε̂ₜ² = a₀ + a₁·ε̂ₜ₋₁² + uₜ;â₁ 显著 → 存在 ARCH(1)。
- 后果:AR/MA/ARMA 的标准误失效,t 检验不可靠 → 应用 GLS 或异方差稳健 SE 重估。
- 优点:可预测下一期方差 σ̂ₜ₊₁² = â₀ + â₁·ε̂ₜ²。
â₀ = 6.3626,â₁ = 0.2754 (t = 4.83) → 拒绝同方差,存在 ARCH。
若上期 ε=1% → σ̂² = 6.3626 + 0.2754·1 = 6.638。
推广:ARCH(p) 用前 p 期 ε² 解释当前方差;GARCH 进一步纳入方差自身滞后,类似方差的 ARMA。皆对样本与初值敏感。
多序列回归前必须先对每条序列做 Dickey–Fuller 单位根检验。五种情景:
| 情景 | Y 单位根 | X 单位根 | 可否做 OLS? |
|---|---|---|---|
| ① | 否 | 否 | 可,直接回归 |
| ② | 是 | 否 | 不可,伪回归 |
| ③ | 否 | 是 | 不可,伪回归 |
| ④ | 是 | 是,但不协整 | 不可 |
| ⑤ | 是 | 是,且协整 | 可,但仅长期关系 |
协整 (Cointegration)
- 两条非平稳序列存在长期均衡关系,不会无界发散(如共同趋势)。
- 检验(Engle–Granger):① 先做 yₜ = b₀ + b₁xₜ + εₜ;② 对残差跑 DF 检验,使用 Engle–Granger 修正临界值。
- 拒绝单位根 → 协整 → 回归系数与 SE 一致,可做假设检验(但只刻画长期关系)。
- 未拒绝 → 非协整 → 回归无意义。
多个自变量同理:若全无单位根 → 多元回归;若全有且协整 → 可估长期关系(但 3 条以上协整建模复杂);混合 → 不可直接回归。
本节给出建立时间序列预测模型的系统性步骤指南,并简要说明未在本章详述的其他议题(预测不确定性、多体制切换回归等)。
未覆盖议题
- 预测不确定性:时间序列预测的标准误需同时考虑误差项不确定性与参数估计不确定性;多变量情形尤其复杂。
- 多体制 (Regime Switching):若怀疑序列存在多个体制但缺乏先验信息分段,可使用 switching regression models 仅依序列自身识别多体制。
建议建模步骤
- 明确投资问题,初步选择模型
- 回归模型:基于与其他变量的因果假设预测未来。
- 时间序列模型:基于变量自身的历史行为预测未来。
- 绘制序列,目视检查协方差平稳性
关注:线性趋势、指数趋势、季节性、样本期内显著结构性变化(均值/方差突变)。
- 若未发现显著季节或结构变化,先尝试趋势模型
- 判断线性 vs 指数趋势(通常靠绘图)。
- 估计趋势 → 计算残差 → 用 Durbin–Watson 检验残差是否存在显著序列相关。
- DW 无显著相关 → 趋势模型足够,可直接用于预测。
- DW 显著相关 → 进入下一步,使用更复杂模型。
- 重新检查平稳性违反,并进行相应变换
违反类型 变换方法 线性趋势 一阶差分 指数趋势 取自然对数后一阶差分 样本期内显著结构变化 分段估计不同模型 显著季节性 加入季节滞后(见步骤 7) - 对变换后的平稳序列,用短自回归建模
- 先估计 AR(1) → 检验残差序列相关。
- 残差无显著相关 → 使用 AR(1) 预测。
- 残差显著相关 → 改用 AR(2) → 再检验;持续增加阶数直至残差不再显著。
- 检查季节性
- 图形法:观察是否存在规则季节模式。
- 自相关法:检验 AR 模型残差的季节性滞后自相关是否显著(如季度数据 lag 4)。
- 修正:在 AR(1) 或 AR(2) 中加入季节滞后项(如季度数据加第 4 期滞后)。
- 检验 ARCH
- 将时间序列模型残差平方对一期滞后残差平方回归。
- 检验滞后项系数是否显著异于 0。
- 不显著 → 无异方差,可直接使用模型标准误。
- 显著 → 存在 ARCH,需用 GLS 或其他方法修正。
- 样本外预测性能测试
比较模型的样本外表现与样本内表现,确保模型具有良好的泛化能力。
先看图 → 再趋势 → DW 验残差 → 不通过则差分/对数/分段 → AR 定阶 → 查季节 → 检 ARCH → 样本外验证。
按此顺序逐步执行,可最大程度保证模型设定正确。
机器学习:监督 / 非监督 / 深度学习
覆盖 6.01–6.05:ML 概览、监督 vs 非监督、过拟合与正则化、 惩罚回归 (LASSO) 与支持向量机 (SVM)。
ML 起源于 1990s,受益于数据爆炸与算力提升。在投资管理价值链各环节 已广泛应用:客户画像、Alpha 信号发现、组合优化、风险管理、交易执行。
- Alpha 生成:对单一时序做非线性预测;从既定因子集中筛选;甚至自动发现新因子(如 10-K/10-Q 文本情感分析)。
- 组合构建:动态权重 → Sharpe 最大化;PCA 估计稳健协方差矩阵。
- 交易:非线性算法降低市场冲击成本。
- 研究表明:ML 方案在组合构建上常优于传统均值–方差优化。
统计方法依赖严格的分布假设;ML 则直接从数据中"找规律、用规律", 更适合高维、非线性、可能发生结构突变的金融数据。
- Supervised 监督学习:有标签 (X, Y),训练映射规则。
- Unsupervised 非监督学习:只有 X,发现内在结构。
- Deep / Reinforcement Learning:神经网络处理高复杂任务;强化学习通过与环境交互学习。
- Regression:Y 连续(股价、回报)。
- Classification:Y 类别/序数(欺诈/正常、信用评级)。逻辑回归即典型 classifier。
- Dimension Reduction 降维:减少特征数量,保留主要信息(如 PCA)。
- Clustering 聚类:依据相似度分组(K-Means、Hierarchical)。
| 变量类型 | 监督 (有 Y) | 非监督 (无 Y) |
|---|---|---|
| Continuous 连续 | Linear / Penalized / LASSO;CART;Random Forest | PCA;K-Means;Hierarchical |
| Categorical 类别 | Logistic;SVM;KNN;CART | PCA;K-Means;Hierarchical |
| Continuous / Categorical | Neural Networks · Deep Learning · Reinforcement Learning | |
Generalization 泛化:模型在样本外仍保持解释力。Overfitting 过拟合:模型学到了训练样本中的噪声, 样本外预测变差。"剪裁式西装只合一人穿"。
- Underfit:模型过简,未抓住关系(高 bias)。
- Overfit:模型过繁,把噪声当模式(高 variance)。
- Robust Fit:训练好 + 样本外也好。
- Bias error:模型与训练数据的拟合差距(underfit 来源)。
- Variance error:模型对新数据的不稳定性(overfit 来源)。
- Base error:数据本身的随机性。
复杂度↑ → 训练误差↓、bias↓,但 variance↑ → 样本外误差先降后升。 最优点在 bias 与 variance 曲线交点。
- Training:训练模型(in-sample)。
- Validation:调超参、比方案(in-sample)。
- Test:最终评估泛化能力(out-of-sample)。
- 复杂度惩罚 / 正则化:Occam's razor — 越简单越好。
- 合理抽样 + 交叉验证:避免抽样偏差。
K-Fold Cross-Validation:数据随机分 k 等份(k 通常 5 或 10), 其中 k−1 份训练、1 份验证,重复 k 次,平均 k 个验证误差作为 Eout 估计。每个样本点用作训练 k−1 次、验证 1 次。局限:不适用于时间序列(只有最近数据可作验证)。
惩罚回归在 OLS 残差平方和基础上加入惩罚项, 惩罚项随特征数增加而增大。一个特征只有当对拟合的贡献 超过其带来的惩罚时才被保留 → 自动 feature selection。
- 使用前需标准化特征(mean 0, var 1)以便系数可比。
- λ (lambda) 是 hyperparameter,由研究者在 validation set 上调出。
- λ = 0 时退化为 OLS;λ 越大 → 模型越稀疏。
- 惩罚项仅在训练时加入;评估只用残差平方和。
- 适合高维、特征相关、观测较少的场景(如行业违约预测,把数十个共线特征压缩到 <10 个)。
- 更广义的 Regularization 也可用于非线性模型,例如稳健估计协方差矩阵以解决均值–方差优化中权重不稳定问题。
SVM 是用于分类、回归、异常检测的强大监督算法。 核心思想:找一个超平面 (hyperplane) 把两类数据分开, 并让边界 (margin) 最宽 → 提高泛化概率。
- Hyperplane:n 维空间中的分割边界(n=1 是线,n=2 是面)。
- Margin:分割带的宽度;SVM 选择 最大间隔。
- Support Vectors:离边界最近、决定边界位置的少数观测点。
- 远离支持向量加新点 → 边界不变;靠近超平面加新点 → 可能改变支持向量集合从而移动边界。
- Soft Margin Classification:对训练集中被误分类的点加惩罚, 在"更宽 margin"与"更低总误差"间权衡。
- Non-linear SVM:引入非线性边界(如 kernel),减少训练集误差但 更复杂,容易过拟合。
- 中小规模、高维复杂数据(财报、破产数据库)。
- 预测公司破产(binary:likely / unlikely)以筛选规避或做空标的。
- 文本分类:新闻、公告、年报 → 正面/负面情感。
- 对异常值与相关特征较稳健。
KNN 通过寻找新观测点与训练数据的"相似度(nearness)"来分类。 k = 1 时取最近邻类别;k = 5 时取 5 个最近邻中票数最多的类别。
- 非参数 (non-parametric):不假设数据分布;可直接做多分类。
- 核心挑战 = 距离度量:选错指标 → 模型差。 对类别/序数变量更主观(如股票相关性可作相似度)。
- 对无关或相关特征敏感;通常需手动选择少量特征。
- k 是 hyperparameter:太小 → 错误率高、易受局部噪声影响; 太大 → 平均过多结果稀释最近邻含义。偶数 k 可能出现平票。
- 破产预测、股价预测、公司债隐含信用评级
- 定制化股票/债券指数(找相似 / 不相似的债券以构建多元化指数)
CART 既可分类(categorical Y)也可回归(continuous Y),常用于二元分类。结构:root node → decision nodes → terminal nodes。 每个节点代表一个特征 f 与切分阈值 c。
- 每个节点选择能最大程度分离标签(最小化分类误差,如 MSE)的特征与切分值。
- 同一特征可在不同位置以不同阈值多次出现。
- 终端节点取多数类(分类)或均值(回归)。
- 事前正则化:最大树深、节点最小样本数、最大决策节点数。
- 事后 Pruning:训练完后剪除分类能力弱的分支。
- 可视化、可解释,区别于"黑箱"算法。
- 能揭示复杂非线性依赖(某特征仅在其他条件成立时才相关,例如"高盈利"只在"P/E<15 且 高杠杆 且 销售增长>15%"时关键)—— 多元线性回归无法捕捉。
- 应用:财报欺诈检测、股票/债券选择决策、向客户解释投资策略。
单一模型有噪声,多模型平均可降低噪声、收敛到更准的预测。 这种组合多个模型预测的技术称 Ensemble Learning,常胜过最佳单一模型。
- 异构 (Heterogeneous):不同算法 + voting classifier。
- 同构 (Homogeneous):同算法 + 不同训练数据(如 bagging)。
训练多个模型(SVM、KNN、CART…),新样本预测取多数票。 模型越多越准,但过多会过拟合。 需要算法/方法/假设的多样性(依大数定律)。
从原始训练集做有放回随机抽样生成 n 个新训练集(bags), 训练 n 个模型,分类用多数票、回归用均值。 提升预测稳定性,抑制过拟合。
- 大量 CART 通过 bagging 训练而成的集合。
- 每个节点随机选取 m 个特征(m < n 总特征数)以增加多样性。
- 超参数:m、树数、最小叶节点样本数、最大树深。
- 降方差、抗过拟合,错误在多树间相互抵消 → 信噪比提升。
- 缺点:可解释性差(相对"黑箱")。
- Precision 精确率 = TP / (TP + FP)。FP 代价高时关注(如反欺诈防误伤)。
- Recall 召回率 (Sensitivity) = TP / (TP + FN)。FN 代价高时关注(如漏诊)。
- Kaggle 信用卡欺诈案例 (0.17% 阳性) 用 Random Forest + oversampling 达 precision 89%、recall 82%。
- 因子投资策略(资产配置 & 选股)。
- 预测 IPO 是否成功(超额认购比例、首日收盘 / 发行价)。
研究员构建多分类器(+1 winner / 0 average / −1 loser), 标签依据:基金月回报偏离全样本均值 ±1 个标准差。 ETF 1,594 只、MF 6,085 只;最多 21 个特征 (基金类型/规模、资产配置、估值倍数、11 个行业权重)。
- 4 种算法对比:CART、SVM、KNN、Random Forest。
- 70/30 训练/测试拆分,超参不调用默认(CART 树深 5;SVM cost=1;KNN k=4;RF 100 棵、深 20)。
- 同样的训练/测试切分应用于所有算法以保证公平。
- Accuracy = 正确分类 / 总数。
- F1 Score = Precision 与 Recall 的调和平均;类别不平衡(大多数是 0)时比 Accuracy 更可靠。
- 三分类均匀分布的"无用模型"基线 ≈ 1/3。
| 数据集 | 指标 | CART | SVM | KNN | RF |
|---|---|---|---|---|---|
| ETF | Accuracy | 0.770 | 0.774 | 0.724 | 0.812 |
| F1 | 0.769 | 0.693 | 0.683 | 0.770 | |
| MF | Accuracy | 0.959 | 0.859 | 0.856 | 0.969 |
| F1 | 0.959 | 0.847 | 0.855 | 0.969 |
- Random Forest 总体最佳;CART 在 ETF 集上与 RF 相当。
- MF 表现优于 ETF(样本更大 → 模型更稳)。
- 特征重要性 (Information Gain):P/S、P/E、portfolio_stocks 普遍重要; ETF 看 net_assets,MF 看 cat_size (≈0.20,最关键)。
- RF 缺点:单棵树可视化困难,相对"黑箱"。
- ESG 数据类似 alternative data:非结构化、缺失多、跨厂商不一致。
- 需先做 data cleansing / wrangling,再用 NLP(基于 Logistic、SVM、CART、RF、NN)处理文本/音视频。
- NLP 可在财报电话会议中统计"human capital""health and safety"等 S 词频。
- E 因子对采矿/公用事业重要;S 因子对服装制造业重要 → ML 帮助匹配行业相关因子。
非监督学习无目标变量。两大类:降维 (PCA) 与 聚类 (K-Means / Hierarchical)。
- 把高度相关的特征转换为少量互不相关的composite variables。
- 基于协方差矩阵的eigenvectors(方向)与eigenvalues(解释方差占比)。
- PC1 = 最大特征值对应方向(最小化投影误差、最大化方差散布); PC2 与 PC1 正交,解释剩余最大方差;依次类推。
- 使用前需要标准化(mean 0, std 1)。
- 用 Scree Plot(每个 PC 解释的方差比例)观察拐点。
- 实务中保留累计解释 85%–95% 方差所需的最少 PC 数。
- 例:DLC 500 / VLC 30 指数,前 3 个 PC 解释 ≈90% / 86% 方差。
- 缺点:PC 是原始特征的线性组合,难以命名/解释(黑箱感)。
- 用于 EDA、可视化、缓解多重共线性、降低 curse of dimensionality; 组合优化中用于估计稳健协方差矩阵。
聚类把数据组织成相似群组。好聚类两条标准:Cohesion (簇内紧凑) + Separation (簇间分离)。
- 距离越小 → 越相似。常用 Euclidean distance(直线距离)。
- 组合多元化中:相关性 ≈ 标准化点之间的平均欧氏距离。
- ML 中约 12 种距离度量,选择取决于数据类型与业务问题。
- 发现传统 GICS 行业分类掩盖的公司相似性。
- 组合多元化 — 投资于不同簇以降低集中风险。
反复将观测划分为 k 个不重叠簇,k 是超参数。 每簇由 centroid (中心) 表示,观测被分配到最近的 centroid。
- 随机初始化 k 个 centroids。
- 每个观测分配到最近 centroid → 形成簇。
- 重新计算 centroid = 簇内观测的均值。
- 重新分配观测;重复 2–3,直到无观测变更(收敛)。
结果:在 k 固定下,最小化簇内距离、最大化簇间距离。
- 速度快,可处理上亿观测。
- 对初始 centroid 敏感 → 多次随机初始化对比。
- 必须事先确定 k;可在多个 k 值间选择最优;也可凭 face validity(业务可解释性)确定。
- 应用:Russell 3000 按财务/运营特征聚类,揭示真实"peer group";对冲基金分类替代传统体系。
构建簇的层级结构。比 K-Means 计算量大,但允许分析师事后挑选 不同粒度的分割方案。
- Agglomerative · 自底向上:每个观测一个簇 → 不断合并最近的两簇 → 最终一个大簇。 速度快,适合大数据;基于局部模式,更擅长识别小簇。
- Divisive · 自顶向下:从一个大簇开始 → 反复分裂 → 每观测一簇。 基于全局结构,更擅长识别大簇。
两簇所有点对直线距离的:最小值 / 最大值 / 平均值。
- x 轴为簇,y 轴为距离度量;横向弧线 (arch) 连接两条竖线 (dendrites)。
- 弧线高度 = 两簇距离;越矮越相似。
- 水平虚线切割 → 给出该层切分的簇数。
- 无需事先指定 k(区别于 K-Means)→ 适合 k 未知的场景。
- 除距离度量外,仍须指定特征集。
- 组合多元化:投资于多个不同簇 → 风险充分分散;集中在单簇 → 集中风险。
背景:基金投委会要在 S&P 500 中给出 3 个"买入"建议, 要求所选股票之间收益相关性低(分散化)。分析师拿到 8 只股票 (AAPL, F, FB, GM, GS, GOOG, JPM, UBS),用层次凝聚聚类找出 相似度高的簇,每簇挑一只。
- 2017-05-30 ~ 2019-05-24 的日调整收盘价,501 个观测。
- 计算日 log 收益(每只股票 = n=500 维向量)。
- 构造距离矩阵(成对 Euclidean 距离,对角为 0)。
- 反复合并最近的两簇 → 用 average (centroid) linkage 重算距离 → 直到合为一个大簇。
- 画 dendrogram,水平虚线切割得到目标簇数 (k=3)。
- 0.215:JPM + GS → GS_JPM(距离矩阵中最小)
- 0.262:+ UBS → GS_JPM_UBS(银行簇)。算法:(0.243 + 0.281)/2
- 0.307:AAPL + GOOG → AAPL_GOOG(科技簇)
- 0.334:GM + F → F_GM(汽车簇)
- 0.356:银行 + 科技合并为五股大簇 = 6 个跨簇距离的平均
- 切分结果 (k=3):五股簇 / F_GM / FB 单独成簇
| Stock | Agglomerative | K-means | Divisive |
|---|---|---|---|
| AAPL | 3 | 2 | 2 |
| F | 2 | 1 | 1 |
| FB | 1 | 2 | 3 |
| GM | 2 | 1 | 1 |
| GOOG | 3 | 2 | 2 |
| GS | 3 | 3 | 1 |
| JPM | 3 | 3 | 1 |
| UBS | 3 | 3 | 1 |
- 三种算法都把银行股聚为一簇。
- K-Means 严格按行业分(含 FB 与 AAPL/GOOG 同簇)。
- 两种层次聚类都把 FB 识别为 outlier,自成一簇。
- 同一 linkage 下两种层次聚类结果未必一致;K-Means 通常与层次聚类不同。
- 买 FB(自成一簇)
- 买 F / GM 中更具吸引力的一只
- 买 GS / JPM / UBS 中更具吸引力的一只
- 输入差异:面板数据与距离矩阵去掉 F、GM 及与其相关的所有成对距离。
- 三簇结果:GS_JPM_UBS / AAPL_GOOG / FB 单独成簇。
- 原因:没有汽车股拉低门槛,AAPL_GOOG 不再需要与银行簇合并;FB 仍因与其他簇相关性低而独立。
- 新建议:买 FB、买 AAPL/GOOG 中较便宜的一只、买银行三只中最具吸引力的一只。
- 会用距离矩阵手算 average linkage(两点到簇的距离取均值)。
- Dendrogram 中arch 高度 = 簇间距离;水平线决定簇数。
- 层次聚类不需事先指定 k;K-Means 必须指定 k = 超参。
- 不同算法结果差异 → 体现"聚类结果对方法敏感"。
人工智能革命在很大程度上由神经网络、深度学习算法和强化学习的进步所推动。这些复杂算法可处理高度复杂的机器学习任务,如图像分类、人脸识别、语音识别和自然语言处理。这些复杂任务的共同特征是存在非线性以及大量特征输入之间的交互作用。
- 高度灵活的 ML 算法,可处理特征间存在非线性和复杂交互的任务。
- 可用于监督学习中的分类与回归,也用于强化学习(无需人工标注数据)。
- 三层结构:
- 输入层:每个节点对应一个特征。
- 隐藏层:学习发生的地方,训练时调整权重,使用时处理输入。
- 输出层:将结果传递到网络外部。
- 与多元回归的关键区别:隐藏层节点以非线性方式转换输入,再组合成目标值。
- ReLU:f(x) = max(0, x);负输入输出 0,正输入保留原值。最常用。
- Sigmoid:S 型函数,输出范围 (0, 1)。
- 作用:像"调光开关",增大或减小信号强度;非线性意味着输出在不同输入水平上的变化率不同。
- 前向传播:信号从输入层 → 隐藏层 → 输出层的传递过程。
- 每个节点有两个功能部分:求和算子(加权求和)和激活函数(非线性转换)。
- 训练:从随机权重开始,迭代比较预测值与实际值(如 MSE),调整权重以减小总误差。
- 反向传播:若调整过程从后往前逐层进行,则称为反向传播。
- 研究表明,简单神经网络在解释和预测个股/组合收益方面优于传统统计方法,因其能捕捉动态和交互变量。
- 优势:处理非线性关系能力强。
- 劣势:缺乏可解释性(黑箱)、需要大量数据、计算强度大。
- 输入特征通常需要标准化(如缩放到 0–1)。
前面讨论的神经网络仅限于浅层神经网络(只有一个隐藏层)。具有多个隐藏层(至少 2 层,但可能超过 20 层)的神经网络称为深度神经网络 (DNNs),是深度学习的基础。
- 输入层接收特征集 → 传递至第一层非线性数学函数(神经元),权重 wij,通常输出缩放到 (0, 1) 或 (–1, 1)。
- 逐层传递直到输出层产生观测属于各目标类别的概率集合。
- DNN 将观测分配给概率最高的类别。
- 训练大数据集时,权重 wi 被确定以最小化指定损失函数。
- 输入层和输出层的节点数通常由特征和预测输出的特性决定。
- 仍需决定的超参数:隐藏层数量、每层节点数、连接方式、激活架构。
- 目标:选择超参数以实现最佳样本外表现,但这仍是挑战,没有简单解。
- 建议:从文献和经验出发给出"合理"猜测,观察结果,逐步调整直至达到模型性能目标。
- DNN 训练耗时较长,系统性地改变超参数可能不可行。
- 相对小数据集可从 2–3 个隐藏层、几百个节点开始,再调参。
- Culkin & Das (2017):训练 DNN 为期权定价,模仿 BSM 模型。
- 输入层 6 个参数:现货价、执行价、剩余期限、股息率、无风险利率、波动率。
- 4 个隐藏层,每层 100 个神经元 + 1 个输出层。
- 样本外预测期权价格与实际价格回归 R² = 99.8%。
- 背景:澳大利亚 PEPF 养老金,A$20B AUM,A$15B 外包给近 100 位外部管理人,近年表现落后。
- 问题:风格漂移 (style drift) 可能是表现不佳的重要因素。
- 方案:用 DNN 收集并分析外部管理人的实时交易数据,与已知投资风格(高股息、低波动、动量、成长、价值)比较,检测潜在风格漂移。
- 结论:DNN 非常适合该任务,因为要处理大量复杂数据、识别模式。
一位投资经理希望使用基本面股票因子模型选股,捕捉最大超额收益。她选择 DNN 预测股票收益,用前馈网络回归替代普通最小二乘线性回归。由于神经网络容易过拟合,使用LASSO 惩罚来缓解。
- 方法:横截面回归 (CSR),因子暴露 B 预测股票收益 rt。
- 目标:找到网络权重,最小化样本外 MSE(预测收益 ŕ 与实际收益 r 之差)。
- LASSO 惩罚加入损失函数,自动收缩非零权重数量,改善样本外表现。
- 减少权重一般意味着减少连接数而非节点数;若上一层所有权重为 0,则当前层节点数减少。
- 样本:S&P 500 中市值最大的 250 只股票(2010 年 6 月),去除缺失后剩 218 只。
- 时间:2010-06 ~ 2018-11,共 101 个月。
- 特征 (K=6):当前企业价值、EV/EBITDA、市销率、市盈率、市净率、市值对数。
- 输出:下月每只股票的月收益。
- 每期拟合一个新模型;每只股票每期有 N=218 对观测(特征向量 + 月收益)。
- 在 t 期训练,t+1 期测试;然后将 t+1 数据变为新训练集,t+2 测试,依次滚动。
- 网络架构:6 个输入节点、2 个隐藏层(每层 50 个神经元)、1 个输出神经元。
- 故意过度设定参数数量(高 variance,低 bias),再用 LASSO 收缩。
- 每层节点数不超过训练集观测数(50 vs 218)。
- 样本外误差通常显著大于样本内误差,但随着时间推移,两者差距大幅缩小。
- LASSO 正则化:增大正则化 → 引入更多 bias,样本内误差上升;但降低 variance,样本外误差下降。
- 所需 LASSO 正则化强度显著,为 0.10(通常范围 0.001–1.0)。
- 样本外与样本内 MSE 尚未收敛,差距约 0.0051,说明最优正则化参数可能远大于 0.10。
- 策略:按神经网络预测收益排名,选 top n 只股票(n=10,15,20,25)。
- 样本内 IR:0.623–0.697(经验法则:0.40–0.60 已算不错)。
- 样本外 IR:0.260–0.315,显著低于样本内。
- 样本外表现是评估未来投资表现最现实的基准;通过增加因子可进一步改善。
- 增加 4 个基本面因子 + 11 个行业虚拟变量 → 共 21 个特征,输入层 21 个神经元。
- 股票数量从 218 扩展到 420。
- 需重新寻找最优 LASSO 超参数;或先增加隐藏层神经元数,再交叉验证。
- 评估改进:用最优模型做样本外月收益预测 → 排名选股 → 计算实现月组合收益 → 滚动重复 → 最终计算信息比率。
Exhibit 37 提供了一个简化的决策流程图,帮助在已讨论的机器学习算法中做出选择。深色椭圆为监督学习算法,浅色椭圆为无监督学习算法,关键问题在未阴影的圆角矩形中。
- 第一步:数据是否复杂,有很多高度相关的特征?
- 是 → PCA 降维
- 第二步:问题是分类还是数值预测?
- 数值预测 → 数据是否具有非线性特征?
- 线性 → Penalized Regression / LASSO
- 非线性 → CART、Random Forest、Neural Networks
- 数值预测 → 数据是否具有非线性特征?
- 分类问题 → 数据是否有标签?
- 有标签 → 数据是否具有非线性特征?
- 线性 → KNN、SVM
- 非线性 → CART、Random Forest、Neural Networks / DNN
- 无标签 → 数据是否具有非线性特征?
- 线性 → K-Means(已知类别数 k)或 Hierarchical Clustering(未知 k)
- 非线性 → Neural Networks / DNN
- 有标签 → 数据是否具有非线性特征?
| 问题类型 | 数据特征 | 推荐算法 |
|---|---|---|
| 降维 | 多特征、高相关 | PCA |
| 回归(线性) | 连续 Y、线性关系 | Penalized Regression / LASSO |
| 回归(非线性) | 连续 Y、非线性 | CART、Random Forest、NN |
| 分类(线性) | 标签 Y、线性可分 | KNN、SVM |
| 分类(非线性) | 标签 Y、非线性 | CART、Random Forest、NN / DNN |
| 聚类(已知 k) | 无标签、线性 | K-Means |
| 聚类(未知 k) | 无标签、线性 | Hierarchical Clustering |
| 聚类(非线性) | 无标签、非线性 | NN / DNN |
- 机器学习旨在从大量数据中提取知识,通过学习已知示例确定数据的潜在结构。核心思路是"找到模式,应用模式"。
- 监督学习依赖标注训练数据,分为回归(目标变量连续)和分类(目标变量类别/有序)。
- 无监督学习无需标注数据,须推断特征间关系或总结分布中未明确提供的潜在结构。两大问题:降维与聚类。
- 深度学习基于神经网络,处理复杂任务(图像分类、NLP)。强化学习中计算机通过与自身交互或算法生成的数据来学习。
- 泛化 (Generalization):ML 模型在样本外预测时保持解释力的程度。过拟合是缺乏泛化的主要原因。
- 误差分解:样本外误差 = Bias 误差 + Variance 误差 + Base 误差(数据随机性)。
- k-fold 交叉验证:缓解留出样本问题;数据随机分 k 份,k–1 份训练,1 份验证。
- 正则化:通过降低模型复杂度来减少高维数据估计/预测中的统计变异。
- LASSO:惩罚项为回归系数绝对值之和;特征越多惩罚越大,须对模型拟合有足够贡献才能抵消惩罚。
- SVM:寻找最优超平面,以最大间隔分离两类数据点。
- KNN:通过找到新观测与数据集中 k 个最近邻居的相似性来分类。
- CART:二叉树组合根节点、决策节点和终端节点;迭代将数据分区直至形成包含预测标签的终端节点。
- 集成学习 / Random Forest:结合多个模型的预测;随机森林通过 Bagging 或随机减少特征数量生成许多不同决策树。
- PCA:将高度相关特征转化为更少的不相关复合变量;产生特征向量(主成分方向)和特征值(解释方差比例)。
- K-Means:将观测划分为固定数量 k 个不重叠簇;每簇由质心表征,观测归属最近质心。
- Hierarchical Clustering:构建簇的层次结构。
- 凝聚式 (Agglomerative):自底向上,每次合并距离最近的两簇。
- 分裂式 (Divisive):自顶向下,逐步将簇划分为更小子簇。
- 神经网络:输入层、隐藏层、输出层;隐藏层节点含求和算子和激活函数;能处理变量间的非线性和复杂交互。
- 深度神经网络 (DNN):具有多个隐藏层(≥2,常 >20),是人工智能革命的支柱。
- 强化学习 (RL):智能体执行动作以在环境约束下最大化长期奖励。
- 监督看 Y,非监督找结构;连续→Regression,类别→Classification。
- 过拟合 = 高 variance;欠拟合 = 高 bias;最优点在两者交点。
- k-fold CV:k 通常 5/10,时间序列不能用。
- LASSO 用 |b| 惩罚 → 自动特征选择;λ 是超参,需先标准化。
- SVM 最大化 margin;支持向量决定边界;Soft margin 容忍错分。
大数据项目:数据准备、清洗与整理
覆盖 7.01–7.03:大数据 4V 特征、ML 项目流程(结构化 vs 文本), 以及结构化数据的清洗 (cleansing) 与整理 (wrangling)。
Big Data (Alternative Data):来自金融市场、企业、政府、 个人(社交、信用卡)、传感器与 IoT 的海量数据。投资经理用其 补充结构化数据,挖掘信号、检测异常、改进资产价格预测。 典型案例:基金经理用 10-K 文本预测股票情绪,作为更全面预测模型的输入。
- Volume 体量:从 TB 到 PB、EB。1 EB = 1,024 PB = ~百万 TB。
- Variety 多样性:结构化 / 半结构化 / 非结构化;交易、文本、图像、视频、社交、传感器、点击流、时空数据。
- Velocity 速度:实时生成。例:Twitter 每 3 天 10 亿条;每日 50 亿次搜索。涉及"data-in-motion" vs "data-at-rest"。
- Veracity 真实性:可信度与可靠性。社交媒体 10–15% 假内容、网页垃圾内容 >20%;NLP 在深层语义仍有挑战。
对 FinTech 影响:信用评估融合财报文本 / 新闻 / 电话会纪要; 客户分群结合交易数据与社交观点;增强欺诈检测与风险管理。
财务预测可用 ML 替代传统财务比率模型。文本大数据(新闻、论坛、社交) 实时性强,预测力增强。文本提供两类信息:Topics(在讨论什么)与 Sentiment(如何看待)。 一项美国研究显示 Twitter 正面情绪可提前 3 天预测道指走势,准确率 ~87%。
- Conceptualization:定义输出、用户、嵌入业务流程。
- Data Collection:内 / 外部结构化数据。
- Data Preparation & Wrangling:清洗 + 预处理。
- Data Exploration:EDA + 特征选择 / 工程。
- Model Training:选算法、评估、调参。
- Text Problem Formulation:定义文本输入 → 结构化输出(如情绪分)。
- Data (Text) Curation:爬虫 / API 收集;专家标注 (bullish / bearish)。
- Text Preparation & Wrangling:把非结构化流转换为可用格式。
- Text Exploration:词云可视化、文本特征选择 / 工程。
- Model Training:同上。
流程是迭代的:本轮洞察反馈到下一轮 reconceptualization。文本输出 (如情绪分) 可与结构化变量合并,或直接用于预测分析。
- Conceptualization:决定输出形式(如二分类)、使用者、嵌入流程。
- Data Collection:内 / 外部数据选择。
- Preparation:缺失、极端值处理;抽取、聚合、过滤、选列。
- Exploration:EDA 方法、特征选择 / 工程。
- Training:选有监督算法、模型拟合度量、验证与调参。
- "借款人申请文本"对应 Text Problem Formulation。
- Text Curation 需求:确保申请表评论字段已实现、回应率足够。
- Text Prep 需求:文本清洗 + 预处理,转结构化值。
这是大数据项目最耗时的阶段(占大部分项目时间),数据质量直接决定模型表现。 需要 领域知识。先 Data Collection(数据库查询、CSV、API、 第三方供应商),再进入 Preparation & Wrangling。
内部 vs 外部数据权衡:第三方"干净"数据节省时间但有成本,且清洗过程可能 掩盖 Alpha;自行清洗可保留信息边。
检查 / 识别 / 修正原始数据错误。手工录入 → 缺失、重复、错误;自动采集 → 服务器 / Bug 导致问题。
在清洗后的数据上做转换与缩放,使其满足 ML 模型输入格式。
| 错误类型 | 定义 | 处理 |
|---|---|---|
| Incompleteness 不完整 | 数据缺失 (NA) | 找替代源;删除或用均值 / 中位数 / 众数 / 0 填补 |
| Invalidity 无效 | 超出合理范围(如出生年 1900) | 核对管理记录 |
| Inaccuracy 不准确 | 非真实测量(如"Don't Know") | 业务记录 / 管理员核实 |
| Inconsistency 不一致 | 与其它字段或现实矛盾(Mr. + Female) | 跨源验证 |
| Non-uniformity 不统一 | 格式不一致(日期、货币符号歧义) | 转换为统一标准格式 |
| Duplication 重复 | 重复记录 | 删除重复项 |
- Extraction 抽取:从现有变量派生新变量(DOB → Age)。
- Aggregation 聚合:多变量合并(Salary + Other Income = Total Income)。
- Filtration 过滤:剔除不需要的行(如非美国客户)。
- Selection 选列:移除不需要的列(与 feature selection 区别)。
- Conversion 类型转换:nominal / ordinal / continuous / categorical;剥离符号与单位、时区、币种、时间价值调整。
- Standard Deviation 法:正态分布下,|x − μ| > 3σ。
- IQR 法:通用分布。IQR = Q3 − Q1。 界限 = Q3 + 1.5·IQR 与 Q1 − 1.5·IQR;用 3.0 倍则为极端值。
- Trimming 截尾:直接删除(如 5% trimmed = 删最高与最低各 5%)。
- Winsorization:用最大 / 最小非异常值替换。
先处理异常值,再缩放。
对异常值敏感;分布未知时使用。
对异常值较不敏感;要求数据近正态。
- Ms. Beta 收入 −63,050 → Invalidity(A)。
- Mr. Gamma 缺 Loan Type → Incompleteness(C)。
- Ms. Delta Loan Amount = unknown → Inaccuracy(B,应已知放款额)。
- Mr. Zeta 行 8 重复行 7 → Duplication(C)。
- "保留 ID 删 Name" → Data Selection(A)。
- "创建 Loan/Income 比率新特征" → Data Extraction(B)。
非结构化数据约占当今数据总量 80%,包括文本、图像、视频、音频。 需先转为结构化才能用于 ML。本节以英文文本为例,称为 Text Processing, 分 cleansing(清洗)与 preprocessing(预处理 / wrangling)两步。
- Remove HTML tags:用 regex
<.*?>移除。 - Remove Punctuations:但 %、$、? 等保留语义价值的需替换成
/percentSign/、/dollarSign/、/questionMark/。Period 视上下文:缩写句号删,句末替换为/endSentence/,e-mail等中的连字符 / 下划线保留。 - Remove Numbers:通常替换为
/number/(防止每个数字被当独立词)。但 Information Extraction (IE) 任务(如提取财报金额)须保留数值。 - Remove white spaces:去多余空格 / 制表符 / 首尾空格。R 中
stripwhitespace。
操作顺序重要:先去标点会让 "1.2 million" 变 "12 million",因此须先 / 后续用 /number/ 标签替换。
- Token = 词;Tokenization = 把文本拆为 token(通常按词)。
- Lowercasing:统一大小写("The" = "the")。
- Stop words 删除:the / is / a 等无语义词;某些场景(如财报)可自定加入 "exhibit"。但高级语境分析有时需保留。
- Stemming(词干化):规则法,Porter 算法最常用。"analyzed/analyzing" → "analyz"。结果未必符合语言学。
- Lemmatization(词形还原):算法 + 词典,"analyzed/analyzing" → "analyze";计算更贵但更精确。
- 两者都降低 data sparseness(数据稀疏),把低频变体聚合,使 ML 模型更简洁。英文里 Stemming 更常用。
- BOW:所有文本中 distinct token 的集合;高效但 不保留词序与位置。
- DTM:行 = 文档,列 = token,单元格 = 该词在该文档出现次数。 至此非结构化文本变成结构化矩阵,可供 ML 训练。
| Doc | man | went | market | today | valu | increas | need | product |
|---|---|---|---|---|---|---|---|---|
| T1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
| T2 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
| T3 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 |
| T4 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 |
把连续 n 个词作为一个 token:unigram (n=1)、bigram (n=2)、trigram (n=3)。 例:BOW 中 "no" 作为 stop word 被删掉,丢掉了 "no market" 的负面意义; bigram no_market 则保留语义。可与 unigram 合并构建 BOW & DTM。 注意 to_the 这种 stop-word 组合不会被预定义列表过滤。
- 1. 输出 = DTM(C)。
- 2. 需添加注释的清洗步骤是 Punctuations(C,如 %、$、?)。
- 3. DTM 一列 = 一个 token(A)。
- 4. DTM 单元格 = token 出现次数(B)。
- 5. Normalization 包含 lowercasing(C);A/B 属于 cleansing。
- 6. 处理稀疏词、防止复杂模型 → Stemming(A)。
- 7. Tokenization = 把文本拆为 token(C);不是 cleansing 的一部分,通常按 word 而非 character。
Data Exploration 在 prep 之后、training 之前;包含三件事:EDA、Feature Selection、Feature Engineering。 域知识参与至关重要,否则容易得到 spurious relationships。
- 理解数据属性、找出模式与关系
- 检查基本假设、记录分布
- 规划后续建模策略;作为利益相关者间沟通媒介
- Histogram(直方图)— 等宽分箱频率
- Bar chart — 类别频率
- Box plot — 中位数 / 四分位 / 异常值
- Density plot — 平滑直方图,常叠加在 histogram 上
配合描述统计:均值 / 中位 / 分位 / 标准差 / 偏度 / 峰度。
- Scatterplot — 两特征关系
- Line chart、Stacked bar、Multiple box plots
- 用颜色 / 形状 / 大小编码额外维度
- 高维数据可先 PCA 降维再 EDA
参数检验:ANOVA、t-test、Pearson;非参:χ²、Spearman。
目标:保留对模型预测有贡献的特征 → 简化模型、加快训练、降低样本外误差。
- 统计打分:χ²、相关系数、信息增益 (R²)
- 前向 / 后向逐步选择
- 诊断:冗余、heteroscedasticity、multicollinearity
- 不同于 Dimensionality Reduction(如 PCA): DR 创建新的不相关组合特征;Feature Selection 仅保留 / 删除现有特征。
- 连续:log(乘积)、收入分段
income_above_100k(0/1) - 类别:one-hot encoding(如学历 5 档展开为 5 个 0/1 列)
- 时间:second_of_hour、hour_of_day、day_of_date(量化交易尤其重要)
- 组合 / 分解现有特征以暴露隐含结构
文本应用:Text Classification(有监督)、Topic Modeling(无监督聚类)、Sentiment Analysis(有 / 无监督)、Fraud Detection。 语料 (corpus) = 文本集合。
- Term Frequency (TF) = token 在数据集所有文本中出现次数 ÷ 总 token 数。Topic modeling 中删除高 TF 词(可能是 stop words)。
- Chi-square 关联度:用于情感 / 分类,看词与类别的显著关联。
- 可视化:bar chart 词频;Word Cloud 词云(字号 = 频率,颜色编码额外维度)。
本质 = 缩小词表 / BOW;去除 noisy features:
- 过高频 → underfitting(无法定决策边界);过低频 / 稀疏 → overfitting。
- Frequency measures:TF 与 DF(含该词文档数 ÷ 总文档数)做词表剪枝。
- Chi-square test:检验 token 与 class 独立性,排序选用。
- Mutual Information (MI):0 = 在各类分布相同;越接近 1 越只在某一类出现。
- Numbers:按位数拆
/number4/(年份)、/number10/(ID 号)等。 - N-grams:保留多词搭配(
stock_market)。 - Name Entity Recognition (NER):标 ORGANIZATION / LOCATION / DATE / MONEY / TIME / PERCENT 等;NER tag 可作特征,并避免对其做 lowercase / stem。
- Parts of Speech (POS):noun / verb / adj / proper noun 等标签;区分 "market" 作动词 (营销) vs 名词 (市场)。
- 结构化字段用 histogram / box / scatterplot;按 default vs no-default 分组。
- 自由回答文本:先 word cloud 看高频词(credit、score、worked、hard、embarrassed…)。
- 目标变量 (Loan Outcome) 离散 → 用 χ² 与 information gain 单变量打分;也可对 TF / DF 衍生词频特征排序。
- 可用 bigrams:
credit_score、worked_hard区分类别。
- 推荐:BOW、N-grams、POS;NER 不适用(文本无人名 / 地点 / 日期)。
- BOW:英文等可显式分词语言的通用起点。
- N-grams:trigram
have_worked_hard(no default 文本)vshad_worked_harder(defaulted),上下文意义截然不同。 - POS:动词 vs 形容词分布差异可反映借款人措辞模式。
模型训练 = Method Selection + Performance Evaluation + Tuning, 迭代进行。无论结构化还是非结构化数据,训练流程相同(非结构化先转 DTM)。
- Underfit:训练集就错很多;模型太简单 / 数据太少 / 特征太少。
- Overfit:训练集近乎完美但泛化差;特征过多。
- Good fit:训练集有少量错但能泛化。
Feature engineering 通常防 underfit;feature selection 通常防 overfit。
- 有 / 无监督:监督 → regression、ensemble trees、SVM、NN;无监督 → 降维、聚类、异常检测。
- 数据类型:数值 → CART;文本 → GLM、SVM;图像 → NN / 深度学习;语音 → 深度学习。
- 数据规模:SVM 擅长 "wider"(10k–100k 特征、少样本);NN 擅长 "longer"(样本远大于特征)。
混合数据:可把一模型的输出作为另一模型的输入特征(如文本情绪 → CART 选股特征)。
主数据集 → Training 60% / Cross-Validation 20% / Test 20%(k-fold 随机抽样)。无监督无须划分。
- 少数类样本太少时,模型偏向预测多数类,准确率虚高。
- Undersampling 多数类 / Oversampling 少数类(有 / 无放回皆可)。
- 高级:合成新样本(如 SMOTE)。
- TP / TN:预测正确(正 / 负)
- FP = Type I 错误(误报);FN = Type II 错误(漏报)
类别不平衡时用 F1 而非 Accuracy;F1 偏向 P 和 R 中较小者。 示例:P=0.75, R=0.60 → F1=0.67, Accuracy=0.70。
- 横轴 FPR、纵轴 TPR,扫描不同阈值(如 logistic p-threshold)绘出。
- 曲线越凸越好;AUC ≈ 1 完美预测,AUC = 0.5 随机猜测。
- 训练集误差高 → Underfit / High Bias(模型过简)
- CV 集误差 ≫ 训练集 → Overfit / High Variance(模型过复杂)
- 目标:最小化 Bias + Variance 总和(无法同时为 0)。
- Parameters:训练中从数据学到。例:回归系数、NN 权重、SVM 支持向量。
- Hyperparameters:人工设定、不依赖数据。例:正则化 λ、NN 隐层数 / 激活函数、ensemble 树数与树深、KNN/K-means 的 k、logistic p-threshold。
- Grid Search:系统遍历超参组合 + CV,找最佳。
- Fitting curve:随超参 / 复杂度变化的训练 vs CV 误差曲线。
- 正则化 λ:
- 太小 → 高方差 / 过拟合(训练误差小、CV 大)
- 太大 → 高偏差 / 欠拟合(两者皆大)
- 最优 → 两者皆小且接近
- High variance → 加样本 / 减特征。
- High bias → 加特征。
- 复杂模型(含子模型)→ Ceiling Analysis:评估各子模型对总体性能的潜在提升空间,决定先调哪个。
Robo-readers 自动阅读海量文本(新闻、社交)分析 sentiment polarity(正 / 负 / 中性)。 示例:"XYZ Corporation is doing terrific things..." → 正面(XYZ 为 target)。
- 来源:Financial Phrase Bank(Researchgate),LexisNexis 英文新闻,覆盖 NASDAQ OMX Helsinki 上市公司。
- 共 14,780 句,已标注三类情绪。本项目取 AllAgree + 75Agree,仅正 / 负二分类,共 2,180 句(正 1,457,负 723)。
- 横截面数据(非时间序列)。"@" 分隔符把句子与情绪标签分开。
- Punctuations:先用
percentSign、dollarSign替换 %、$;再删除其它标点(句号、分号、逗号),以及 +、© 等特殊符号。 - Numbers:先把数量级缩写
m / mln / mn / bn换成完整词 "million / billion",再删除所有数字。 - White spaces:去重复空格。
情绪分析不依赖具体数字(如 "boosted" 已暗示增长),故数字可删。
- Lowercase:统一大小写。
- Stop words 保留:not、more、very、few 在财报情境承载语义(之后在 EDA 阶段再用频率分析找 custom stop words)。
- Stemming:执行(如 profit → profit, decreased → decreas, before → befor)。
- 词元统一:EUR / USD / dollarsign → 统一为
currencysign。
归一化后 tokenize 得 2,673 个 unique tokens,构成初步 unigram BOW。 但最终 DTM 须在 EDA + Feature Selection 后才确定(删冗余 token、考虑 n-grams)。
对清洗后的 2,180 句、共 44,151 个 non-unique token 做 EDA: 找出高频 stop words(如 the、million、currencysign)与极低频专有名词。 正 / 负两类高频词高度重合,说明须删除以提升判别力。
- Sentence length histogram:min 26、max 273、平均 ~120 字符;无异常长短句。
- Word Cloud:整语料 + 按正 / 负切分;正面常见 increas / rose,负面 decreas / down。
高 TF-IDF = 在少数文档中频繁出现 = 重要且独特的词。 低 TF-IDF = 在大多数文档中出现 = 不具判别力。
- 删 TF > 99.5 百分位(14 个 custom stop words)
- 删 TF < 30 百分位(714 个稀疏词)
- 删单字符 token
- DTM 单元格填 TF (sentence-level)(因数据是句子粒度,用 TF–IDF 受语料规模影响较大)
同时使用 unigram + bigram,保留否定结构如 not_good、no_longer、tax_loss、sale_increas,对情绪预测至关重要。
token "a" 在句 1,826(44,151 总词 / 2,180 总句 / sentence 长 34 / 句中 6 次 / DF 687):
- TF (Coll) = 873/44,151 = 1.98%
- TF (Sent) = 6/34 = 17.65%
- DF = 687/2,180 = 31.51%
- IDF = log(1/0.3151) = 1.155
- TF-IDF = 0.1765 × 1.155 = 0.2038(低 → 通用词)
token "great" 在句 1,368(句长 9 / 出现 1 次 / 整集 4 次 / DF 4):
- TF (Sent) = 1/9 = 11.11%;IDF = log(1/0.00184) = 6.301
- TF-IDF = 0.1111 × 6.301 = 0.7001(高 → 重要独特词)
| Split | % | 句数 | DTM | 用途 |
|---|---|---|---|---|
| Master | 100 | 2,180 | 2,180 × 11,501 | EDA |
| Training | 60 | 1,309 | 1,309 × 9,188 | 训练 |
| CV | 20 | 435 | 435 × 9,188 | 调参 / 验证 |
| Test | 20 | 436 | 436 × 9,188 | 测试 |
CV / Test DTM 列保持与 training BOW 一致(9,188 features);TF 值用各自语料计算。
- 比较 SVM / Decision Tree / Logistic:SVM 与 Logistic 优于 Tree。
- 最终选 Logistic Regression:能很好处理稀疏 DTM(多数 token 系数趋近 0),便于忽略无用特征。
- 正 = 1, 负 = 0;输出 p ∈ [0,1] = 正面概率。
- 无正则化:AUC training 96.5% vs CV 86.2% → 明显过拟合。
- 加 LASSO 后:AUC training 95.7% vs CV 94.8% → fit 良好。
- 不加正则、保留全部 token:training 99.1% / CV 89.4% → 过拟合更严重。
- LASSO 把不重要 token 的系数压为 0,相当于自动特征选择。
- 默认 p = 0.50 → Accuracy 90%。
- 遍历 0.01–0.99,绘制 F1 / Accuracy 曲线。
- 最佳 p ≈ 0.60:Accuracy = 0.9149, F1 = 0.9388, Precision 0.90, Recall 0.976。
- 本项目假设正 / 负样本成本相等,故同时优化 Accuracy + F1。
把模型应用于 436 句 test set(同样经清洗 / 预处理 / 用 training BOW 构建 DTM、p = 0.60 阈值)。
- Accuracy 90% · F1 93% · Precision 89% · Recall 98%
- 模型 robust、不过拟合,可推广到类似来源(新闻通讯、财报、电话会纪要)。
30 句样本中 3 例错分(p = 0.46 / 0.77 / 0.71),sample accuracy 27/30 = 90%。
- 对新句执行与训练集 完全相同 的 tokenization、cleansing、preprocessing。
- 用 training BOW 的列构建 DTM,填入 TF 值。
- 套用 LASSO logistic 系数得 p。
- p ≥ 0.60 → 正面,否则负面。
- p=0.75(A):TP 281 / TN 110;Acc 0.90, F1 0.93, Precision 0.91, Recall 0.94。FN 较多。
- p=0.45(B):FP 多 → Precision 0.87, Recall 0.99。
- p=0.60(Exhibit 48):Acc 0.91, F1 0.94, P 0.90, R 0.98 → 最佳平衡。
- 权衡:买入错判(FP)→ 高 Precision 重要;漏买 / 错空(FN)→ 高 Recall 重要。
- 大数据特征 = Volume / Velocity / Variety / Veracity,对 FinTech 应用潜力巨大。
- 传统 ML 五步:概念化 → 数据采集 → prep & wrangling → exploration → training。文本前 4 步替换为 Text Problem Formulation / Curation / Prep & Wrangling / Exploration。
- 结构化 cleansing 六类错误(Incompleteness / Invalidity / Inaccuracy / Inconsistency / Non-uniformity / Duplication);preprocessing 五类操作(Extraction / Aggregation / Filtration / Selection / Conversion)。
- 文本 cleansing:删 HTML / 标点(保留 %、$ 替换)/ 数字 / 空白。Wrangling:lowercase、stop words、stemming、lemmatization、BOW / n-grams → DTM。
- Exploration:结构化用 histogram / box / scatter;文本用 word cloud。文本 feature selection:TF、DF、χ²、MI;feature engineering:数字 token、n-grams、NER、POS。
- Training 三任务:Method Selection(监督 / 类型 / 规模)、Performance Evaluation(confusion matrix、Accuracy、F1、Precision、Recall、ROC/AUC、RMSE)、Tuning(Bias–Variance trade-off,fitting curve)。
- 文本情感案例:Financial Phrase Bank 2,180 句 → Logistic + LASSO,阈值 0.60,Test Acc 90%, F1 93%。
- 关键 TF 表字段:TotalWordsInSentence、TotalWordCount、TF(Collection)、WordCountInSentence、SentenceCountWithWord、DF、IDF、TF–IDF。
本节汇总 Module 7 全部高频英文术语与对应中文释义,便于考前快速复习。
- Accuracy 准确率
- 分类正确的样本占总样本的比例,是分类问题的整体性能指标。
- Application Programming Interface (API)
- 软件组件之间的标准通信接口,常用于获取外部数据。
- Bag-of-Words (BOW) 词袋
- 样本数据集中所有不重复 token 的集合,不保留词序和位置信息。
- Ceiling Analysis 天花板分析
- 系统评估模型 pipeline 各组件的方法,识别哪一环节通过进一步调优能带来最大提升。
- Collection Frequency (CF)
- 某词在整个语料中出现的次数 ÷ 语料总词数。
- Confusion Matrix 混淆矩阵
- 分类误差分析网格,包含 TP / FP / TN / FN 四个指标。
- Corpus 语料库
- 以列表、矩阵或数据表形式存在的文本数据集合。
- Data Preparation (Cleansing) 数据清洗
- 检查、识别并修正原始数据中错误的过程。
- Data Wrangling (Preprocessing) 数据整理
- 对清洗后的数据进行转换和关键处理,使其满足 ML 训练需求;包括处理异常值、提取新变量、缩放等。
- Document Frequency (DF) 文档频率
- 含某 token 的文档数 ÷ 总文档数,是最简单的特征选择方法之一,token 量大时表现良好。
- Document Term Matrix (DTM)
- 行表示文档、列表示 token 的矩阵;单元格为该 token 在文档中出现的次数。
- Exploratory Data Analysis (EDA)
- 数据探索的初步阶段,使用图形(热力图、词云)和定量方法(描述统计、集中趋势)观察并总结数据。
- F1 Score
- Precision 与 Recall 的调和平均;类别分布不均时优于 Accuracy。
- Feature Engineering 特征工程
- 通过修改或转换现有特征创建新特征。
- Feature Selection 特征选择
- 仅选取相关特征用于训练,降低模型复杂度与训练时间。
- Frequency Analysis 频率分析
- 量化 token 在句子和整个语料中的重要性,用于过滤无信息量的 token。
- Grid Search 网格搜索
- 系统遍历多组超参数组合并交叉验证,选取最优组合。
- Ground Truth 真实标签
- 标注数据集中每个观测的已知目标变量。
- Metadata 元数据
- 描述其他数据的数据。
- Mutual Information (MI) 互信息
- 衡量 token 对文本类别提供的信息量;分布一致时 MI=0,集中于某一类时 MI 趋近 1。
- N-grams
- 词序列表示:1 词为 unigram,2 词为 bigram,3 词为 trigram。
- Name Entity Recognition (NER)
- 分析 token 及其上下文语义并对照词典,为 token 打上对象类别标签。
- One Hot Encoding 独热编码
- 将分类变量转换为 0/1 二元形式,是处理文本分类特征最常见的方法之一。
- Parts of Speech (POS) 词性
- 基于语法结构和词典为每个 token 标注词性(名词、动词、形容词、专有名词等)。
- Precision 精确率
- 正确预测的正类 ÷ 全部预测为正类;当 FP(Type I)代价高时尤为重要。
- Readme Files
- 伴随原始数据的说明文件,帮助正确理解和解释数据。
- Recall 召回率 (Sensitivity)
- 正确预测的正类 ÷ 实际全部正类;当 FN(Type II)代价高时尤为重要。
- Regular Expression (regex)
- 按特定顺序排列的字符序列,用于在文本中搜索感兴趣的模式。
- Scaling 缩放
- 通过平移和改变尺度调整特征范围;常用 normalization 和 standardization。
- Sentence Length 句长
- 句子的字符数(含空格)。
- Term Frequency (TF) 词频
- 某 token 在所有文本中出现的次数 ÷ 数据集中 token 总数。
- Token 词元
- 等价于一个词(有时为字符)。
- Tokenization 分词
- 将给定文本拆分成独立 token 的过程。
- Trimming (Truncation) 截尾
- 从数据集中删除极端值和异常值。
- Web Spidering (Scraping / Crawling)
- 从来源(通常是网页)抽取原始内容的程序。
- Winsorization 缩尾
- 用非异常值中的最大/最小值替换数据集中的极端值。
