跳转到内容

假设检验与 t 统计量

回测报告中的 t 统计量衡量平均收益相对其标准误的倍数。它与夏普比率有直接换算:

t=rˉ−rfse(rˉ)≈SR⋅T.t = \frac{\bar r - r_f}{\mathrm{se}(\bar r)} \approx \mathrm{SR} \cdot \sqrt{T}.

这个换算立刻给出一个冷峻的参照系:3 年日频、SR=1\mathrm{SR}=1 的策略 t≈1.7t \approx 1.7,在 5% 水平下都未通过检验;"年化 15%、夏普 1.2"的曲线要跑满 8 年才谈得上统计显著。反过来,t=2t=2 对应的单年夏普只有约 2/T2/\sqrt{T}——样本越长,同样的 t 值含金量越低。

t≈SRTt \approx \mathrm{SR}\sqrt{T} 假设收益无自相关。日频收益的自相关虽然弱,但月频策略收益、经波动率目标化后的收益常有显著正自相关,此时有效样本量缩水,普通标准误低估、t 值虚高。Newey–West HAC 标准误把滞后协方差计入:

se^NW2=1T(γ^0+2∑l=1Lwl γ^l),wl=1−lL+1.\widehat{\mathrm{se}}_{\mathrm{NW}}^2 = \frac{1}{T}\Big(\hat\gamma_0 + 2\sum_{l=1}^{L} w_l\, \hat\gamma_l\Big), \qquad w_l = 1 - \frac{l}{L+1}.
nw-tstat.py
import numpy as np
from statsmodels.stats.stattools import durbin_watson
from statsmodels.regression.linear_model import OLS
from statsmodels.stats.sandwich_covariance import cov_hac
def nw_tstat(excess_returns: np.ndarray, n_lags: int = 5) -> float:
"""自相关稳健的均值 t 值"""
y = np.asarray(excess_returns)
res = OLS(y - y.mean(), np.ones(len(y))).fit()
se = np.sqrt(cov_hac(res, nlags=n_lags)[0, 0])
return float((y.mean() - 0) / se)

Harvey–Liu–Zhu (2016) 统计了学术界发表过的数百个"显著"因子,指出在如此大规模的搜寻之下,单次检验 t>2t>2 的门槛已毫无意义——按多重检验校正后,新因子的 t 值应超过 3.0 才算初步可信。这与第一卷的 Deflated Sharpe Ratio 是同一件事的两种表述:汇报的最优结果必须为"你尝试过多少次"付费。

  • 回测报告固定给出 t≈SRTt \approx \mathrm{SR}\sqrt{T} 与 Newey–West t 值两个数;
  • 月频或经波动率缩放的收益序列,一律用 HAC 标准误;
  • 对标 Harvey–Liu–Zhu:自己的新因子,t<3t<3 不写进结论。
  • t≈SR⋅Tt \approx \mathrm{SR}\cdot\sqrt{T}:3 年日频、SR=1 的策略 t≈1.7,远不显著
  • Newey–West 标准误处理序列相关
  • 多重检验下 t>2 已不足以作为证据,新因子应过 t>3