1. 课程导入
欢迎进入《宏观经济多步预测与情景建模实战》。在开始动手之前,我们需要先建立一张清晰的“认知地图”:这门课究竟要解决什么问题、用到哪些核心概念、整体框架如何搭建、以及从数据到决策的实战路线怎么走。本章不涉及复杂建模,而是帮助你把后续30章的知识点串成一条可执行的主线。
一、学习目标:从“看懂宏观”到“推演未来”
宏观经济分析常被误解为“解读新闻”。但真正的多步预测与情景建模,目标不是复述过去,而是在不确定性中给出可比较、可追溯、可更新的未来路径。学完本课程,你应当能够独立完成以下任务:
- 目标1:构建多步预测思维。理解单期预测与多步预测的本质差异,掌握递归预测、直接预测与路径依赖的基本逻辑。
- 目标2:掌握核心宏观变量体系。熟悉GDP、CPI、PPI、M2、社融、利率、汇率、失业率等指标的经济含义、发布节奏与相互传导关系。
- 目标3:搭建情景建模框架。能够把“基准情景—乐观情景—悲观情景”转化为可计算的参数假设,并输出多步路径。
- 目标4:完成端到端实战。从数据获取、清洗、特征工程、模型选择、滚动回测到情景推演与报告输出,形成完整闭环。
- 目标5:识别并规避常见误区。包括数据窥探、过度拟合、忽略结构断点、混淆相关与因果等。
提示:本课程强调“可复现”。每一章的代码、参数与数据口径都会尽量保留,方便你在自己的环境中重跑并替换为最新数据。
二、核心概念:多步预测与情景建模的四个关键词
在进入框架之前,先锁定四个高频概念。它们会在后续章节反复出现,也是理解全课的基础。
| 核心概念 | 含义 | 在本课程中的典型应用 |
|---|---|---|
| 多步预测(Multi-step Forecasting) | 一次性或递归地预测未来多个时间点,而非仅预测下一期 | 预测未来8个季度的GDP增速路径 |
| 情景建模(Scenario Modeling) | 在不同外生假设下生成多条未来路径,用于比较与决策 | 油价上涨、政策收紧、出口下滑三种情景下的通胀路径 |
| 传导机制(Transmission Mechanism) | 变量之间的因果与滞后关系,决定冲击如何扩散 | 利率→投资→就业→消费→通胀的链条 |
| 滚动回测(Rolling Backtest) | 用历史数据模拟“当时可得到的信息”下的预测表现 | 评估模型在2015—2024年间的多步预测误差 |
这四个概念构成一个闭环:多步预测是任务,传导机制是逻辑,情景建模是扩展,滚动回测是检验。缺少任何一环,预测都容易沦为“拍脑袋”。
三、整体框架:从数据到决策的五层结构
本课程的整体框架可以概括为五层:数据层、特征层、模型层、情景层与决策层。它们不是简单的线性流程,而是带有反馈回路的迭代系统。下图展示了这一结构及其关键输入输出关系。
需要强调的是,五层框架并非一次性瀑布流程。决策层的反馈会反向影响特征选择与模型设定,而滚动回测则贯穿始终。后续章节会逐层展开,并在第25章之后进入综合实战。
四、实战路线图:30章如何一步步走完
为了让你对学习节奏有预期,这里给出一个简化的路线图。课程整体分为四个阶段:
- 基础阶段(第1—6章):建立宏观变量体系、数据获取与清洗、描述性分析与可视化。
- 建模阶段(第7—16章):从单变量ARIMA到多变量VAR、状态空间模型、机器学习与混合模型。
- 情景阶段(第17—24章):情景设定、冲击传导、参数校准、多路径生成与比较。
- 实战阶段(第25—30章):端到端案例、滚动回测、报告输出与常见误区复盘。
实战路线图的核心原则:每一章都产出一个可复用的模块。第3章的数据管道、第9章的VAR模板、第18章的情景参数表,最终会在第28章的综合案例中被组装成一个完整系统。
五、案例场景与常见误区
假设你在一家研究机构,需要预测未来8个季度的CPI与GDP增速,并给出三种情景。一个典型的错误做法是:直接用历史平均增速外推,或者只跑一个ARIMA模型就下结论。更合理的做法是:先明确传导链条(如M2领先CPI约2—4个季度),再设定外生情景(如油价、汇率、财政力度),最后用多模型集成输出路径区间。
三个高频误区:
- 误区一:用未来信息回测。在滚动回测中使用了当时尚未发布的数据,导致误差被严重低估。
- 误区二:把情景当预测。情景不是概率预测,而是“如果……那么……”的条件推演,必须明确假设边界。
- 误区三:忽略结构断点。疫情、政策转向、外部冲击都会改变参数关系,需定期检验并更新模型。
为了帮助你建立可复现的工作习惯,下面给出一个最小化的环境配置示例。后续章节的代码将默认在此基础上运行。
# 建议环境(Python 3.10+)
pip install pandas numpy statsmodels scikit-learn matplotlib seaborn
pip install pmdarima arch linearmodels
# 数据目录约定
# data/raw/ 原始数据
# data/processed/ 清洗后数据
# outputs/figures/ 图表输出
# outputs/reports/ 情景报告