主要内容

运用极值理论和copula评估市场风险

这个例子展示了如何使用学生t公式和极值理论(EVT),用蒙特卡罗模拟技术对假设的全球股票指数投资组合的市场风险进行建模。该过程首先使用非对称GARCH模型从每个返回序列中提取过滤后的残差,然后使用高斯核估计内部和广义帕累托分布(GPD)估计上下尾部构建每个资产的样本边际累积分布函数(CDF)。然后将Student's t copula拟合到数据中,并用于诱导每个资产的模拟残差之间的相关性。最后,模拟评估假设的全球股票投资组合在一个月内的风险价值(VaR)。

请注意,这是一个相对高级、全面的示例,假设您对EVT和copula有一定的了解。有关广义Pareto分布估计和copula模拟的详细信息,请参阅用广义Pareto分布对尾数据建模用copula模拟相关随机变量在统计和机器学习工具箱™。有关此示例大部分所基于的方法的详细信息,请参见[5][6])。

检查每日收盘的全球股票指数数据

原始数据包括下列代表性股票指数在1993年4月27日至2003年7月14日期间的每日收盘价的2665项观察结果:

加拿大:TSX综合指数(股票代码^GSPTSE)法国:CAC 40(股票代码^FCHI)德国:DAX(股票代码^GDAXI)日本:日经225(股票代码^N225)英国:富时100(股票代码^FTSE)美国:标准普尔500(股票代码^GSPC)
负载Data_GlobalIdx1%导入每日指数收盘

下图显示了每个指数的相对价格变动。每个指标的初始水平已归一化为统一,以便于相对业绩的比较,并且没有明确考虑股息调整。

图plot(日期,ret2price(price2ret(Data)))“x”)包含(“日期”) ylabel (的索引值)标题(“相对每日指数收盘”)传说(系列,“位置”“西北”)

为了准备后续建模,将每个指数的收盘水平转换为每日对数回报(有时称为几何回报或连续复利回报)。

return = price2ret(Data);%对数回报T = size(return,1);返回的% #(即,历史样本大小)

由于整体建模方法的第一步涉及重复应用GARCH过滤和极值理论来表征每个单个股票指数回报序列的分布,因此检查特定国家的细节是有帮助的。您可以将下一行代码更改为集合{1,2,3,4,5,6}中的任何整数,以检查任何索引的详细信息。

Index = 1;1 =加拿大,2 =法国,3 =德国,4 =日本,5 =英国,6 =美国图(日期(2:结束),返回(:,索引))datetick(“x”)包含(“日期”) ylabel (“返回”)标题(“每日对数回报”)

筛选每个索引的返回

用GPD对分布的尾部进行建模要求观测值近似独立且同分布(i.i.d)。然而,大多数财务回报序列表现出一定程度的自相关,更重要的是,异方差。

例如,与所选指数相关联的收益的样本自相关函数(ACF)显示出一些轻微的序列相关性。

图autocorr(返回(:,索引))title(“申报表表格样本”)

然而,平方收益的样本ACF说明了方差的持续程度,并意味着GARCH模型可能会显著地约束后续尾部估计过程中使用的数据。

图autocorr(返回(:,index).^2) title(“回报平方的ACF样本”)

为了产生一系列i.i.d观察值,将一阶自回归模型拟合到每个股票指数收益的条件均值

$$r_t = c + \theta r_{t-1} + \epsilon_t$$

以及条件方差的非对称GARCH模型

$ $ \ασ^ 2 _t = \ kappa + \ \σ^ 2 _ {t - 1} +φ\ \ε^ 2 _ {t - 1} + \ psi (\ epsilon_ {t - 1} < 0] \ε^ 2 _ {t - 1} $ $

一阶自回归模型补偿自相关,GARCH模型补偿异方差。特别是,最后一项通过布尔指示器将不对称(杠杆)纳入方差,如果先前模型残差为负,则取值1,否则取0(参见[3])。

此外,每个指数的标准化残差被建模为标准化的学生t分布,以补偿通常与股票回报相关的肥尾。这是

$ $ z_t = \ epsilon_t / \ sigma_t $ $ i.i.d.分布式t(\ν)$ $ $ $

下面的代码段从每个股票指数的收益中提取过滤后的残差和条件方差。

模型= arima(基于“增大化现实”技术的南,“分布”“t”“方差”gjr (1,1));nIndices = size(Data,2);索引的% #残差= NaN(T, nIndices);%预分配存储方差= NaN(T, nIndices);fit = cell(nIndices,1);选项= optimoptions(@fmincon,“显示”“关闭”“诊断”“关闭”“算法”“sqp”“TolCon”1 e);i = 1:nIndices fit{i} = estimate(model, returns(:,i))“显示”“关闭”“选项”、选择);(残差(:,i)、方差(:,我)]=推断(适合{我},返回(:,我));结束

对于选定的指数,比较从原始收益中过滤出来的模型残差和相应的条件标准差。下图清楚地说明了过滤后的残差中波动性(异方差)的变化。

图subplot(2,1,1) plot(日期(2:end),残差(:,index)) datetick(“x”)包含(“日期”) ylabel (“残留”)标题(过滤后的残差的) subplot(2,1,2) plot(日期(2:结束),sqrt(方差(:,索引)))datetick(“x”)包含(“日期”) ylabel (“波动”)标题(“过滤条件标准差”)

从每个返回序列中过滤模型残差,用相应的条件标准差对残差进行标准化。这些标准化残差代表了潜在的零均值、单位方差和i.i.d序列,样本CDF尾部的EVT估计是基于这些序列的。

残差=残差/ sq(方差);

为了结束本节,检查标准化残差和标准化残差平方的ACFs。

将标准化残差的ACFs与原始收益的相应ACFs进行比较,可以发现标准化残差现在大约是i.d,因此更适合后续的尾部估计。

图自动校正(残差(:,索引))标题(“标准化残差样本ACF”)图自动校正(残差(:,索引).^2)标题(“标准化残差平方的样本ACF”)

估计半参数cdf

给定前一步的标准化,i.i.d残差,用高斯核估计每个指标的经验CDF。这平滑了CDF估计,消除了未平滑样本CDF的阶梯模式。尽管非参数核CDF估计非常适合发现大多数数据的分布的内部,但当应用于上尾和下尾时,它们往往表现不佳。为了更好地估计分布的尾部,对落在每个尾部的残差应用EVT。

具体来说,找到上限和下限,使得残差的10%保留给每个尾部。然后通过最大似然拟合每个尾部的极端残差超过相关阈值的量,以参数GPD。这种方法通常被称为超出范围的分布超过阈值的峰值方法。

给定每个尾部的超标量,优化负对数似然函数来估计GPD的尾部指数(zeta)和尺度(beta)参数。

下面的代码段创建类型为的对象paretotails,每个索引返回序列对应一个这样的对象。这些paretotail对象封装了参数GP下尾、非参数核平滑内部和参数GP上尾的估计,为每个指标构建了一个复合的半参数CDF。

得到的分段分布对象允许在CDF内部进行插值,并在每个尾部进行外推(函数求值)。外推是非常可取的,允许在历史记录之外估计分位数,并且对于风险管理应用程序是无价的。

此外,Pareto tail对象还提供了计算CDF和逆CDF(分位数函数)的方法,以及查询分段分布各段之间边界的累积概率和分位数的方法。

nPoints = 200;在CDF的每个区域中采样点的% #tailFraction = 0.1;分配给每条尾巴的剩余的小数部分tail = cell(nIndices,1);%帕累托尾对象的单元数组{i} = paretotails(residuals(:,i), tailFraction, 1 - tailFraction,“内核”);结束

估计了复合半参数经验CDF的三个不同区域后,用图形连接并显示结果。再次注意,分别以红色和蓝色显示的下尾和上尾区域适用于外推,而核平滑的内部(黑色)适用于内插。

下面的代码使用拟合所基于的数据以外的数据调用感兴趣的Pareto尾对象的CDF和逆CDF方法。具体来说,所引用的方法可以访问拟合状态,现在可以调用它们来选择和分析概率曲线的特定区域,作为强大的数据过滤机制。

图保存网格minProbability = cdf(tail {index}, (min(residuals(:,index)))));maxProbability = cdf(tails{index}, (max(residuals(:,index)))));pLowerTail = linspace(minProbability, tailFraction, nPoints);样本下尾%pUpperTail = linspace(1 - tailFraction, maxProbability, nPoints);样品上尾%pInterior = linspace(tailFraction, 1 - tailFraction, nPoints);样品内径%plot(icdf(tails{index}, pLowerTail), pLowerTail,“红色”“线宽”, 2) plot(icdf(tails{index}, pInterior), pInterior,“黑”“线宽”, 2) plot(icdf(tails{index}, pUpperTail), pUpperTail,“蓝”“线宽”, 2) xlabel(标准化的剩余的) ylabel (“概率”)标题(“经验提供”)({传奇“帕累托下尾”“内核平滑内部”“帕累托上尾”},“位置”“西北”)

评估GPD契合度

虽然前面的图表说明了复合CDF,但更详细地检查GPD拟合是有指导意义的。

GP分布的CDF参数化为

$ $ F (y) = 1 -(1 + \ζy / \β)^{1 / \ζ},y # 62; = 0, \β# 62;0 \ζ# 62;-0.5美元美元

对于超出量(y),尾部指标参数(zeta)和尺度参数(beta)。

为了直观地评估GPD拟合,将残差上尾超出的经验CDF与GPD拟合的CDF一起绘制出来。虽然只使用了10%的标准化残差,但拟合的分布与超标数据非常接近,因此GPD模型似乎是一个很好的选择。

figure [P,Q] = boundary(tails{index});%累积概率和边界分位数y = sort(residuals(residuals(:,index) > Q(2), index) - Q(2));超出排序百分比情节(y) (cdf(反面{指数},y + Q (2)) - P (2)) / P (1)) (F (x) = ecdf (y);经验CDF %持有楼梯(x, F,“r”网格)传奇(“拟合广义Pareto CDF”“经验提供”“位置”“东南”);包含(“超过数”) ylabel (“概率”)标题(“标准化残差上尾”)

校准t Copula

给定标准化残差,现在估计标量自由度参数(DoF)和t耦联的线性相关矩阵(R)copulafit在统计和机器学习工具箱中找到的函数。的copulafit函数允许用户用两种不同的方法估计t联结的参数。

默认方法是在两步过程中执行的形式化最大似然方法。

具体来说,虽然完全对数似然可以直接最大化,但在多维空间中,目标函数的最大值往往出现在一个长、平、窄的山谷中,在高维空间中可能会出现收敛困难。为了克服这些困难,copulafit分两步执行最大似然估计(MLE)。给定一个固定的自由度值,内部步骤最大化相对于线性相关矩阵的对数似然。该条件最大化被置于自由度的一维最大化中,从而最大化所有参数的对数似然。在这个外部步骤中被最大化的函数被称为自由度的配置文件对数似然。

相反,下面的代码段使用了一种替代方法,它近似于大样本量的自由度参数的配置文件对数似然。尽管这种方法通常比MLE快得多,但应该谨慎使用,因为对于小样本或中等样本量,估计和置信限可能不准确。

具体地说,近似是通过对线性相关矩阵的对数似然函数求导得出的,假设自由度是一个固定常数。然后迭代求解相关矩阵的非线性方程。此迭代依次嵌套在另一个优化中以估计自由度。这种方法在精神上类似于上面的剖面对数似然方法,但不是真正的MLE,因为相关矩阵不收敛于给定自由度的条件MLE。然而,对于较大的样本量,估计值通常非常接近MLE(参见[1][7])。

然而,另一种方法通过首先计算样本秩相关矩阵(Kendall's tau或Spearman's rho)来估计线性相关矩阵,然后通过鲁棒正弦变换将秩相关转换为线性相关。给定线性相关矩阵的这个估计,对数似然函数就自由度参数而言是最大的。该方法似乎也受到概要日志似然方法的启发,但根本不是MLE方法。然而,这种方法不需要矩阵反转,因此在存在接近奇异的相关矩阵时具有数值稳定的优点(参见[8])。

最后是奈斯特罗姆和斯科格伦[6]建议保留自由度参数作为用户指定的仿真输入,从而允许用户主观地诱导资产之间的尾部依赖程度。他们特别推荐一个相对较低的自由度,介于1到2之间,这样可以更仔细地检查关节极端的可能性。这种方法对于极端相互依赖程度至关重要的压力测试是有用的。

下面的代码段首先通过上面导出的半参数经验CDF将标准化残差转换为均匀变量,然后将t耦合拟合到转换后的数据中。当均匀变量被每个边缘的经验CDF变换时,校准方法通常被称为典型最大似然(CML)。

U = 0 (size(残差));i = 1: nIndices U (:, i) = cdf(反面{我},残差(:,我));%将边距转换为统一结束[R, DoF] = copulafit()“t”U“方法”“approximateml”);%符合copula

用t Copula模拟全球指数投资组合收益

给定一个t - copula的参数,现在通过首先模拟相应的依赖标准化残差来模拟联合依赖的股票指数回报。

方法模拟相关的均匀变量copularnd在统计和机器学习工具箱中找到的函数。

然后,通过外推到GP尾部并插值到平滑的内部,通过反演各指标的半参数边缘CDF将均匀变量转换为标准化残差。这产生的模拟标准化残差与上述AR(1) + GJR(1,1)滤波过程获得的残差一致。这些残差在时间上是独立的,但在任何时间点上都是相关的。模拟的标准化残差数组的每一列在单独观察时都代表一个独立的单变量随机过程,而每一行都共享由联结引起的秩相关。

下面的代码段模拟了一个月22个交易日内2000个独立的标准化指数残差的随机试验。

s = RandStream.getGlobalStream();reset(s) nTrials = 2000;% #独立随机试验地平线= 22;% VaR预测范围Z = 0(地平线,nTrials, nIndices);%标准化残差数组U =共同的;“t”, R, DoF, horizon * nTrials);% t耦合模拟j = 1: nIndices Z (:,:, j) =重塑(icdf(反面{j}, U (:, j)),地平线,nTrials);结束

使用模拟的标准化残差作为i.i.d输入噪声过程,重新引入通过Econometrics Toolbox™在原始指数回报中观察到的自相关和异方差过滤器函数。

请注意,过滤器接受来自copula的用户指定的标准化干扰,并一次模拟单个索引模型的多条路径,这意味着依次模拟和存储每个索引的所有样本路径。

为了充分利用当前信息,指定必要的样本模型残差、方差和返回,以便每个模拟路径从一个共同的初始状态演变。

Y0 = return (end,:);抽样返回百分比Z0 =残差(end,:);%样本标准化残差V0 = variances(end,:);%样本方差simulatedReturns = 0(地平线,nTrials, nIndices);i = 1: nIndices simulatedReturns (:,:, i) =过滤器(适合{我},Z(:,:我),“Y0”, Y0(我),“Z0”Z0(我),“半”V0 (i));结束

现在重塑模拟返回数组,使每个页面代表多元返回序列的一次试验,而不是对单变量返回序列的多次试验。

simulatedReturns = permute(simulatedReturns, [1 3 2]);

最后,给定每个指数的模拟回报,形成由单个指数组成的等加权全球指数组合(国家指数的全球指数)。由于我们处理的是日对数回报,因此风险范围内的累计回报只是每个中间时期回报的总和。还要注意,投资组合权重在整个风险范围内是固定的,并且模拟忽略了重新平衡投资组合所需的任何交易成本(假设每日重新平衡过程是自融资的)。

请注意,虽然模拟的收益是对数的(连续复利),但是组合收益序列的构造方法是:首先将单个对数收益转换为算术收益(价格变化除以初始价格),然后对单个算术收益进行加权以获得投资组合的算术收益,最后转换回投资组合的对数收益。对于每日数据和较短的VaR视界,重复转换几乎没有什么区别,但对于较长的时间段,差异可能很大。

cumativereturns = 0 (nTrials, 1);权重= repmat(1/nIndices, nIndices, 1);%等加权投资组合i = 1:nTrials culativereturns (i) = sum(log(1 + (exp(simulatedReturns(:,:,i)) - 1) * weights));结束

总结结果

在模拟每个指数的回报并形成全球投资组合后,报告一个月风险范围内的最大收益和损失,以及不同置信度下的VaR。此外,绘制全球投资组合的经验CDF。

VaR = 100 *分位数(cumulative vereturns, [0.10 0.05 0.01]);disp (' ')流(“最大模拟损失:%8.4f%s\n”, -100 *分钟(cumulativeReturns),“%”)流(最大模拟增益:%8.4f%s\n\n, 100 * max (cumulativeReturns),“%”)流(“模拟90% VaR: %8.4f%s\n”VaR (1),“%”)流(“模拟95% VaR: %8.4f%s\n”VaR (2),“%”)流(“模拟99% VaR: %8.4f%s\n\n”VaR (3),“%”)图h = cdfplot(culativereturns);h.Color =“红色”;包含(“对数回归”) ylabel (“概率”)标题(“模拟一个月全球投资组合回报”)
最大模拟损失:14.4228%最大模拟收益:12.3980%模拟90% VaR: -4.6345%模拟95% VaR: -6.3275%模拟99% VaR: -10.6622%

参考文献

[1]Bouye, E., V. Durrleman, A. Nikeghbali, G. Riboulet和Roncalli, T.。金融学copula:阅读指南和一些应用Groupe de Rech③。,Credit Lyonnais, Paris, 2000.

[2]Embrechts, P., A. McNeil和D. Straumann。风险管理中的相关性和依赖性:特性和缺陷。风险管理:风险中的价值和超越.剑桥:剑桥大学出版社,1999,第176-223页。

[3]格洛斯滕,L. R.贾甘纳森和D. E.朗克尔。股票名义超额收益的预期价值与波动性的关系研究。金融杂志.1993年第48卷第5期,第1779—1801页。

[4]A.麦克尼尔和R.弗雷。异方差金融时间序列尾部相关风险测度的估计:一种极值方法。实证金融学杂志.第七卷,2000年,第271-300页。

[5]奈斯特罗姆,K.和J.斯科格伦。单变量极值理论,GARCH和风险度量。预印本,2002年提交。

[6]奈斯特罗姆,K.和J.斯科格伦。“基于场景的风险管理框架”。预印本,2002年提交。

[7]Roncalli, T., A. Durrleman和A. Nikeghbali。“哪个联系词是正确的?”Groupe de Rech③。,Credit Lyonnais, Paris, 2000.

[8]R.马沙尔和A.泽维。“超越相关性:金融资产之间的极端协同运动”。哥伦比亚大学,纽约,2002。