3. 参数法VaR:正态分布假设、均值-方差法、参数法计算步骤
参数法(又称方差-协方差法)是VaR计算中最经典、最快速的路径。其核心思想是:假设资产收益率服从某种已知的概率分布,然后利用分布的参数(均值、标准差)直接推导出给定置信水平下的分位数。最常见的假设是正态分布。
3.1 正态分布假设与均值-方差框架
参数法VaR建立在以下两个关键假设之上:
- 收益率正态性:资产或组合的日收益率 \( R \sim N(\mu, \sigma^2) \)。
- 线性映射:组合价值变化与收益率呈线性关系(即 \(\Delta V \approx V_0 \cdot R\))。
在均值-方差框架下,组合的预期收益和风险完全由 \(\mu\) 和 \(\sigma\) 刻画。VaR 即为正态分布左侧尾部的分位数。
关键公式:
绝对VaR(均值非零):\( VaR_{\alpha} = V_0 \cdot (\mu - z_{\alpha} \cdot \sigma) \)
相对VaR(均值归零):\( VaR_{\alpha} = V_0 \cdot (-z_{\alpha} \cdot \sigma) \)
其中 \( z_{\alpha} \) 为标准正态分布在置信水平 \(\alpha\) 下的左侧分位数(如95%对应-1.645,99%对应-2.326)。
绝对VaR(均值非零):\( VaR_{\alpha} = V_0 \cdot (\mu - z_{\alpha} \cdot \sigma) \)
相对VaR(均值归零):\( VaR_{\alpha} = V_0 \cdot (-z_{\alpha} \cdot \sigma) \)
其中 \( z_{\alpha} \) 为标准正态分布在置信水平 \(\alpha\) 下的左侧分位数(如95%对应-1.645,99%对应-2.326)。
实务提示: 在短期(如1天)VaR计算中,\(\mu\) 通常远小于 \(\sigma\),许多机构直接使用相对VaR公式,即假设 \(\mu=0\),以简化计算并避免均值估计误差。
3.2 参数法计算步骤
参数法VaR的计算流程清晰、可重复性强,适合编程实现。以下为标准步骤:
- 数据准备:收集组合内各资产的历史价格序列,计算对数收益率或简单收益率。
- 参数估计:计算收益率序列的样本均值 \(\hat{\mu}\) 和样本标准差 \(\hat{\sigma}\)。
- 组合映射:若为多资产组合,需计算组合的加权收益率均值 \(\mu_p = \mathbf{w}^T \boldsymbol{\mu}\) 和方差 \(\sigma_p^2 = \mathbf{w}^T \boldsymbol{\Sigma} \mathbf{w}\)(\(\boldsymbol{\Sigma}\) 为协方差矩阵)。
- 分位数查询:根据置信水平 \(\alpha\) 查标准正态分布表或调用统计函数获取 \(z_{\alpha}\)。
- VaR计算:代入公式 \( VaR = V_0 \cdot (-\mu_p + z_{\alpha} \cdot \sigma_p) \) 或相对形式。
注意: 步骤2中的协方差矩阵估计对组合VaR精度影响极大。当资产数量较多时,样本协方差矩阵可能不稳定,需考虑使用指数加权移动平均(EWMA)或收缩估计等改进方法。
3.3 参数法VaR计算流程(SVG)
下图展示了从原始数据到最终VaR值的完整参数法计算链路:
3.4 参数法VaR的优缺点对比
| 维度 | 优点 | 缺点 |
|---|---|---|
| 计算速度 | 极快,仅需矩阵运算,适合大规模组合 | — |
| 数据需求 | 仅需历史数据估计参数,无需全分布 | 对协方差矩阵估计精度敏感 |
| 分布假设 | 解析解明确,易于理解 | 正态假设无法捕捉厚尾、偏斜等真实特征 |
| 非线性资产 | — | 不适用于期权等非线性衍生品(需Delta-Gamma近似) |
| 极端风险 | — | 严重低估尾部风险,尤其在市场危机时 |
3.5 参数法VaR的分布假设示意图(SVG)
下图展示了正态分布假设下VaR的几何含义:左侧尾部阴影面积对应损失超过VaR的概率(1-置信水平)。
3.6 代码示例:单资产参数法VaR计算(Python)
以下代码演示了如何使用Python实现单资产的参数法VaR计算:
import numpy as np
from scipy import stats
# 示例数据:某股票日收益率序列
returns = np.array([0.0012, -0.0034, 0.0021, -0.0015, 0.0008,
-0.0023, 0.0018, -0.0009, 0.0032, -0.0011])
# 步骤1:估计参数
mu = np.mean(returns) # 均值
sigma = np.std(returns, ddof=1) # 样本标准差(无偏)
# 步骤2:设定参数
V0 = 1_000_000 # 组合当前价值(100万)
confidence = 0.95 # 置信水平95%
alpha = 1 - confidence # 显著性水平
# 步骤3:查询分位数
z_alpha = stats.norm.ppf(alpha) # 标准正态分布左侧分位数
# 步骤4:计算VaR(相对VaR,假设μ=0)
VaR_relative = V0 * (-z_alpha * sigma)
# 步骤5:计算VaR(绝对VaR,包含均值)
VaR_absolute = V0 * (mu - z_alpha * sigma)
print(f"均值 (μ): {mu:.6f}")
print(f"标准差 (σ): {sigma:.6f}")
print(f"z值 (95%): {z_alpha:.4f}")
print(f"相对VaR (95%): {VaR_relative:.2f} 元")
print(f"绝对VaR (95%): {VaR_absolute:.2f} 元")
运行结果解读: 在95%置信水平下,该组合在下一个交易日内的最大可能损失(相对VaR)约为XX元。绝对VaR由于减去了均值,通常比相对VaR略小(当μ为正时)。实际应用中,建议同时输出两种VaR以作对比。