ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

分位数回归与时变参数下的溢出指数:TVP-QVAR-DY模型详解

分位数回归与时变参数下的溢出指数:TVP-QVAR-DY模型详解 做金融风险度量的人手头大概率都有一份自己的溢出指数代码。从最早的Diebold-Yilmaz静态溢出指数到滚动窗口DY、再到TVP-VAR-DY每一步都是在解决同一个问题风险在市场之间传导的强度到底怎么测才准。最近我把分位数回归、时变参数VAR和溢出指数三个框架揉到了一起做了一版TVP-Quantile-VAR-DY简称TVP-QVAR-DY模型。这篇文章就把这版模型的完整设计思路、数学设定、代码骨架和实操中容易踩的坑全部摊开讲一遍适合正在做风险溢出、金融传染或资产配置研究的分析师、研究生和量化从业者参考。先说结论TVP-QVAR-DY不是简单地给QVAR套一个时变外壳而是在每个分位数水平上构建一条完整的时变溢出路径从而把“极端行情下的传导行为”和“正常行情下的传导行为”彻底分开度量。做完这版模型后最直观的感受是均值层面的溢出指数在风险事件期间往往已经钝化而5%分位数层面的溢出指数能干净利落地捕捉到传导强度的突变。1. 溢出指数为什么值得重做一遍从DY到TVP-QVAR-DY1.1 原始DY思路的三个痛点经典的DY溢出指数本质上是拿VAR模型的预测误差方差分解说事。给定一个N变量的VAR系统预测H步某个变量预测误差的方差里有多少比例是由其他变量的冲击来解释的这个比例就是溢出。算出行列式矩阵后就能定义总溢出指数、定向溢出、净溢出、净成对溢出等指标。这个逻辑在2010年前后非常流行因为它把一个抽象的系统性风险概念变成了一个可以天天画图跟踪的数值序列。但实际用过DY模型的人都知道原始版本有三个很难绕开的痛点。第一个痛点是均值中心。DY指数衡量的是平均意义上的传导强度而金融风险真正的杀伤力往往集中在尾部。平时市场间相关系数可能是0.4风险事件爆发那一两周可能直接跳到0.8甚至0.9。均值层面的溢出指数对这种非线性跳变的敏感度不够等它显示出信号时行情往往已经走完一大段了。第二个痛点是时变参数的处理方式。经典DY最常见的做法是滚动窗口估计窗口开短了估计结果噪声大曲线抖得像心电图窗口开长了参数反应慢等模型识别出结构突变时事件早就结束了。这个窗口长度选择问题本质上是一个偏差-方差权衡但没有一个窗口长度能同时满足“平滑”和“及时”。第三个痛点是方差分解对变量排序敏感。虽然Pesaran-Shin的广义预测误差方差分解能弱化排序影响但广义分解对协方差矩阵的估计质量要求很高一旦残差协方差矩阵估计不稳定整个溢出矩阵都会跟着抖动。滚动窗口下这个抖动会被进一步放大。这三个痛点正好对应TVP-QVAR-DY三个核心设计方向用分位数替代均值、用时变参数替代滚动窗口、用更稳健的方差分解方案处理协方差矩阵。1.2 分位数视角为什么平均溢出掩盖了风险传导分位数视角的价值用一个生活场景就能说清楚。平时上班地铁里人再多大家也是有序排队这时候测量“每平方米多少人”能反映乘坐体验。但一旦发生紧急情况所有人同时涌向出口人群的行为模式和平时完全不同。平均值描述不了这种差异你得去测量“拥挤条件下”的行为参数。金融市场也是一样。正常行情下股票、债券、商品之间的联动关系可能很温和但在流动性枯竭、恐慌性抛售的环境下投资者会抛售一切能抛售的资产跨市场传导的强度和方向都会发生剧变。如果我们只估计一个均值VAR得到的是一个混合了各种市场状态的平均系数这个系数既不代表平时状态也不代表危机状态两头都不讨好。分位数回归的思路是不再估计条件均值E(y|x)而是直接估计条件分位数Q_tau(y|x)。tau0.05意味着我们在研究“当系统处于5%最差状态时”变量之间的关系。系数随tau变化等于把整个传导机制展开成一个关于风险状态的函数这样就能回答“在不同风险强度下谁向谁传导了多少风险”的问题。金融传染研究里有一个长期困惑为什么相关性在危机期间会突然上升一种解释是危机期间的传导渠道被激活了另一种解释是数据生成过程本身就是分位数依赖的。QVAR框架天然适合区分这两种解释。因为它在每个分位数下单独估计系数不强制假设线性关系在不同风险状态下保持一致。1.3 时变参数与滚动窗口的取舍滚动窗口之所以被广泛使用是因为它实现简单逻辑直观。但它的代价是样本利用率低。窗口长度如果是200天那么每次估计只用了200个观测值而且最后面的估计值只由窗口内最后一段数据决定窗口外的信息全部丢弃。此外窗口长度还直接决定了方差分解的稳定性窗口越短协方差矩阵估计噪声越大。TVP-VAR的替代方案是用状态空间模型刻画参数演化让系数本身服从一个随机游走过程。这样一来全部样本都参与了估计但最近观测值对当前状态的修正力度更大天然实现了一种“指数加权”的效果。这套方法在Koop和Korobilis 2014年的论文里有非常详细的讨论他们用遗忘因子代替复杂的MCMC采样大幅降低了计算成本。把遗忘因子的逻辑单独说一句它相当于给更久以前的数据一个递减的权重。系数更新方程B_t B_{t-1} w_t里卡尔曼滤波会基于预测误差实时修正状态。遗忘因子kappa控制了历史信息衰减的速度。kappa越接近1模型越平滑kappa越小模型对近期变化越敏感。实操中常用kappa10.96到0.99控制系数kappa20.96到0.99控制波动率。这个设定不需要额外调参但效果上能匹配滚动窗口甚至更优的适应性。TVP-QVAR-DY的做法是把分位数回归的思想放进TVP框架在每一个分位数tau下都建立一套时变参数的VAR模型让系数B_t(tau)随时间和分位数两个维度同时变化。这样既保留了分位数对尾部风险的捕捉能力又获得了时变参数对结构突变的适应能力同时绕开了滚动窗口的样本浪费问题。2. TVP-QVAR-DY的模型设定与核心公式2.1 分位数TVP-VAR的参数结构TVP-QVAR-DY的分位数TVP-VAR可以理解为对标准TVP-VAR的一个条件分位数扩展。标准TVP-VAR写成y_t c_t B_1t y_{t-1} ... B_pt y_{t-p} u_t, u_t ~ N(0, Sigma_t)而分位数版本研究的是y_t在给定历史信息F_{t-1}下的条件分位数Q_tau(y_t | F_{t-1}) c_tau,t B_1,tau,t y_{t-1} ... B_p,tau,t y_{t-p}对于不同的tau例如0.05、0.5、0.95系数矩阵B_i,tau,t是不同的。这个设定背后的含义很明确处在5%下尾风险状态时滞后变量对当前变量的影响系数和正常状态下是完全不同的。参数演化沿用状态空间框架。系数向量按随机游走更新B_tau,t B_tau,t-1 w_tau,t其中w_tau,t是状态扰动协方差矩阵由遗忘因子递归估计。这是我在实际操作中采用的简化方案。更学术的做法是给每个分位数水平分别设定状态方程甚至允许参数在分位数之间相关但那种设定计算量太大对解释结果的边际贡献有限。我建议先用逐分位数独立的时变结构等基础结论稳定后再考虑跨分位数联动。估计时在每个时间点t目标函数是分位数检查函数之和min Σ_t ρ_tau(u_tau,t)这里ρ_tau是分位数回归损失函数u_tau,t是条件分位数残差。实际估计流程可以借助迭代重加权最小二乘IRLS与卡尔曼滤波结合完成因为分位数损失函数本质上是一个加权绝对损失可以转化为一系列带权重的线性回归问题。2.2 从脉冲响应到分位数溢出指数模型估计完之后得到的是分位数水平下的时变系数矩阵B_tau,t和时变协方差矩阵Sigma_tau,t。接下来要和DY指数框架衔接核心工具是广义预测误差方差分解GFEVD。先说普通VAR里的预测误差方差分解在做什么。对VAR系统做H步预测预测误差可以分解为各变量结构性冲击的累积贡献。如果第j个变量的冲击解释了第i个变量预测误差方差的很大比例就说明j对i有较强的溢出。广义分解相比Cholesky分解的优点是不依赖变量排序适合金融市场这种没有天然递归顺序的场景。在TVP-QVAR-DY中每个时间点t和每个分位数tau下都基于对应的系数和协方差计算出H步广义预测误差方差分解矩阵。标准化后的分解元素记为θ_tau,ij(H)含义是分位数tau下j对i的预测误差方差贡献比例。据此定义总溢出指数TCI_tau(H) (Σ_{i≠j} θ_tau,ij(H)) / n × 100这个值衡量分位数tau下整个系统内部互相传导的风险占总预测误差方差的比例。数值越高系统越脆弱越容易“一荣俱荣、一损俱损”。定向溢出分为两个方向。变量i接收来自所有其他变量的溢出FROM_tau,i(H) Σ_{j≠i} θ_tau,ij(H)变量i向所有其他变量传导的溢出TO_tau,i(H) Σ_{j≠i} θ_tau,ji(H)净溢出就是两者之差NET_tau,i(H) TO_tau,i(H) - FROM_tau,i(H)NET大于0说明该变量是风险净输出方小于0说明是风险净接收方。另外还有净成对溢出用来量化任意两个变量之间谁对谁的影响更强。这些指标的数学形式几乎和经典DY一致区别在于所有的θ都换成特定分位数tau下的估计值。2.3 三版模型对比TVP-VAR-DY、QVAR-DY、TVP-QVAR-DY放到同一个表里看差异会更清楚对比维度TVP-VAR-DYQVAR-DYTVP-QVAR-DY参数随时间变化是否是捕捉尾部风险否是是估计方式状态空间/卡尔曼滤波分位数回归分位数状态空间样本利用率全样本全样本全样本计算复杂度中低高风险状态区分度单一状态按分位数区分按分位数区分且动态演化适用场景常规溢出监测极端风险截面分析极端风险的动态监测与预警QVAR-DY的问题在于它是静态的只能告诉你“在5%分位数下系统平均的溢出结构长什么样”但回答不了“这种尾部溢出结构本身是否在随时间变化”。TVP-VAR-DY的问题在于它只有均值视角在市场状态切换时均值的平滑作用会把结构突变抹平一部分。TVP-QVAR-DY把两条技术线叠加付出的代价是计算量上升。以10个变量为例如果同时计算5个分位数相当于跑5套TVP-VAR估计加上每次递推时的分位数目标函数更新耗时大约是TVP-VAR-DY的5到8倍。这个成本在日频数据下完全可接受在分钟级高频数据下就需要用并行计算或者压缩分位数网格。3. 实操复现数据准备、参数选择与代码骨架3.1 数据与变量怎么选变量选择直接决定溢出指数的经济含义。我在做B值较高的资产配置研究时通常覆盖股票宽基指数、国债期货、黄金、原油、美元指数和数字货币资产六类。大类资产的好处是它们之间的传导机制相对清晰分析结果容易被解释缺点是数量偏少溢出网络比较稀疏。如果还想做更细的行业层面研究可以把变量扩展到申万一级行业指数或者跨市场的股票指数组合。变量数量控制在8到12个之间比较合适超过15个后参数维度和协方差矩阵估计难度会快速上升卡尔曼滤波的稳定性也会变差。数据频率方面日频收益率是最稳妥的选择。周频数据虽然能减少噪声但样本量直接打五折对尾部估计影响很大。如果样本区间足够长比如超过15年日频数据就能稳定支撑5%分位数下的估计。数据清洗时注意三点第一不同资产交易日历要对齐缺数可以直接剔除整行但剔除比例过高时要做数据插补第二价格序列做对数一阶差分得到收益率不直接用价格水平第三各资产收益率数量级差异较大时我在进入模型前先做标准化处理否则协方差矩阵会出现明显的量纲主导问题。3.2 分位数、滞后阶和预测步长怎么定分位数网格的选择是TVP-QVAR-DY里最影响解读的一个开关。我的默认配置是tau取0.05、0.50、0.95三个点。0.05作为下尾风险的载体反映市场急剧下跌时的传导0.50作为中位数近似常规状态0.95作为上尾用于观察极端上涨行情中的风险行为。如果想做压力测试可以再加0.01和0.99但要注意极端分位数下有效样本量会大幅下降估计结果对异常值更敏感。滞后阶p的选择严格做法是根据信息准则对每个分位数分别选择。但实际操作中日频金融溢出研究很少需要超过2阶滞后因为市场有效性已经消化了大部分历史信息二阶以上的滞后项往往只是微弱的日历效应。我建议先用BIC粗筛一遍如果BIC在p1和p2之间摇摆直接取较小的p值。滞后越大TVP-VAR的状态空间维度越高卡尔曼滤波的误差累积风险也越大。预测步长H的设置会对溢出指数的水平产生系统性影响。H越大预测误差分解中来自自身冲击的比例越高溢出指数整体越低。方向上H10天时总溢出指数对短期冲击最敏感H20天和H30天得到的曲线更平滑但幅度更低。我会在正式报告中同时报告H10和H20两套结果用H敏感性检验结论的稳健性。3.3 一个可跑的R代码骨架下面给出一个聚焦“模型怎么落地”的R代码骨架。这里不追求写出完整的工程化函数而是把TVP-QVAR-DY的核心计算流程展示清楚方便你按自己的数据替换。核心流程分五步准备数据、估计分位数TVP参数、递推时变系数、做GFEVD方差分解、汇总成溢出指数。# 1. 准备数据xts对象列为各资产的日对数收益率 library(quantreg) library(xts) # 假设你的数据为 ret_mat每列一个资产行为交易日 # 生成滞后项 get_lag - function(x, p) { n - nrow(x) x_lag - x[(p1):n, , drop FALSE] for (i in 1:p) { x_lag - cbind(x_lag, lag(x, i)[(p1):n, ]) } colnames(x_lag) - c(paste0(y_, 1:ncol(x)), paste0(lag, rep(1:p, each ncol(x)), _, 1:ncol(x))) data.frame(x_lag) } # 2. 对给定的 tau用分位数回归给出初始系数 # 这一步相当于估计一个静态 QVAR 作为递推起点 run_qvar_init - function(y, p, tau) { df - get_lag(y, p) y_var - df[, 1:ncol(y)] x_var - df[, (ncol(y)1):ncol(df)] coef_mat - matrix(0, nrow ncol(y) * p 1, ncol ncol(y)) for (j in 1:ncol(y)) { fit - rq(y_var[, j] ~ ., data data.frame(x_var), tau tau) coef_mat[, j] - coef(fit) } coef_mat } # 3. 卡尔曼递推用预置遗忘因子更新时变系数 # 这里是一个简化版实现生产版本还需要加入协方差更新和扰动项约束 kalman_tvp_step - function(B_prev, P_prev, y_t, x_t, tau, kappa1, kappa2) { # 预测 B_pred - B_prev P_pred - P_prev / kappa1 # 分位数残差 resid - y_t - x_t %*% B_pred # 用分位数损失函数的加权最小二乘思想近似更新 w - ifelse(resid 0, tau, 1 - tau) H - t(x_t) %*% (x_t * w) diag(1e-6, ncol(x_t)) K - P_pred %*% H %*% solve(H %*% P_pred %*% H 1) B_next - B_pred K %*% resid P_next - (diag(nrow(P_pred)) - K %*% t(x_t) %*% x_t) %*% P_pred list(B B_next, P P_next) } # 4. 滚动计算每个交易日的时变系数 # 再基于时变系数和残差协方差用 Pescaran-Shin 广义方差分解计算溢出矩阵 # 最后汇总成总溢出、定向溢出、净溢出这段代码中run_qvar_init用quantreg包的rq函数拿到初始静态分位数回归系数kalman_tvp_step模拟了带遗忘因子的系数更新过程。注意这里为了清晰把真实状态空间的卡尔曼滤波简化为了一次加权更新。如果你想做更严格的实现可以用KFAS包构造状态空间模型把分位数损失通过逐点权重近似为高斯观测误差再复用KFAS里成熟的滤波和平滑算法。3.4 参数调优和运行经验实际跑模型时有几个参数设置直接决定结果质量。遗忘因子kappa1和kappa2的取值务必区别对待。kappa1控制系数矩阵的平滑程度取值偏大如0.99时时变系数曲线非常光滑但可能在风险事件爆发后反应滞后取0.94时系数的日内波动很大曲线毛刺多很难解读。我的经验是先按kappa10.97、kappa20.99跑一遍基线再观察总溢出指数的波动幅度。如果曲线太嘈杂就把kappa1提高到0.98、0.99如果曲线对已知风险事件完全没有反应就往下调到0.95、0.96。协方差矩阵的正则化值得单独提醒。金融资产的残差协方差矩阵在尾部状态下经常近奇异直接做广义逆数值不稳定。我在实操中会给协方差矩阵加一个Ledoit-Wolf收缩目标或者直接加一个很小的对角扰动项确保GFEVD计算时有稳定输出。不处理这一步你会偶尔碰到溢出指数大于100%的荒谬结果。分位数网格的并行化是省时间的关键。R里直接用一个for循环跑5个分位数可能得等很久但每个tau之间的估计是独立的用foreach或者furrr包做并行后时间几乎线性下降。我在6核笔记本上跑10变量、tau五个分位、样本2000天大概需要20到30分钟属于可以接受的范畴。4. 实证结果怎么看读图的四个层次4.1 总溢出指数压力期的尖峰与分位数分层TVP-QVAR-DY产出的第一张核心图表是不同分位数下的总溢出指数时序图。图上通常会有三条线0.05分位数、0.50分位数、0.95分位数。看图的顺序第一时间看三条线之间的分层关系。如果0.05分位数的总溢出指数系统性地高于0.50分位数且剪不断的原因是模型偏离这就说明系统在尾部状态下确实存在“风险放大机制”。也就是说当市场处于极端下跌状态时各资产之间的传导强度会大幅提升这与危机时期的“流动性挤兑”“保证金抛售”“风险平价策略去杠杆”等现象吻合。相反如果三条线几乎重合那说明传导机制在不同风险状态下差别不大分位数扩展的意义就要打折扣。再看时变形状。总溢出指数曲线在风险事件期间出现陡峭尖峰是模型的经典响应模式。我在实际操作中发现0.05分位数曲线上的尖峰通常比0.50分位数曲线提前出现几天这是一个很有价值的预警信息。疲劳期曲线的“堤坝”效应不太容易描述但大体上在压力期结束后尾部溢出指数回落的速度明显慢于均值溢出指数说明市场间的风险联动存在记忆性。4.2 定向溢出和净溢出谁在吸收风险、谁在输出风险总溢出指数告诉你系统整体有多危险但决策者更关心具体哪个市场是风险出口、哪个市场是风险入口。这就轮到定向溢出和净溢出登场。对于每个资产i定向接收溢出FROM反映它受到外部冲击影响的大小。想象一个资产平时很独立但在风险事件期间FROM显著上升说明它更容易被“传染”。定向输出TO则度量该资产对外部的影响力。净溢出NET TO - FROM是最直观的指标正值为净输出方负值为净接收方。风险事件期间净溢出的方向变化往往比水平变化更重要。一个在正常时期是净接收方的资产可能在压力期突然变成净输出方这种角色切换就是系统性风险的来源之一。我在分析中会用净溢出矩阵做一个简单排序把每个时间段里排名前三的净输出方和净接收方列出来观察它们的身份是否稳定。要注意的是净溢出接近零不一定代表这个资产不重要它可能是“中转站”的角色既大量接收又大量输出。这类节点在传递风险时起到桥梁作用只盯着净溢出会低估它的影响。解决方法是同时看FROM和TO的绝对水平或者在净成对溢出网络里关注高连接度的节点。4.3 净成对溢出与网络化表达单看汇总指标会丢掉成对信息。两个资产之间即使净溢出接近零它们之间的双向传导也可能非常剧烈。净成对溢出指数NPC_tau,ij(H) TO_tau,ij - FROM_tau,ij描述了资产i对j的净影响方向。画网络图时我常用igraph把净成对溢出矩阵可视化为加权有向网络。节点大小用净溢出或总度表示边的粗细和颜色表示成对溢出强度方向箭头标明传导方向。这样一眼就能看到系统里谁处在中心位置谁是边缘节点。不同分位数下的网络结构差异是TVP-QVAR-DY最有意思的发现。我在多个数据集上都观察到同一个模式在0.50分位数下网络是相对分散和均衡的各资产之间的溢出强度差异不大但在0.05分位数下网络会明显向少数核心资产收敛出现“核心-边缘”结构大部分资产的溢出路径都指向同一个或两个中心节点。这说明危机状态下市场不再是多元分散的风险源而是由稀缺流动性驱动的单极传导。这个信息对组合管理和压力测试非常关键因为分散化的效果在极端尾部下会大打折扣。5. 常见问题、陷阱与稳健性检查5.1 极端分位数下的稀疏性问题分位数越极端人为数据越稀疏影响最大的场景是0.01和0.99分位数。在日频数据里0.01分位数相当于每100个交易日才有一个观测落在该区间以下如果样本只有1500天那么真正处于极端尾部的观测只有15个左右这时候估计出的分位数系数标准差极大结果几乎不可用。解决思路有两个方向。一是把分位数网格限制在0.05到0.95之间这是多数研究的默认区间样本量足以支撑稳定估计。二是增加样本长度和频率把日频换成日度加上更长的历史区间或者直接使用更高频数据。但高频数据会引入微观结构噪声未必划算。我在报告中会同时展示0.05、0.10、0.50三个分位数并对0.05结果做块状自助法验证其稳定性。5.2 卡尔曼滤波发散怎么处理TVP-QVAR-DY最常遇到的工程问题就是滤波发散。现象是时变系数在某一天突然跳到离谱水平然后后续所有结果都被污染。常见原因包括初始状态协方差设置过大、遗忘因子过小导致状态更新过于激进、某一资产在短时间内出现极端异常收益率GG。我处理发散问题的标准流程是三步。第一步检查输入数据剔除明显的数据错误点价格跳空、小数点错位、停牌填充错误第二步压缩初始状态协方差P_0的规模让系数在前期不要剧烈波动通常把P_0设为单位阵的0.1倍就够第三步为系数更新设置一个约束区间当更新后的系数超出先验合理范围比如超过±3时将其回缩到边界。这个过程不是严格贝叶斯但在工程层面非常有效。5.3 溢出指数的因果性误区必须强调TVP-QVAR-DY输出的“溢出”是一个预测误差方差分解概念不是因果关系。某个变量对另一个变量的预测误差方差的贡献比例高等价于说它在统计上携带了更多关于未来的信息但不能直接理解为“它导致了另一个变量的变化”。这个区别在报告解读时特别容易失控。我看到不少研究把净溢出为正的资产直接称为“风险源头”这其实过度演绎了。正确的表述应该是“该资产对系统未来风险传导的预测贡献较大”。如果读者非要往因果方向解读至少要做额外的Granger因果检验和处理外生事件研究但即使那样因果识别依然面临遗漏变量和内生性问题。所以在使用这类指标时把定位放在“监测和预警”上更稳妥。5.4 稳健性检验清单模型做完以后稳健性检验不是可选项而是必选项。我的标准清单包括以下四项。第一分位数网格调整。把0.05换成0.10、0.01观察总溢出指数曲线形状和系统重要性排名是否发生重大变化。如果曲线形态随分位数剧烈变化说明模型对尾部设定过于敏感结论需要谨慎对待。第二预测步长H调整。分别用H5、10、20天重新计算检验溢出指数的水平差异和趋势是否一致。注意H改变会带来水平的系统性平移这是正常现象关键是趋势和尖峰位置要一致。第三遗忘因子敏感性测试。把kappa1设置成0.95、0.97、0.99三档观察关键结论是否依赖参数选择。若某资产在0.95时是净输出方在0.99时变成净接收方说明该结果不具备稳定性应剔除报告。第四子样本区间分析。把全样本切成两段或三段分别估计避免单个极端时期主导整体结果。这一步能有效识别出“结论是否只是某一个历史片段的产物”。做完这四个稳健性检查后再对外输出分析结论我心里通常就比较有底。如果不做检查直接看主模型结果很容易被某一次参数设定中的偶然现象误导。一点个人体会。TVP-QVAR-DY这版模型最值钱的地方不是它用了多前沿的数学方法而是它把三个原本割裂的工具拼成了完整链路让风险传导的量化在时间和风险状态两个维度上都能落地。实际操作中最需要花时间的是数据质量和参数标定而不是公式本身这个道理对任何模型都一样。你手上如果有一份多资产的时间序列不妨按上面的步骤先跑一个0.05和0.50的对比看看大概率会看到尾部分位数的总溢出指数在风险事件期间发出了更早更清晰的信号。
返回列表