backtest_forecast
Run rolling-window backtests on time series data to compute MAE, RMSE, and MAPE, validating forecast accuracy before trusting predictions.
Instructions
backtest_forecast —— 时序组 · 滚动回测(工具 29,v1.2.0 新增)。
time_series_forecast 的可信度自评:滚动窗口回测输出 MAE/RMSE/MAPE, 让预测结论自带"历史表现"背书。前置处理与 forecast 完全同口径 (_prepare_series 五项统一前置),逐窗独立重放以杜绝真值泄漏 (验证窗不含任何由未来观测构造的插值点——design/06 防泄漏节)。
docstring = agent 使用说明书,与 statlab_mcp/docs/design/06_timeseries.md 同步维护。
参数: file_path (str): 本地数据文件(csv/tsv/xlsx/json),仅接受本地路径 date_col (str): 日期列;value_col (str): 数值值列(语义与 time_series_forecast 一致) horizon (int): 每窗验证段长度,1 <= horizon <= 有效样本×50%(E1001) windows (int, 3): 回测窗口数,1..10(auto_arima 每窗一次拟合,防耗时爆炸;E1001) method (str, "auto_arima"): auto_arima / naive / seasonal_naive (两个 naive 基线为封闭公式,用于对照;seasonal_naive 的周期逐窗取 _estimate_period,不可估或 > 训练段长时退化为 naive 并记 period_used_fallback)
门槛链(校验顺序红线 D9): 参数合法 → n>=30(低于报错 E1010)→ n >= horizon*(windows+1) 且 train_min = n - windowshorizon >= max(15, 2period_full_est)(E1010 带调参建议) → n<=100000(E1005 防大表卡顿)→ 逐窗计算。
指标: 每窗口逐点 pred/actual/abs_err + 汇总 MAE/RMSE/MAPE; 真实值含 |actual|<=1e-12 时该窗口 MAPE=null 并注明 zero_note(禁止除零假值)。 明细总量上限 10000 点,超出截断最旧窗并记 truncated=true(汇总永不截断)。
局限声明(固定附于 summary 末尾):回测表现不代表未来;未做外部验证。
示例: backtest_forecast("samples/clean.csv", "date", "score", horizon=3) backtest_forecast("samples/clean.csv", "date", "score", horizon=2, windows=2, method="naive") inline 数据: 本工具支持可选 inline_data 参数(v1.2.0 起):与 file_path 二选一, 支持 records 数组或 {"header": [...], "rows": [[...], ...]} 对象两种形态; 规模上限/类型域/data_source 来源标注见 statlab_mcp/docs/SPEC.md 第 12 节。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | auto_arima | |
| horizon | No | ||
| windows | No | ||
| date_col | No | ||
| file_path | No | ||
| value_col | No | ||
| inline_data | No |