风险度量指标:方差、标准差、下行风险与VaR

各位同学,今天我们来聊聊风险度量。说实话,我刚入行那会儿,觉得风险就是个数字,算出来就完事了。后来踩过几次坑才明白——选错度量指标,比算错数字更致命。你想想看,一个只看方差的人,和一个盯着VaR的人,他们眼中的风险完全是两码事。

这一节,我会把四个最核心的风险度量指标掰开揉碎讲清楚。它们分别是:方差与标准差、下行风险与半方差、以及在险价值(VaR)。每个指标我都会告诉你:它到底在度量什么、怎么算、以及我实际项目中踩过的坑。

风险度量指标知识体系 风险度量指标 方差 & 标准差 衡量整体波动 下行风险 & 半方差 只关注亏损侧波动 VaR(在险价值) 最大可能损失 核心:不同视角,不同风险画像

1. 方差与标准差:最基础的波动度量

方差,说白了就是衡量收益率「散开」的程度。标准差是它的平方根,单位跟收益率一致,更好理解。我个人习惯用标准差做日常监控,因为数值直观——比如年化标准差15%,意味着收益率大约有68%的概率落在均值±15%的区间内。

计算公式:
方差 σ² = (1/n) * Σ(Rᵢ - μ)²
标准差 σ = √σ²

我在项目中遇到过一个问题:用方差衡量风险时,它把上涨和下跌一视同仁。但实际投资中,客户只在乎亏钱,不在乎多赚。这就是方差的局限性——它是个「双面人」。

我的经验: 标准差适合做初步筛选,比如在资产配置前快速剔除波动过大的标的。但别用它做最终决策,尤其是对冲基金或期权策略——它们的收益分布往往不对称,方差会严重失真。

2. 下行风险与半方差:只盯亏损侧

半方差,就是只计算收益率低于某个目标值(通常是0或无风险利率)的那部分波动。它解决了方差「好坏不分」的问题。你想想看,一个策略年化收益20%,最大回撤只有3%,另一个策略年化也是20%,但回撤30%——方差可能差不多,但半方差会天差地别。

半方差公式:
半方差 = (1/n) * Σ min(Rᵢ - T, 0)²
其中 T 为目标收益率(通常取0)

我曾经帮一家私募做业绩归因,他们用标准差看策略风险,结果一直觉得没问题。后来我换成半方差一算,发现某个子策略的「下行风险」是另一个的3倍。嗯,这就是为什么我说:只看方差,你会错过真正的风险。

注意: 半方差虽然好,但计算时对数据频率敏感。用日频数据算出来的半方差,跟用周频算的,可能差很多。我建议统一用日频,且至少包含500个交易日的数据,结果才稳定。

3. VaR(在险价值):问「最坏能亏多少」

VaR,全称Value at Risk。它回答一个问题:在给定的置信水平下(比如95%),未来一段时间内最大可能损失是多少?举个例子:某组合的日VaR(95%) = 100万,意思是——有95%的把握,明天亏损不会超过100万。

VaR有三种主流计算方法,我一个个说。

3.1 参数法(方差-协方差法)

假设收益率服从正态分布,直接用均值和标准差算。公式很简单:VaR = μ - z·σ,其中z是置信水平对应的分位数(95%对应1.645)。

参数法示例(Python):
import numpy as np
from scipy.stats import norm

# 假设日收益率均值0.05%,标准差1.2%
mu = 0.0005
sigma = 0.012
confidence = 0.95
z = norm.ppf(1 - confidence)  # 注意:左尾

VaR_param = mu - z * sigma
print(f"参数法VaR(95%) = {VaR_param:.4f}")  # 输出约 -0.0192

这个方法快,但有个大坑——它假设收益是正态分布。真实市场哪有那么乖?我见过太多肥尾分布的例子,参数法算出来的VaR严重低估风险。

3.2 历史模拟法

不假设任何分布,直接用过去N天的收益率排序,取第5%分位数(95%置信水平)。

# 假设 returns 是历史收益率数组
returns = np.array([...])  # 你的历史数据
VaR_hist = np.percentile(returns, 5)
print(f"历史模拟VaR(95%) = {VaR_hist:.4f}")

这个方法我比较喜欢,因为它真实反映了市场行为。但要注意:历史会重演吗?不一定。2008年之前的历史数据,根本预测不了2008年的VaR。

3.3 蒙特卡洛模拟法

用随机数生成大量可能的收益率路径,然后取分位数。这个方法最灵活,可以加入各种复杂假设(比如波动率聚集、跳跃等)。

# 蒙特卡洛模拟示意
n_sim = 10000
sim_returns = np.random.normal(mu, sigma, n_sim)
VaR_mc = np.percentile(sim_returns, 5)
print(f"蒙特卡洛VaR(95%) = {VaR_mc:.4f}")
我的建议: 实际工作中,我通常同时跑参数法和历史模拟法。如果两者结果差异超过20%,说明数据分布有问题,需要进一步检查。另外,VaR有个致命缺陷——它不告诉你「超出VaR的部分」有多大。比如VaR(95%)是100万,但剩下的5%可能亏200万,也可能亏2000万。这就是为什么后来有了CVaR(条件VaR)。

4. 三个指标怎么选?一张表说清楚

指标 度量什么 优点 缺点 我常用的场景
标准差 整体波动 计算简单,直观 好坏不分 资产初筛、组合监控
半方差 下行波动 只关注亏损,更贴合风险偏好 对目标值敏感 策略归因、对冲评估
VaR 最大可能损失 直接回答「亏多少」 忽略尾部风险 风控限额、压力测试

最后说一句:没有完美的指标。我习惯把这三个指标放在一起看——标准差告诉我整体波动,半方差告诉我下行风险,VaR告诉我最坏情况。三张图拼起来,才能看清风险的全貌。

避坑指南: 我曾经用VaR给一个期权组合设风控限额,结果市场波动率飙升,VaR瞬间翻倍。后来我才意识到——VaR对波动率变化极其敏感,尤其是期权组合。建议搭配压力测试一起用,别单靠VaR做决策。

好了,这一节的内容就到这里。记住:风险度量不是算一个数字就完事,而是理解数字背后的假设和局限。下一节我们会聊风险归因,到时候你会看到,这些基础指标是怎么被拆解到各个因子上的。


公众号:蓝海资料掘金营,微信deep3321