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与失业率在压力情景下的典型传导路径与联动关系,帮助理解变量之间的内在约束。

宏观经济情景变量联动关系图 宏观经济情景变量联动关系 GDP增速(产出) CPI通胀率(物价) 失业率(就业) 信用风险(违约率) 产出缺口推/拉通胀 奥肯定律:产出↓失业↑ 菲利普斯曲线:通胀↔失业 企业利润↓ 居民收入↓ 实际购买力↓ 说明:实线为直接经济关系,虚线为风险传导路径;变量间需满足经济学约束

2.5 变量选取的量化验证框架

在确定情景变量后,需通过统计方法验证其合理性。以下是一个简化的验证流程:

  1. 相关性分析:计算变量与风险指标(如不良贷款率NPL)的Pearson相关系数,筛选|r| > 0.3的变量。
  2. 格兰杰因果检验:确认变量是否在统计意义上“领先”于风险指标变化。
  3. 压力弹性测试:构建VAR模型,模拟变量在极端冲击下的响应路径,检查是否符合经济学直觉。
  4. 情景一致性校验:使用蒙特卡洛模拟生成联合分布,确保变量组合落在合理区间内(如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个季度的滞后,需在情景时间轴上设置合理的“冲击-响应”窗口。
  • 避免过度拟合历史:历史情景的变量取值不应直接复制,需根据当前经济结构(如利率水平、杠杆率)进行适度校准。
  • 避免变量“孤岛”:每个变量都应能通过经济学逻辑与其他变量连接,形成闭环验证。

通过以上步骤,情景分析中的变量选取将从“经验判断”走向“数据驱动+逻辑约束”的规范化流程,为后续压力测试模型提供坚实的数据基础。