第四节:风险度量基础——VaR、CVaR、波动率聚类与下行风险指标

做REITs投资,说白了就是跟不确定性打交道。你买了一只仓储物流REIT,租金收入看着挺稳,但谁能保证明年不出黑天鹅?我入行头两年,吃过不少亏——有一次持仓的零售REIT因为疫情封控,单日跌幅直接击穿了我所有的风控线。从那以后,我养成了一个习惯:先算风险,再看收益

这一节,咱们就聊聊风险度量的几个核心工具。它们不是教科书里的摆设,而是我每天盯盘时真正依赖的东西。

4.1 VaR:在险价值,你的“最坏情况”底线

VaR(Value at Risk)是最常见的风险指标。它的意思很简单:在给定的置信水平和持有期内,资产组合可能的最大损失

举个例子:你持仓1000万REITs,95%置信水平下的日VaR是20万。这意味着——在正常的市场条件下,你有95%的把握,一天内最多亏20万。反过来,有5%的概率亏损会超过20万。

我个人习惯用参数法计算VaR。假设收益率服从正态分布,公式就是:

VaR = - (μ - z * σ) * P

其中μ是预期收益率,σ是标准差,z是置信水平对应的分位数(95%对应1.645,99%对应2.326),P是组合市值。

但这里有个坑——REITs的收益率分布往往有厚尾特征。什么意思?就是极端损失出现的概率,比正态分布预测的要高。我曾在2020年3月用参数法算VaR,结果实际亏损是VaR预测值的2.3倍。嗯,那次之后我就改用历史模拟法了。

⚠ 避坑指南
我曾经用参数法算一只数据中心REIT的VaR,忽略了它的收益率尖峰厚尾特征。结果市场一波动,VaR直接失效。建议:至少用历史模拟法做交叉验证

4.2 CVaR:条件在险价值,补上VaR的短板

VaR有个致命缺陷:它只告诉你“最坏情况”的边界,但没告诉你一旦突破这个边界,到底会亏多少。CVaR(Conditional VaR)就是来解决这个问题的。

CVaR的定义是:当损失超过VaR时,损失的期望值。说白了,就是“最坏情况下的平均损失”。

举个例子:还是刚才那只REIT,95% VaR是20万。如果那5%的极端情况真的发生了,平均亏损可能是35万——这个35万就是CVaR。

我在做组合优化时,几乎只用CVaR作为目标函数。为什么?因为VaR不满足次可加性(组合的VaR可能大于各资产VaR之和),而CVaR是满足的。这意味着用CVaR做优化,结果更稳健。

💡 实战要点
用CVaR做组合优化时,建议使用蒙特卡洛模拟生成收益率路径。我一般跑10万次模拟,然后取尾部5%的样本计算平均损失。代码实现可以参考:
import numpy as np

def calculate_cvar(returns, confidence=0.95):
    # 假设returns是历史收益率序列
    sorted_returns = np.sort(returns)
    var_index = int((1 - confidence) * len(sorted_returns))
    var = -sorted_returns[var_index]
    cvar = -np.mean(sorted_returns[:var_index])
    return var, cvar

4.3 波动率聚类:风险是会“传染”的

你有没有发现一个现象?市场平静的时候,波动率一直很低;一旦出现大波动,后面往往跟着更大的波动。这就是波动率聚类效应。

REITs市场尤其明显。我记得2022年美联储加息周期启动时,REITs的日波动率从15%直接跳到40%,而且持续了整整三个月。如果你用静态的波动率模型去算VaR,结果会严重低估风险。

处理波动率聚类,我推荐GARCH模型(广义自回归条件异方差模型)。它的核心思想是:今天的波动率,取决于昨天的波动率和昨天的收益率

一个简单的GARCH(1,1)模型长这样:

σ²_t = ω + α * ε²_{t-1} + β * σ²_{t-1}

其中σ²_t是今天的条件方差,ε²_{t-1}是昨天的收益率平方(代表新信息冲击),σ²_{t-1}是昨天的方差(代表记忆效应)。

我习惯用Python的arch库来拟合GARCH模型:

from arch import arch_model

# 假设returns是REITs日收益率序列
model = arch_model(returns, vol='Garch', p=1, q=1)
result = model.fit()
# 获取条件波动率
conditional_vol = result.conditional_volatility
🔧 小技巧
拟合GARCH模型时,记得检查残差是否还存在ARCH效应。如果残差还有波动率聚类,说明模型阶数不够,试试GARCH(2,2)或者EGARCH。

4.4 下行风险指标:只关心“亏钱”的风险

传统波动率有个问题:它把上涨和下跌都当作风险。但作为投资者,你真正在乎的是下跌,而不是上涨。下行风险指标就是专门衡量“亏钱风险”的。

最常用的两个指标是:

  • 下行标准差(Downside Deviation):只计算收益率低于目标值(比如0%)的波动
  • 索提诺比率(Sortino Ratio):类似夏普比率,但分母用下行标准差代替总标准差

公式很简单:

下行标准差 = sqrt( 1/N * Σ min(0, r_i - r_target)² )

索提诺比率 = (组合收益率 - 无风险利率) / 下行标准差

我为什么偏爱索提诺比率?因为REITs的收益率分布往往右偏(偶尔有大涨,但日常波动不大)。用夏普比率会低估它的风险调整后收益,而索提诺比率更真实。

📊 知识框架
下面这张图总结了本节的核心逻辑:从基础风险度量到高级应用。
REITs风险度量知识体系 风险度量基础 VaR(在险价值) CVaR(条件在险价值) 波动率聚类 下行风险指标 参数法 历史模拟法 蒙特卡洛法 尾部期望损失 次可加性 组合优化目标 GARCH模型 EGARCH模型 动态波动率 下行标准差 索提诺比率 最大回撤 核心目标:识别、量化、对冲REITs尾部风险 从静态VaR到动态GARCH,从对称波动到下行风险

4.5 把这些工具串起来用

你可能会问:这么多指标,到底该用哪个?我的建议是分层使用

  1. 日常监控:用VaR(历史模拟法)做快速风险检查,设定预警线
  2. 压力测试:用CVaR评估极端情景下的潜在损失
  3. 动态调整:用GARCH模型预测未来波动率,动态调整VaR参数
  4. 绩效评估:用索提诺比率衡量风险调整后收益,替代夏普比率

我记得有一次,我用GARCH模型预测到某只工业REIT的波动率即将飙升,提前减仓了20%。结果一周后,该REIT因为租户违约事件暴跌8%。那次操作让我深刻体会到:风险度量不是算个数字就完事,而是要形成一套决策闭环

📌 我的工具箱
- 数据源:Wind、Bloomberg REIT指数
- 计算工具:Python(pandas + arch + scipy)
- 回测框架:自建,基于日频数据滚动计算
- 报告频率:每日生成VaR/CVaR报告,每周更新GARCH参数

好了,这一节的内容就到这里。风险度量是REITs投资的地基——地基不稳,后面所有的组合优化、对冲策略都是空中楼阁。下一节,咱们会把这些工具用到实战中,聊聊怎么构建一个真正抗跌的REITs组合。


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