假设检验:P值与显著性
假设检验帮助你从噪声中区分真实模式。如果原假设为真,P值告诉你数据有多令人惊讶。
核心思想
假设你观察到某个交易策略在过去一年产生了 15% 的收益。这是真正有效的策略,还是仅仅是运气?假设检验为回答这个问题提供了一个严格的框架。
这个想法很简单:我们假设一个原假设 ——“没有异常事情发生”这一基准立场。然后我们问:如果 为真,我们实际观察到的数据有多令人惊讶?如果数据在 下非常令人惊讶,我们就拒绝 而支持备择假设 。
原假设与备择假设
在交易策略的背景下,一个很自然的原假设是策略的均值收益为零(任何观察到的收益只是噪声)。备择假设是均值收益大于零,即策略有真正的正期望收益:
这是一个单侧检验,因为备择假设只关心一个方向。两侧检验(如检验某个系数是否等于特定值,而非大于或小于)的备择假设为 。
检验统计量
在 下,我们知道样本均值的抽样分布。如果样本均值为 ,单样本 t 检验的检验统计量为:
其中 是 下的假设均值, 是样本标准差, 是样本量。
如果 为真,这个 统计量服从自由度为 的 t 分布。当 为假时, 统计量倾向于更大(朝向备择假设的方向)。
P 值
P值是在原假设为真的条件下,观察到至少与我们实际观察到的数据一样极端的数据的概率:
小的 P 值意味着数据在 下不太可能——这是反对原假设的证据。大的 P 值意味着数据与 一致——没有反对原假设的证据。
对于我们的单侧检验,P值为:
其中 是自由度为 的 t 分布随机变量。
显著性水平与决策阈值
显著性水平 是我们在看到数据之前设置的阈值。如果 ,我们拒绝 。最常见的选择是 ,这意味着我们愿意在5%的时间里拒绝一个真实的原假设(犯第一类错误)。
的选择涉及权衡。较小的 (如0.01)使拒绝 更难,减少假阳性但增加假阴性(第二类错误)的机会——未能检测到真实效应。较大的 (如0.10)使拒绝更容易,增加功效但也增加假阳性率。
第一类错误与第二类错误
| 拒绝 | 无法拒绝 | |
|---|---|---|
| 为真 | 第一类错误(假阳性) | 正确 |
| 为假 | 正确 | 第二类错误(假阴性) |
检验的功效是当 为假时正确拒绝 的概率——检测到真实效应的概率。更多数据会增加功效。更大的效应量也会增加功效。
单样本和双样本 t 检验
单样本 t 检验检验样本均值是否与假设值不同。在金融中,这可以检验股票的日均收益率是否显著不同于零。
双样本 t 检验比较两个独立样本的均值。例如,策略A的均值收益是否显著不同于策略B的均值收益?
import numpy as np
from scipy import stats
np.random.seed(42)
n = 252
asset_a_returns = np.random.normal(0.0008, 0.015, n) # 均值0.08%,波动率1.5%
asset_b_returns = np.random.normal(0.0003, 0.012, n) # 均值0.03%,波动率1.2%
# 单样本 t 检验:资产A的均值是否显著不同于零?
t_stat_a, p_value_a = stats.ttest_1samp(asset_a_returns, 0)
print(f"资产A均值=0的单样本 t 检验:")
print(f" t 统计量: {t_stat_a:.4f}")
print(f" p 值: {p_value_a:.4f}")
print(f" 样本均值: {np.mean(asset_a_returns):.6f}")
print()
# 双样本 t 检验:资产A和B的均值是否显著不同?
t_stat_ab, p_value_ab = stats.ttest_ind(asset_a_returns, asset_b_returns)
print(f"双样本 t 检验:资产A均值 = 资产B均值:")
print(f" t 统计量: {t_stat_ab:.4f}")
print(f" p 值: {p_value_ab:.4f}")
print(f" A均值: {np.mean(asset_a_returns):.6f}, B均值: {np.mean(asset_b_returns):.6f}")
提示词
用 numpy 和 scipy.stats 做假设检验:模拟两资产收益,分别用 ttest_1samp 检验 A 均值是否为零,用 ttest_ind 比较 A 和 B 差异。
如果单样本检验的 p 值低于0.05,我们将在5%显著性水平下拒绝原假设——即资产A的均值收益为零。
P 值不能告诉你的事
美国统计协会(ASA)2016年关于 p 值的声明(Wasserstein and Lazar, 2016)强调了常见的误解。p 值不能告诉你:
- 给定数据后, 为真的概率。那需要贝叶斯推理——计算 ,而不是 。
- 效应的大小。具有统计显著性的结果在经济上可能微不足道,如果效应量很小的话。
- 发现的实际重要性。统计显著性和实际重要性是两码事。
- 结果是否可复现。统计功效不足的研究中的小 p 值通常不可复现。
这就是为什么量化研究人员应该始终报告效应量、置信区间(我们下一篇文章会介绍)以及发现的背景——而不只是”p < 0.05”。
参考文献
Moore, D. S. and McCabe, G. P. Introduction to the Practice of Statistics, Chapters 6–7. Freeman. Wasserstein, R. L. and Lazar, N. A. “The ASA’s Statement on p-Values: Context, Process, and Purpose.” The American Statistician, 2016.