2. VaR计算方法(上):参数法(方差-协方差法)的原理与计算步骤
参数法(Parametric Method),又称方差-协方差法(Variance-Covariance Method),是计算在险价值(VaR)最经典、最基础的方法。其核心假设是:资产组合的收益率服从多元正态分布。基于这一假设,VaR的计算被简化为对组合标准差和置信水平对应分位数的求解。
适用场景提示: 参数法计算速度快、数据需求少,特别适用于流动性好、历史数据充足、持仓相对分散的大型投资组合(如股票、债券、外汇)。但在市场出现极端波动或资产收益呈现厚尾分布时,其准确性会显著下降。
2.1 核心原理:从正态分布到VaR
参数法的数学基础源于正态分布的分位数性质。若组合收益率 \( R_p \) 服从均值为 \( \mu \)、标准差为 \( \sigma \) 的正态分布,则在给定置信水平 \( c \) 下,VaR 表示的是收益率分布左侧 \( (1-c) \) 分位点对应的损失值。
其通用公式为:
VaR(c) = - ( μ - σ × Z_c ) × V
其中:
- VaR(c):置信水平 \( c \) 下的在险价值(通常取绝对值,表示损失金额)
- μ:组合在持有期内的预期收益率(通常取0,尤其在短期计算中)
- σ:组合收益率在持有期内的标准差
- Z_c:标准正态分布下置信水平 \( c \) 对应的分位数(如95%对应1.645,99%对应2.326)
- V:组合的当前市场价值
关键简化: 在实际业务中,尤其是日频VaR计算,通常假设 μ = 0。此时公式简化为:
VaR(c) = σ × Z_c × V
这一简化使得VaR的计算完全聚焦于组合标准差的估计。
VaR(c) = σ × Z_c × V
这一简化使得VaR的计算完全聚焦于组合标准差的估计。
2.2 计算步骤:从资产到组合的方差-协方差映射
参数法的计算并非直接计算组合收益率的波动率,而是通过资产权重、各资产方差以及资产间协方差来推导组合方差。这是“方差-协方差法”名称的由来。具体分为以下四个步骤:
- 步骤一:构建权重向量 w
确定组合中每项资产的市值权重,形成 \( N \times 1 \) 的列向量。 - 步骤二:估计方差-协方差矩阵 Σ
基于历史收益率数据,计算各资产收益率的方差(对角线)以及两两之间的协方差(非对角线),形成 \( N \times N \) 的对称矩阵。 - 步骤三:计算组合标准差 σ_p
利用矩阵乘法公式:\( \sigma_p = \sqrt{ w^T \Sigma w } \)。 - 步骤四:代入VaR公式
将 \( \sigma_p \) 乘以对应置信水平的分位数 \( Z_c \) 和组合市值 \( V \),得到最终VaR值。
常见误区: 初学者容易直接计算组合历史收益率的简单标准差,而忽略了资产间的相关性结构。参数法的核心优势恰恰在于通过协方差矩阵显式地捕捉了分散化效应。如果组合内资产相关性较低,计算出的组合标准差会显著低于各资产标准差的加权平均。
2.3 参数法计算流程(SVG图)
下图展示了从输入数据到输出VaR的完整计算链路:
2.4 参数法 vs. 历史模拟法 vs. 蒙特卡洛法
为了帮助学员建立全局视角,下表将参数法与另外两种主流VaR计算方法进行对比:
| 对比维度 | 参数法(方差-协方差) | 历史模拟法 | 蒙特卡洛模拟法 |
|---|---|---|---|
| 分布假设 | 正态分布(强假设) | 无(依赖历史数据) | 可自定义(如t分布、跳扩散) |
| 计算速度 | 极快(解析解) | 中等(排序) | 慢(需大量模拟路径) |
| 数据需求 | 低(仅需协方差矩阵) | 高(需完整历史序列) | 中(需参数估计) |
| 尾部风险捕捉 | 弱(低估极端损失) | 较强(依赖历史极端值) | 强(可设计厚尾分布) |
| 适用场景 | 大型组合、日频风控 | 回测、监管压力测试 | 复杂衍生品、路径依赖产品 |
2.5 参数法的核心局限与改进方向
尽管参数法简洁高效,但其正态性假设在金融市场中往往不成立。实际收益率序列常呈现“尖峰厚尾”特征,即极端事件发生的概率远高于正态分布预测值。这会导致参数法系统性低估VaR,在危机时期尤为危险。
常见的改进思路包括:
- 使用t分布或混合分布替代正态分布,以更好地拟合尾部特征。
- 引入指数加权移动平均(EWMA)或GARCH模型估计时变波动率,替代简单历史标准差。
- 结合压力测试,在参数法基础上叠加极端情景假设,弥补尾部风险捕捉不足。
实务建议: 在正式风控报告中,参数法通常作为基准模型使用,同时辅以历史模拟法或蒙特卡洛法进行交叉验证。如果参数法结果与其他方法差异超过20%,应优先排查组合中是否存在非线性风险或极端头寸集中。
2.6 参数法计算示例(Python代码)
以下代码演示了如何使用Python实现一个两资产组合的参数法VaR计算:
import numpy as np
# 假设组合包含两只股票A和B
weights = np.array([0.6, 0.4]) # 权重向量 w
cov_matrix = np.array([[0.04, 0.012], # 方差-协方差矩阵 Σ
[0.012, 0.09]])
portfolio_value = 1_000_000 # 组合市值 V = 100万
# 步骤3:计算组合标准差
portfolio_variance = weights.T @ cov_matrix @ weights
portfolio_std = np.sqrt(portfolio_variance)
# 步骤4:计算VaR(95%置信水平,持有期1天)
z_95 = 1.645
VaR_95 = portfolio_std * z_95 * portfolio_value
print(f"组合标准差: {portfolio_std:.4f}")
print(f"95% VaR (1天): {VaR_95:,.2f} 元")
# 输出示例:
# 组合标准差: 0.1800
# 95% VaR (1天): 296,100.00 元
上述代码清晰地展示了从权重向量、协方差矩阵到最终VaR的完整映射过程。在实际生产环境中,协方差矩阵的估计通常基于滚动窗口的历史数据,并需进行去噪处理(如使用Ledoit-Wolf收缩估计)。