学习路线 05:概率化回测 — 宽客的贝叶斯思维
7步学习路线:从理解为什么点估计不完整,到 Sharpe 的贝叶斯推断,到诚实的不确定性量化。
目标:完成后,你将理解为什么单一回测数字是不完整的,贝叶斯推断如何给你真实 Sharpe 的分布,以及如何在不确定性下做决策。
前置知识:基本统计(均值、方差、Sharpe 比率)和估计有不确定性的概念。
第 1 步:这是什么?
你的回测显示:Sharpe = 1.43。
这个数字实际上告诉你什么?
它告诉你:策略在回测期间的实现 Sharpe 是 1.43。
它没有告诉你:
- 策略的真实 Sharpe(这个永远无法观测)
- 估计中有多少不确定性
- 策略在下一年实现类似表现的可能性
贝叶斯方法将真实 Sharpe θ 视为未知参数。你不是给出一个点估计,而是计算给定数据时 θ 的分布:P(θ | data)。这告诉你不是”θ ≈ 1.43”,而是”θ 很可能在 0.8 到 2.1 之间,概率 95%”。
这是一个更诚实的答案。
第 2 步:为什么这很重要?
不断上演的场景:
策略 A:回测 Sharpe = 1.8,但 95% 可信区间是 [0.3, 3.3]。P(Sharpe > 1) = 72%。
策略 B:回测 Sharpe = 1.2,但 95% 可信区间是 [1.0, 1.4]。P(Sharpe > 1) = 95%。
你会选哪个?
大多数人会选 A——Sharpe 更高。但 B 是更好的风险调整选择:其 Sharpe 更确定,超过 1.0 的概率更高。
没有不确定性量化,你是盲目的。 Sharpe 1.8 但不确定性大的策略不同于 Sharpe 1.8 但不确定性小的——即使点估计相同。
第 3 步:核心机制
贝叶斯方法有三个组成部分:
先验 P(θ):看到数据前你对 θ 的信念。合理的默认是平坦先验(无先验信息),但你可以结合领域知识。例如,如果你知道大多数股票多空策略 Sharpe 在 0.3 到 1.0 之间,你可以使用反映这一点的先验。
似然 P(data | θ):给定 θ 的值,观察到我们收益的概率。对于近似正态收益:
其中 T 是观测数,γ 是超额峰度。
后验 P(θ | data):通过贝叶斯定理:
对于正态先验和正态似然,后验也是正态的,具有更新的均值和方差。
第 4 步:关键公式
后验均值(先验和数据的混合):
后验方差:
后验的关键概率:
第 5 步:实现
import numpy as np
from scipy import stats
def bayesian_sharpe_analysis(returns, mu0=0.0, sigma0=10.0, periods_per_year=252):
"""
Sharpe 比率的贝叶斯分析。
"""
T = len(returns)
mu = np.mean(returns) * periods_per_year
var = np.var(returns, ddof=1) * periods_per_year
obs_sharpe = mu / np.sqrt(var) if var > 0 else 0.0
ret_standardized = (returns - np.mean(returns)) / np.std(returns, ddof=1)
kurtosis = np.mean(ret_standardized**4)
gamma_sq = max(kurtosis - 3, 0)
var_sharpe = (1 + gamma_sq / 2) / T
posterior_var = 1 / (1/sigma0**2 + 1/var_sharpe)
posterior_mean = posterior_var * (mu0/sigma0**2 + obs_sharpe/var_sharpe)
posterior_std = np.sqrt(posterior_var)
prob_positive = 1 - stats.norm.cdf(0, loc=posterior_mean, scale=posterior_std)
prob_gt_1 = 1 - stats.norm.cdf(1.0, loc=posterior_mean, scale=posterior_std)
ci_95 = (posterior_mean - 1.96 * posterior_std,
posterior_mean + 1.96 * posterior_std)
return {
'posterior_mean': posterior_mean,
'posterior_std': posterior_std,
'obs_sharpe': obs_sharpe,
'prob_positive': prob_positive,
'prob_gt_1': prob_gt_1,
'credible_interval_95': ci_95
}
第 6 步:如何解读结果
报告可信区间,不只是点估计。 “Sharpe = 1.43 [0.8, 2.1] 95% CI”是诚实的。“Sharpe = 1.43”不是。
P(Sharpe > 0) 是基准。 P(Sharpe > 0) < 50% 的策略更可能亏钱而不是赚钱。拒绝低于此阈值的策略。
P(Sharpe > 1) 是你的”好”标准。 如果你想要 Sharpe > 1 的策略,P(Sharpe > 1) 应该是你的主要决策指标。P(Sharpe > 1) > 80% 是合理的标准。
第 7 步:常见陷阱 + 在知识体系中的位置
陷阱:有时使用平坦先验。 如果你知道你的策略是股票多空,Sharpe 5.0 是不合理的。在先验中编码这个。
陷阱:忽略峰度。 金融收益有厚尾。正态 Sharpe 分布低估不确定性。总是根据峰度调整。
陷阱:混淆后验与预测。 后验 P(θ | data) 是你对不可观测真实 Sharpe 的信念。后验预测是用于可观测未来 Sharpe 的。它们的方差不同——预测总是更宽。
在知识体系中的位置:
- 当你有有限数据时(先验有帮助)
- 当你想要诚实的不确定性量化时
- 当比较具有不同不确定性特征的策略时
- 基于完整分布(不只是点估计)设置仓位时
贝叶斯思维不替代频率主义方法(PBO、DSR)——它是补充。PBO 告诉你过拟合风险。贝叶斯分析告诉你真实表现的不确定性。它们一起给你更完整的画面。
下一步
准备好下一级了吗?→ 学习路线 06:Sharpe 比率崇拜
想要百科参考卡片?→ 概率化回测(百科词条)