2、情景分析基础:概念、历史与假设情景及宏观经济变量选取
情景分析是压力测试的核心前置环节,其本质是通过构建一组内在一致、逻辑自洽的未来经济状态,评估资产组合或金融机构在这些状态下的风险暴露与韧性。与单一变量敏感性分析不同,情景分析强调多变量联动与非线性冲击,能够更真实地反映极端市场环境下的风险传导路径。
2.1 情景分析的核心概念
情景分析(Scenario Analysis)并非预测未来,而是回答“如果……那么……”的问题。其关键要素包括:
- 情景定义:明确冲击的来源、幅度、持续时间和传导机制。
- 变量联动:确保宏观经济变量(如GDP、CPI、失业率)之间的变动关系符合经济学逻辑。
- 时间维度:区分即期冲击与渐进式演变,通常覆盖1-3年的预测窗口。
- 概率权重:虽然压力情景通常为低概率事件,但需明确其发生概率或至少进行排序。
实践要点: 情景分析的价值不在于“猜中未来”,而在于提前暴露脆弱点,为资本规划与风险缓释提供决策依据。一个好的情景应当具备“可解释性”与“可回溯性”。
2.2 历史情景与假设情景
在压力测试实践中,情景来源主要分为两类:历史情景与假设情景。两者在构建逻辑、适用场景与局限性上存在显著差异。
| 对比维度 | 历史情景 | 假设情景 |
|---|---|---|
| 构建基础 | 基于已发生的真实危机事件(如2008年全球金融危机、2020年新冠疫情) | 基于专家判断、前瞻性风险识别或监管要求(如“滞胀”、“地缘冲突升级”) |
| 变量取值 | 直接提取危机期间的实际数据序列 | 通过模型模拟或专家打分设定变量路径 |
| 优势 | 真实性强、易于沟通、监管接受度高 | 灵活性强、可覆盖未发生过的风险组合 |
| 局限性 | 无法反映结构性变化(如利率环境、监管框架已变) | 主观性较强、一致性验证难度大 |
| 典型应用 | CCAR(美联储压力测试)中的“严重不利情景” | 内部资本充足评估程序(ICAAP)中的“定制化情景” |
行业实践: 多数大型银行采用“历史情景+假设情景”的组合策略。例如,以2008年危机为基准,叠加当前特有的风险因子(如高通胀、供应链断裂),形成“历史修正情景”,既保留真实感,又增强前瞻性。
2.3 宏观经济情景变量的选取
宏观经济变量是情景分析的“骨架”。变量选取的质量直接决定压力测试结果的可靠性。核心变量通常包括GDP增速、CPI通胀率与失业率,三者构成“宏观经济三驾马车”。
2.3.1 核心变量选取原则
- 相关性原则:变量必须与风险敞口(如信用风险、市场风险)存在显著统计关联。
- 可测性原则:变量应具备可靠的历史数据与可量化的预测路径。
- 联动性原则:变量之间需满足经济学约束(如奥肯定律、菲利普斯曲线)。
- 敏感性原则:变量在压力情景下应有足够的波动幅度,能够触发风险迁移。
2.3.2 三大核心变量详解
| 变量 | 经济含义 | 压力情景下的典型变动 | 对风险敞口的影响路径 |
|---|---|---|---|
| GDP增速 | 衡量经济总体产出与增长动能 | 由正转负,深度衰退(如-2%至-5%) | 企业利润下降→违约率上升→信用风险恶化 |
| CPI通胀率 | 反映物价水平与货币购买力 | 高通胀(>5%)或通缩(<0%) | 高通胀侵蚀实际收入→消费萎缩→贷款质量承压;通缩加重债务负担 |
| 失业率 | 反映劳动力市场紧张程度 | 快速攀升(如从4%升至10%以上) | 居民收入下降→个人贷款违约率上升→零售与住房市场风险暴露 |
常见误区: 仅选取单一变量(如仅看GDP)构建情景,会严重低估风险联动效应。例如,高通胀+高失业率(滞胀)对银行资产质量的冲击远大于单纯的经济衰退。变量选取必须形成“组合拳”。
2.4 情景变量联动关系示意图
下图展示了GDP、CPI与失业率在压力情景下的典型传导路径与联动关系,帮助理解变量之间的内在约束。
2.5 变量选取的量化验证框架
在确定情景变量后,需通过统计方法验证其合理性。以下是一个简化的验证流程:
- 相关性分析:计算变量与风险指标(如不良贷款率NPL)的Pearson相关系数,筛选|r| > 0.3的变量。
- 格兰杰因果检验:确认变量是否在统计意义上“领先”于风险指标变化。
- 压力弹性测试:构建VAR模型,模拟变量在极端冲击下的响应路径,检查是否符合经济学直觉。
- 情景一致性校验:使用蒙特卡洛模拟生成联合分布,确保变量组合落在合理区间内(如GDP与失业率满足奥肯定律)。
代码示例: 使用Python进行变量相关性快速筛查
import pandas as pd
import numpy as np
# 假设df包含GDP、CPI、失业率与NPL的历史数据
df = pd.read_csv('macro_risk_data.csv')
corr_matrix = df[['GDP_growth', 'CPI', 'unemployment', 'NPL']].corr()
# 筛选与NPL相关性较高的变量
high_corr_vars = corr_matrix['NPL'][abs(corr_matrix['NPL']) > 0.3].index.tolist()
print(f"与NPL高度相关的变量: {high_corr_vars}")
# 输出相关性矩阵
print(corr_matrix)
2.6 情景变量选取的常见避坑指南
- 避免变量冗余:如同时选取“工业增加值”与“GDP增速”,两者高度共线,会导致模型不稳定。优先选择综合性更强的变量。
- 避免忽略滞后效应:宏观经济变量对风险指标的影响通常存在1-4个季度的滞后,需在情景时间轴上设置合理的“冲击-响应”窗口。
- 避免过度拟合历史:历史情景的变量取值不应直接复制,需根据当前经济结构(如利率水平、杠杆率)进行适度校准。
- 避免变量“孤岛”:每个变量都应能通过经济学逻辑与其他变量连接,形成闭环验证。
通过以上步骤,情景分析中的变量选取将从“经验判断”走向“数据驱动+逻辑约束”的规范化流程,为后续压力测试模型提供坚实的数据基础。