模块由四个相互独立但风格统一的 Python 包组成,每个文件封装一类统计方法并以 __all__ 显式暴露 API:
- timeseries.py:基于可选后端(statsmodels、arch)实现 ADF、Engle-Granger 协整、Granger 因果、GARCH(1,1)、Markov 状态转换、异方差/自相关/VIF 诊断及纯 NumPy 的 bootstrap Sharpe;通过 _require() 在函数体内延迟导入,未安装时抛出带安装提示的 ImportError。
- eventstudy.py:以 frozen dataclass(MarketModelFit、EventOutcome、EventStudyResult)组织结果,支持 market / market_adjusted / mean_adjusted 三种正常收益模型,并通过 Patell 与 BMP 两种标准化工序给出 t/Patell/BMP 三套统计量。
- multipletesting.py:围绕 Bailey-Lopez de Prado 的 PSR/DSR 框架,提供 probabilistic_sharpe_ratio、expected_maximum_sharpe、deflated_sharpe_ratio、Benjamini-Hochberg FDR 控制与组合对称交叉验证(CSCV)的 probability_of_backtest_overfitting,所有 Sharpe 统一约定为 per-observation 而非年化。
- crossvalidation.py:实现 Lopez de Prado 的 purged + embargoed K-fold、walk-forward 与 combinatorial 分割器,核心逻辑集中在 _as_label_spans 与 _apply_purge_and_embargo 两个向量化辅助中,并由 detect_boundary_leakage 作为断言型审计工具。
依赖方向单向:本模块仅依赖 numpy、pandas、scipy 与可选的 statsmodels/arch,不反向被 quantlib 内其他子模块引用,是上层策略/回测流程的底层统计库。