3. 先验分布的选择:共轭先验(Beta-Binomial, Normal-Normal)及其在收益率建模中的应用
做贝叶斯统计,第一步就是选先验。很多人觉得这步很玄学,其实不然。我个人习惯把先验看作「你愿意在数据进来之前,先押多少注」。押对了,模型收敛快;押错了,数据也能把你拉回来。但有一种情况特别爽——你选的先验和数据分布是「共轭」的。什么意思?说白了就是:后验分布和先验分布是同一个家族,只是参数变了。
嗯,这节我们就来聊聊两个最经典的共轭对:Beta-Binomial 和 Normal-Normal。它们在收益率建模中非常实用。
3.1 共轭先验:为什么它让贝叶斯计算变得优雅?
先回忆一下贝叶斯公式:
P(θ|D) ∝ P(D|θ) × P(θ)
后验 ∝ 似然 × 先验
如果先验和似然「搭配」得好,后验就能写成闭式解。你不需要跑 MCMC,不需要调采样器,直接拿公式算参数就行。我在做高频交易策略回测时,经常需要快速更新参数,这时候共轭先验就是救命稻草。
3.2 Beta-Binomial 模型:估计收益率为正的概率
先看一个实际场景。你想知道某只股票明天上涨的概率。你手头有过去 20 个交易日的涨跌数据:涨了 12 天,跌了 8 天。怎么估计这个概率?
用频率学派的方法,你会说 p = 12/20 = 0.6。但问题是,如果只有 5 天数据,4 天上涨,你还会信 p = 0.8 吗?
贝叶斯的方法是这样的:
- 似然: Binomial(n, p),n 次独立伯努利试验,成功次数 k
- 先验: Beta(α, β),α 和 β 可以理解为「伪计数」
- 后验: Beta(α + k, β + n - k)
就这么简单。后验的 α 和 β 就是先验参数加上数据中的成功和失败次数。
举个例子。你设先验 Beta(2, 2),表示你事先认为上涨概率在 0.5 附近,但不太确定。然后观察到 12 涨 8 跌:
后验 = Beta(2 + 12, 2 + 8) = Beta(14, 10)
后验均值 = 14 / (14 + 10) ≈ 0.583
你看,后验均值 0.583 比频率派的 0.6 稍微保守了一点,因为先验拉了一下。如果数据量变成 200 天、120 涨 80 跌:
后验 = Beta(2 + 120, 2 + 80) = Beta(122, 82)
后验均值 = 122 / (122 + 82) ≈ 0.598
这时候后验均值几乎等于频率派估计。数据量大了,先验的影响就微乎其微了。
3.3 Normal-Normal 模型:估计收益率均值
再来一个更常用的场景。你想估计某只股票的年化收益率均值 μ。假设收益率近似服从正态分布,方差 σ² 已知(或者用样本方差代替)。
模型设定:
- 似然: x_i ~ Normal(μ, σ²),i = 1, ..., n
- 先验: μ ~ Normal(μ₀, τ₀²)
- 后验: μ | x ~ Normal(μ_n, τ_n²)
后验参数的更新公式:
τ_n² = 1 / (1/τ₀² + n/σ²)
μ_n = τ_n² × (μ₀/τ₀² + (Σx_i)/σ²)
这个公式看着有点复杂,但它的含义很直观:后验均值是先验均值和样本均值的加权平均,权重取决于各自的精度(方差的倒数)。
我记得有一次做因子归因分析,需要估计某个风格因子的预期收益。样本只有 24 个月的数据,样本均值是 0.8%。但我从历史文献中知道,这类因子的长期均值大约在 0.3% 左右,标准差 0.5%。
我设先验 μ₀ = 0.3%,τ₀ = 0.5%。样本标准差 σ = 1.2%,n = 24。代入公式:
τ_n² = 1 / (1/0.005² + 24/0.012²)
= 1 / (40000 + 166667)
≈ 0.00000484
τ_n ≈ 0.22%
μ_n = 0.00000484 × (0.003/0.005² + 24×0.008/0.012²)
= 0.00000484 × (120 + 13333)
≈ 0.0651 = 6.51%
嗯,后验均值 6.51% 介于先验均值 0.3% 和样本均值 0.8% 之间,但更靠近样本均值,因为 24 个月的数据精度已经比较高了。
3.4 共轭先验在收益率建模中的实战框架
把上面两个模型结合起来,可以搭建一个完整的收益率分析框架。下面这张图展示了核心逻辑:
这个框架的核心思想是:根据你的分析目标,选择对应的共轭对。想估计概率?用 Beta-Binomial。想估计均值?用 Normal-Normal。两者都只需要简单的代数更新,不需要数值计算。
3.5 实战中的注意事项
共轭先验虽然方便,但也不是万能的。我总结了几条经验:
- 先验参数要有意义。 别随便设 α=0.5, β=0.5 这种奇怪的数。想想它对应的「虚拟样本量」是多少,是否符合你的先验知识。
- 注意方差估计的不确定性。 Normal-Normal 模型假设 σ² 已知,这在实践中很少成立。我建议要么用稳健标准误,要么对 σ² 也设一个共轭先验(Normal-Inverse-Gamma)。
- 共轭先验不等于好先验。 它只是计算方便。如果你的先验知识不能用共轭分布表达(比如有界约束、多峰分布),别硬套。用 MCMC 或者变分推断也行。
- 做敏感性分析。 我每次做贝叶斯分析,都会试几组不同的先验参数,看看后验对先验有多敏感。如果后验结果随先验变化很大,说明数据信息不足,需要谨慎解读。
好了,共轭先验就聊到这里。你想想看,有了这两个工具,很多收益率建模的问题都可以快速得到贝叶斯解。下一节我们会讨论如何用这些后验分布做预测和决策——那才是真正有意思的部分。
公众号:蓝海资料掘金营,微信deep3321