第2章:概率论回顾——条件概率、贝叶斯定理、先验与后验分布、最大似然估计

说实话,很多做量化的朋友一上来就撸代码、调参数,结果模型在回测里漂亮得像朵花,一上实盘就崩。为什么?因为忽略了概率论这个底层逻辑。你想想看,市场本质上就是个概率游戏,你连条件概率和贝叶斯都搞不清楚,怎么去评估模型的置信度?

这一章,我们就来把概率论里那几个最核心的概念捋一遍。我会结合我在量化交易中的实际踩坑经历来讲,保证你听完就能用上。

核心观点:概率论不是数学题,它是你理解市场不确定性的语言。贝叶斯定理更是量化置信度评估的基石。

2.1 条件概率:别被“独立事件”骗了

条件概率,说白了就是“在已知某件事发生的情况下,另一件事发生的概率”。公式很简单:

P(A|B) = P(A∩B) / P(B)

嗯,这里要注意。很多新手容易犯一个错误——把条件概率和联合概率搞混。我刚开始做因子研究时就吃过这个亏。

举个例子:

  • 假设你有一个动量因子信号A,和一个波动率因子信号B。
  • P(A) = 0.6,表示信号A发出买入指示的概率是60%。
  • P(B) = 0.4,表示信号B发出买入指示的概率是40%。
  • P(A∩B) = 0.3,表示两个信号同时发出买入指示的概率是30%。

那么,在信号B已经发出的情况下,信号A也发出的概率是多少?

P(A|B) = 0.3 / 0.4 = 0.75

看到了吗?条件概率是75%,比单独的60%高了不少。这说明两个信号之间有正相关性。我在项目中遇到过这种情况:两个看起来不错的因子,单独回测都挺好,但组合在一起效果反而变差。为什么?因为它们的条件概率太高了,说白了就是“重复押注”,没有起到分散风险的作用。

我的经验:在做多因子模型时,我习惯先计算因子之间的条件概率矩阵。如果两个因子的P(A|B) > 0.8,我会考虑只保留其中一个,或者做正交化处理。否则,你的模型置信度会被高估。

2.2 贝叶斯定理:量化界的“后悔药”

贝叶斯定理,我个人认为是整个量化置信度评估体系里最重要的公式。没有之一。它的形式是:

P(H|E) = P(E|H) * P(H) / P(E)

其中:

  • P(H|E):后验概率(看到数据后,对假设的信念)
  • P(H):先验概率(看到数据前,对假设的信念)
  • P(E|H):似然(假设成立时,数据出现的概率)
  • P(E):证据(数据出现的总概率)

你想想看,做量化交易最怕什么?最怕“死扛”。明明市场已经变了,你还抱着原来的策略不放。贝叶斯定理就是帮你“动态更新信念”的工具。

举个量化中的实际例子:

假设你有一个趋势跟踪策略,历史回测中胜率是55%。你把这个策略部署到实盘上,结果连续亏了3笔。这时候,你是继续相信策略,还是怀疑它失效了?

用贝叶斯定理来算:

  • 先验概率P(H):策略有效的概率。根据历史回测,我们设P(H)=0.7(比较乐观)。
  • 似然P(E|H):如果策略有效,连续亏3笔的概率。假设策略有效时单笔亏损概率是0.45,那么连续3笔亏损的概率是0.45^3 ≈ 0.091。
  • 证据P(E):连续亏3笔的总概率。这包括策略有效时亏的概率 + 策略失效时亏的概率。假设策略失效时单笔亏损概率是0.8,那么P(E) = 0.7*0.091 + 0.3*0.512 ≈ 0.217。

计算后验概率:

P(H|E) = 0.091 * 0.7 / 0.217 ≈ 0.294

看到了吗?连续亏3笔之后,你对策略有效的信念从70%降到了29.4%。这时候,你应该暂停策略,重新评估,而不是继续死扛。

我曾经踩过的坑:刚开始做量化时,我设计了一个套利策略,回测表现极好。实盘前3个月也赚了不少,我就觉得“这策略无敌了”。结果第4个月开始连续回撤,我还在用“均值回归”的理论安慰自己。后来用贝叶斯一算,后验概率早就跌破20%了。那次亏了不少钱,教训深刻。

2.3 先验与后验分布:你的“偏见”很重要

先验分布,说白了就是你在看到数据之前,对某个参数的“主观判断”。后验分布,就是结合数据之后,更新过的判断。

在量化中,先验分布特别重要。为什么?因为金融数据通常信噪比极低,样本量有限。如果你没有合理的先验,光靠数据去拟合,很容易过拟合。

举个例子:

假设你要估计某个股票的年化收益率μ。你只有过去1年的月度数据(12个样本点)。如果你直接用样本均值去估计,可能会得到μ=25%。但你觉得这个数字靠谱吗?

我个人习惯的做法是:

  1. 设定先验分布:根据该股票所在行业的历史数据,我设定μ服从正态分布N(0.08, 0.05^2)。也就是说,我“先验地”认为年化收益率应该在8%左右,波动范围在±5%。
  2. 收集数据:过去12个月的月度收益率,样本均值是25%,样本标准差是15%。
  3. 计算后验分布:结合先验和似然,得到后验均值大约是12.3%,后验标准差是4.2%。

你看,后验均值12.3%比样本均值25%要保守得多,但比先验均值8%要高。这就是“数据修正先验”的过程。

关键点:先验分布不是“拍脑袋”,而是基于历史经验、行业知识、甚至是你对市场逻辑的理解。一个好的先验,能帮你避免被噪声数据带偏。

2.4 最大似然估计:最“诚实”的参数估计方法

最大似然估计(MLE),思路很简单:找到一组参数,使得当前观测数据出现的概率最大。

公式形式:

θ̂ = argmax L(θ; x) = argmax ∏ P(x_i | θ)

其中L(θ; x)是似然函数,P(x_i | θ)是单个数据点的概率密度。

在实际量化中,MLE用得非常多。比如:

  • 估计GARCH模型的参数
  • 估计Copula模型的参数
  • 估计随机波动率模型的参数

举个简单的例子:

假设你观察到某只股票过去10天的日收益率:[-0.02, 0.01, 0.03, -0.01, 0.02, -0.03, 0.01, 0.00, 0.02, -0.01]。你假设这些收益率服从正态分布N(μ, σ^2),想用MLE估计μ和σ。

import numpy as np
from scipy.optimize import minimize

returns = np.array([-0.02, 0.01, 0.03, -0.01, 0.02, -0.03, 0.01, 0.00, 0.02, -0.01])

def neg_log_likelihood(params):
    mu, sigma = params
    if sigma <= 0:
        return 1e10
    n = len(returns)
    ll = -0.5 * n * np.log(2 * np.pi) - 0.5 * n * np.log(sigma**2) - np.sum((returns - mu)**2) / (2 * sigma**2)
    return -ll

result = minimize(neg_log_likelihood, x0=[0.0, 0.02], method='L-BFGS-B', bounds=[(-0.1, 0.1), (0.001, 0.1)])
mu_mle, sigma_mle = result.x
print(f"MLE估计: μ={mu_mle:.4f}, σ={sigma_mle:.4f}")

运行结果大概是μ≈0.002,σ≈0.018。这就是最“诚实”的估计——完全由数据说了算。

我的建议:MLE虽然好,但要注意样本量。如果样本太少,MLE的估计方差会很大。我一般要求至少30个样本点才用MLE,否则我会用贝叶斯方法加上先验分布来约束。

2.5 本章知识体系图

下面我用一张SVG图来总结本章的核心逻辑。你看完应该能明白这些概念之间的关系。

概率论回顾:核心知识体系 概率论基础 条件概率 P(A|B) 贝叶斯定理 先验与后验分布 最大似然估计 MLE 联合概率 P(A∩B) 独立性检验 后验 = 先验 × 似然 信念动态更新 主观先验设定 数据修正信念 似然函数最大化 参数点估计 核心逻辑:用概率语言描述不确定性 → 用贝叶斯更新信念 → 用MLE从数据中学习

2.6 小结

这一章我们讲了四个核心概念:

  • 条件概率:帮你理解事件之间的依赖关系,避免重复押注。
  • 贝叶斯定理:量化界的“后悔药”,让你动态更新对策略的信念。
  • 先验与后验分布:把你的经验和数据结合起来,做出更稳健的估计。
  • 最大似然估计:最“诚实”的参数估计方法,完全由数据说话。

说实话,这些概念单独看都不难,但把它们串起来用,才是真本事。我在做量化模型时,几乎每天都在用贝叶斯思维——先设定一个合理的先验,然后用数据去更新它,最后用MLE或者MAP(最大后验估计)来得到参数。这套流程,就是置信度评估的底层逻辑。

一句话总结:概率论不是用来考试的,它是你量化交易中的“防弹衣”。穿上它,你才能在充满噪声的市场里,做出更理性的决策。


公众号:蓝海资料掘金营,微信deep3321