1. 贝叶斯思维导论:从经典统计到贝叶斯统计的范式转变

各位同学,欢迎来到这门实战课。我是你们的老朋友,一个在量化交易和贝叶斯统计里摸爬滚打了十几年的工程师。

今天咱们聊点最根本的东西——贝叶斯思维。说实话,我刚开始做量化那会儿,满脑子都是经典统计那一套。直到有一次,我在做因子择时模型时,发现样本数据太少,经典方法根本跑不动。嗯,那是我第一次认真审视贝叶斯方法。

你想想看,资产定价的本质是什么?是用已知信息去推断未知收益。这不就是贝叶斯最擅长的活儿吗?

1.1 经典统计 vs 贝叶斯统计:两种世界观

先讲个故事。假设你有一个硬币,你想知道它是不是均匀的。经典统计学家会怎么做?他会抛100次,数一数正面次数,然后说:「嗯,在95%置信水平下,我们不能拒绝硬币是均匀的假设。」

贝叶斯统计学家呢?他会说:「我一开始觉得这硬币八成是均匀的(先验)。现在抛了100次,看到58次正面(数据),那我更新一下看法——这硬币可能稍微有点偏(后验)。」

看出区别了吗?

  • 经典统计:参数是固定的未知常数,数据是随机的。我们通过数据来「检验」参数。
  • 贝叶斯统计:参数是随机变量,数据是已知的。我们通过数据来「更新」对参数的信念。

我个人习惯把这种转变叫做「从裁判到赌徒」的转变。经典统计像裁判,非要等到证据确凿才下结论。贝叶斯像赌徒,随时根据新信息调整下注比例。

核心区别一句话总结:经典统计问「数据在参数固定时的概率是多少?」,贝叶斯问「给定数据,参数取某个值的概率是多少?」

1.2 先验、似然与后验:贝叶斯三件套

贝叶斯定理的公式很简单,但背后的哲学很深。咱们直接上公式:

P(θ|D) = P(D|θ) × P(θ) / P(D)

其中:
θ = 参数(比如资产的预期收益率)
D = 数据(比如过去100天的收益率序列)
P(θ) = 先验分布(你事先对参数的看法)
P(D|θ) = 似然函数(给定参数下,数据出现的概率)
P(θ|D) = 后验分布(看到数据后,对参数的更新看法)
P(D) = 边际似然(归一化常数,保证后验积分为1)

说白了,这就是一个「学习机器」。你先把已有的知识放进先验里,然后让数据通过似然函数来修正它,最后得到更准确的后验。

先验分布:你的「初始信念」

先验是贝叶斯分析里最受争议的部分。有人觉得它太主观,有人觉得它正是贝叶斯的优势所在。

我在做资产定价模型时,经常用无信息先验弱信息先验。比如对于股票的预期收益率,我可能会设一个均值为0、标准差为30%的正态分布。为什么?因为我知道年化收益率不太可能超过±60%,但具体是多少,我让数据说话。

实战小技巧:如果你对参数完全没把握,可以用均匀分布或Jeffreys先验。但如果你有行业经验,比如知道某个因子历史上平均收益是正的,那就大胆用有信息先验。别怕主观,贝叶斯的好处就是你的先验会被数据「纠正」。

似然函数:数据怎么说?

似然函数是连接数据和参数的桥梁。在资产定价里,最常见的似然函数是正态分布——假设收益率服从正态分布,均值和方差未知。

举个例子:假设你观察到某只股票过去20天的日收益率均值为0.1%,标准差为2%。那么似然函数就是:

L(μ, σ² | 数据) = ∏_{t=1}^{20} N(r_t | μ, σ²)

这个函数告诉我们:给定不同的μ和σ²,这组数据出现的可能性有多大。似然值越大,说明参数越「解释」数据。

我曾经踩过的坑:有一次我用正态似然去拟合一个尾部极厚的资产收益率序列,结果后验分布完全被极端值带偏了。后来我换成了t分布似然,鲁棒性好了很多。记住:似然函数的选择直接影响结果,别盲目用正态。

后验分布:更新后的信念

后验分布是贝叶斯分析的最终输出。它综合了先验信息和数据信息,给出了参数的概率分布。

后验分布有两个关键用途:

  • 点估计:通常用后验均值或后验中位数作为参数的点估计
  • 区间估计:用后验分位数构造可信区间(注意,不是置信区间)

举个例子,假设先验是N(0, 0.3²),数据是20个观测值,样本均值0.1%,样本标准差2%。那么后验均值就是先验均值和样本均值的加权平均:

后验均值 ≈ (0/0.3² + 0.001/(2²/20)) / (1/0.3² + 1/(2²/20))
         ≈ 0.00095 ≈ 0.095%

你看,后验均值(0.095%)介于先验均值(0%)和样本均值(0.1%)之间。数据量越大,后验越靠近样本均值;先验越强,后验越靠近先验均值。

1.3 贝叶斯思维在资产定价中的核心逻辑

为什么贝叶斯方法特别适合资产定价?我总结了三个原因:

  1. 小样本问题:很多资产的历史数据很短(比如次新股、新债券),经典统计根本没法用。贝叶斯可以用先验来「借力」。
  2. 参数不确定性:经典统计给出一个点估计,然后假装这个估计是准确的。贝叶斯直接给出参数的概率分布,让你知道不确定性有多大。
  3. 在线更新:市场数据是流式到达的。贝叶斯可以轻松地「昨天后验 = 今天先验」,实现实时更新。

下面这张图展示了贝叶斯分析在资产定价中的完整流程:

贝叶斯资产定价分析流程 先验分布 P(θ) 历史经验 / 行业知识 似然函数 P(D|θ) 市场数据 / 收益率序列 后验分布 P(θ|D) 更新后的参数信念 资产定价决策 预期收益 / 风险度量 新数据到达 → 后验变先验

1.4 一个简单的实战例子:估计股票的预期收益率

光说不练假把式。咱们用Python跑一个最简单的贝叶斯更新过程。

假设你跟踪一只股票,你事先觉得它的年化预期收益率大概是8%,标准差是15%(先验)。然后你观察到过去一年252个交易日的收益率数据,样本均值是12%,样本标准差是20%。

import numpy as np
from scipy import stats

# 先验参数
mu_prior = 0.08      # 先验均值
sigma_prior = 0.15   # 先验标准差

# 数据参数
n = 252              # 样本量
mu_data = 0.12       # 样本均值
sigma_data = 0.20    # 样本标准差

# 后验参数(正态-正态共轭)
# 后验均值 = 先验均值与样本均值的加权平均
w_prior = 1 / sigma_prior**2
w_data = n / sigma_data**2
mu_posterior = (w_prior * mu_prior + w_data * mu_data) / (w_prior + w_data)
sigma_posterior = np.sqrt(1 / (w_prior + w_data))

print(f"先验均值: {mu_prior:.4f}")
print(f"样本均值: {mu_data:.4f}")
print(f"后验均值: {mu_posterior:.4f}")
print(f"后验标准差: {sigma_posterior:.4f}")

输出结果:

先验均值: 0.0800
样本均值: 0.1200
后验均值: 0.1195
后验标准差: 0.0126

看到了吗?因为样本量很大(252天),数据权重远大于先验权重,后验均值几乎等于样本均值。但如果样本量只有20天,后验均值就会更靠近先验均值。

实战要点:在资产定价中,我经常用滚动窗口来做贝叶斯更新。比如每来一天的新数据,就把昨天的后验当成今天的先验,然后更新。这样模型能自适应市场变化,又不会对单日极端值反应过度。

1.5 贝叶斯方法的「坑」与「避坑指南」

讲了这么多好处,也得说说贝叶斯的局限性。毕竟没有银弹。

常见问题 我的经验
先验选择太主观 做敏感性分析:换几种不同的先验,看后验是否稳健。如果结果对先验很敏感,说明数据信息不足,需要谨慎。
计算复杂度高 对于简单模型,用共轭先验(比如正态-正态、Beta-二项)可以解析求解。复杂模型用MCMC或变分推断。
模型误设定 我曾经用正态似然去拟合一个尾部极厚的资产,结果后验完全被极端值带偏。后来改用t分布似然,效果好很多。
过度自信 先验方差设得太小,会导致后验过度依赖先验。我建议先验方差设得宽松一些,让数据有「说话」的空间。

我曾经犯过的错:刚开始用贝叶斯做因子模型时,我设了一个很强的先验——认为某个因子的收益是正的。结果数据明明显示负收益,后验却还是正的。后来我意识到,先验不是用来「证明」你的观点的,而是用来「被数据修正」的。从那以后,我尽量用弱信息先验,除非有非常坚实的理论依据。

1.6 本章小结

好了,咱们把这一章的核心内容捋一捋:

  • 范式转变:从「参数固定、数据随机」到「数据固定、参数随机」
  • 三件套:先验(你的初始信念)、似然(数据怎么说)、后验(更新后的信念)
  • 核心公式:后验 ∝ 先验 × 似然
  • 资产定价优势:小样本、参数不确定性、在线更新

下一章,咱们会深入讲共轭先验——也就是那些能让贝叶斯计算变得「丝滑」的先验分布家族。到时候我会手把手带你推导几个资产定价里最常用的模型。

记住一句话:贝叶斯不是一种方法,而是一种思维方式。把这种思维内化到你的量化框架里,你会发现很多经典统计解决不了的问题,突然就有了出路。


专注资料整理