🔵 AUTO-ARIMAX 模型外生变量
配置方式
AUTO-ARIMAX 模型根据每个指标的配置文件(config/indicators.yml)中的 exog 字段来选择外生变量。
各指标使用的外生变量
| 目标指标 | 外生变量 | 说明 |
|---|---|---|
| PCE_Core (核心PCE物价指数) |
Initial_Claims,Yield_10Y2Y |
使用初请失业金和10Y-2Y利差 |
| CPI_Core (核心CPI) |
Initial_Claims,Yield_10Y2Y |
使用初请失业金和10Y-2Y利差 |
| NonFarm_Payrolls (非农就业人数) |
Initial_Claims,Yield_10Y2Y |
使用初请失业金和10Y-2Y利差 |
| Ind_Production (工业产出) |
Yield_10Y2Y |
仅使用10Y-2Y利差 |
| Yield_10Y (10年期国债利率) |
无 | 不使用外生变量 |
| Yield_2Y (2年期国债利率) |
无 | 不使用外生变量 |
| Yield_10Y2Y (利差) |
无 | 不使用外生变量 |
| Initial_Claims (初请失业金) |
无 | 不使用外生变量(使用ARIMA模型) |
外生变量说明
1. Initial_Claims (初请失业金)
- FRED代码:
ICSA - 频率: 周频 (W)
- 用途:
- 作为通胀指标(PCE_Core, CPI_Core)的外生变量
- 作为就业指标(NonFarm_Payrolls)的外生变量
- 反映劳动力市场状况,对通胀和就业有领先指示作用
2. Yield_10Y2Y (10Y-2Y美债利差)
- FRED代码:
T10Y2Y - 频率: 月频 (M)
- 用途:
- 作为通胀指标(PCE_Core, CPI_Core)的外生变量
- 作为就业指标(NonFarm_Payrolls)的外生变量
- 作为工业产出(Ind_Production)的外生变量
- 反映市场对未来经济前景的预期,是重要的经济领先指标
代码位置:
- 配置:
config/indicators.yml或src/macro_config.py - 构建函数:
src/run_pipeline.py中的_build_exog_for_indicator() - 使用:
src/model_auto_arimax.py中的auto_arimax_forecast()
🟢 TabPFN-X 模型外生变量
配置方式
TabPFN-X 模型使用多变量方法,自动使用所有可用的指标作为外生变量(除了目标变量本身)。
可用外生变量列表
TabPFN-X 模型尝试使用以下12个指标作为外生变量:
- Initial_Claims (初请失业金)
- Yield_10Y2Y (10Y-2Y美债利差)
- Yield_10Y (10年期国债利率)
- Yield_2Y (2年期国债利率)
- PCE_Core (核心PCE物价指数)
- CPI_Core (核心CPI)
- NonFarm_Payrolls (非农就业人数)
- Unemployment_Rate (失业率)
- Retail_Sales (零售销售)
- Ind_Production (工业产出)
- Housing_Starts (新屋开工)
- HighYield_Spread (高收益债利差)
各指标实际使用的外生变量
由于 TabPFN-X 会排除目标变量本身,每个指标实际使用的外生变量数量如下:
| 目标指标 | 实际使用的外生变量数量 | 排除的变量 |
|---|---|---|
| PCE_Core | 11个 | 排除 PCE_Core 本身 |
| NonFarm_Payrolls | 11个 | 排除 NonFarm_Payrolls 本身 |
| Ind_Production | 11个 | 排除 Ind_Production 本身 |
| Yield_10Y | 11个 | 排除 Yield_10Y 本身 |
| Yield_2Y | 11个 | 排除 Yield_2Y 本身 |
| Yield_10Y2Y | 11个 | 排除 Yield_10Y2Y 本身 |
外生变量构建逻辑
# 定义可用的外生变量(排除目标变量本身)
available_exog = [
"Initial_Claims", "Yield_10Y2Y", "Yield_10Y", "Yield_2Y",
"PCE_Core", "CPI_Core", "NonFarm_Payrolls", "Unemployment_Rate",
"Retail_Sales", "Ind_Production", "Housing_Starts", "HighYield_Spread"
]
# 移除目标变量
if target_name in available_exog:
available_exog.remove(target_name)
数据对齐和处理
- 频率对齐: 使用
build_mixed_freq_exog()函数将不同频率的数据对齐到目标序列的频率 - 缺失值处理:
- 前向填充 (ffill)
- 后向填充 (bfill)
- 最后用0填充剩余缺失值
- 数据要求: 每个外生变量至少需要10个数据点才会被使用
代码位置:
- 构建函数:
src/run_tabpfn_x_forecast.py中的build_multivariate_exog() - 使用:
src/model_tabpfn.py中的tabpfn_forecast()
📈 外生变量详细说明
| 指标名称 | FRED代码 | 频率 | 数据来源 | 经济含义 | 使用场景 |
|---|---|---|---|---|---|
| Initial_Claims (初请失业金) |
ICSA |
周频 (W) | 美国劳工部 | 反映劳动力市场状况,是就业市场的领先指标 | AUTO-ARIMAX: PCE_Core, CPI_Core, NonFarm_Payrolls TabPFN-X: 所有指标(除自身) |
| Yield_10Y2Y (10Y-2Y美债利差) |
T10Y2Y |
月频 (M) | 美联储 | 反映市场对未来经济前景的预期,利差倒挂(负值)通常预示经济衰退风险 | AUTO-ARIMAX: PCE_Core, CPI_Core, NonFarm_Payrolls, Ind_Production TabPFN-X: 所有指标(除自身) |
| Yield_10Y (10年期国债利率) |
DGS10 |
月频 (M) | 美联储 | 反映长期利率水平,影响投资和消费决策 | AUTO-ARIMAX: 不使用 TabPFN-X: 所有指标(除自身) |
| Yield_2Y (2年期国债利率) |
DGS2 |
月频 (M) | 美联储 | 反映短期利率水平,受货币政策影响较大 | AUTO-ARIMAX: 不使用 TabPFN-X: 所有指标(除自身) |
| PCE_Core (核心PCE物价指数) |
PCEPILFE |
月频 (M) | 美国经济分析局 | 美联储关注的核心通胀指标 | AUTO-ARIMAX: 不使用(作为目标变量) TabPFN-X: 作为其他指标的外生变量 |
| CPI_Core (核心CPI) |
CPILFESL |
月频 (M) | 美国劳工统计局 | 核心消费者物价指数,反映通胀水平 | AUTO-ARIMAX: 不使用 TabPFN-X: 作为其他指标的外生变量 |
| NonFarm_Payrolls (非农就业人数) |
PAYEMS |
月频 (M) | 美国劳工统计局 | 反映就业市场状况,是重要的经济指标 | AUTO-ARIMAX: 不使用(作为目标变量) TabPFN-X: 作为其他指标的外生变量 |
| Unemployment_Rate (失业率) |
UNRATE |
月频 (M) | 美国劳工统计局 | 反映劳动力市场状况 | AUTO-ARIMAX: 不使用 TabPFN-X: 作为其他指标的外生变量 |
| Retail_Sales (零售销售) |
RSAFS |
月频 (M) | 美国人口普查局 | 反映消费者支出状况 | AUTO-ARIMAX: 不使用 TabPFN-X: 作为其他指标的外生变量 |
| Ind_Production (工业产出) |
INDPRO |
月频 (M) | 美联储 | 反映工业生产状况 | AUTO-ARIMAX: 不使用(作为目标变量) TabPFN-X: 作为其他指标的外生变量 |
| Housing_Starts (新屋开工) |
HOUST |
月频 (M) | 美国人口普查局 | 反映房地产市场状况 | AUTO-ARIMAX: 不使用 TabPFN-X: 作为其他指标的外生变量 |
| HighYield_Spread (高收益债利差) |
BAMLH0A0HYM2 |
日频 (D) | 美银美林 | 反映市场风险偏好和信用风险 | AUTO-ARIMAX: 不使用 TabPFN-X: 作为其他指标的外生变量 |
🔄 数据对齐机制
混频对齐
由于不同指标的数据频率不同(日频、周频、月频),系统使用 build_mixed_freq_exog() 函数进行对齐:
- 方法:
method="last"(使用最近值) - 原理: 将高频数据聚合到低频目标序列的频率
- 示例:
- 日频数据 → 月频:使用该月最后一个交易日的值
- 周频数据 → 月频:使用该月最后一周的值
缺失值处理
- 前向填充 (ffill): 用前一个有效值填充
- 后向填充 (bfill): 用后一个有效值填充
- 零填充: 剩余缺失值用0填充
📊 模型对比总结
| 特性 | AUTO-ARIMAX | TabPFN-X |
|---|---|---|
| 外生变量选择 | 根据配置文件,每个指标独立配置 | 自动使用所有可用指标(除目标变量) |
| 外生变量数量 | 0-2个(根据配置) | 最多11个 |
| 配置方式 | 手动配置(config/indicators.yml) |
自动选择 |
| 灵活性 | 需要手动调整配置 | 自动适应 |
| 模型复杂度 | 相对简单 | 更复杂(多变量) |
| 计算成本 | 较低 | 较高 |
💡 使用建议
AUTO-ARIMAX
- 适用场景: 需要明确控制外生变量的情况
- 优势: 模型解释性强,外生变量选择有经济学依据
- 劣势: 需要手动配置,可能遗漏重要变量
TabPFN-X
- 适用场景: 需要充分利用所有可用信息的情况
- 优势: 自动使用所有变量,可能发现意外的关联关系
- 劣势: 模型复杂度高,计算成本大
🔍 查看实际使用的外生变量
在网站仪表盘上,每个预测图表会显示:
- 模型参数: 显示使用的模型类型
- 外生变量: 显示实际使用的外生变量列表(如果超过5个,只显示前5个)
模型参数: TabPFN-X (Multivariate with 11 features)
X: Initial_Claims, Yield_10Y2Y, Yield_10Y, Yield_2Y, CPI_Core, ...等11个变量