主要内容

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

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

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

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

原始数据包括以下代表性股票指数在1993年4月27日至2003年7月14日交易日的2665次每日收盘值观察:

加拿大:TSX综合指数法国:CAC 40德国:DAX日本:日经225英国:富时100美国:标普500
负载Data_GlobalIdx1%导入每日索引关闭

下图显示了各指数的相对价格变动。各指数的初始水平已标准化为统一,以便于比较相对表现,且未明确考虑股息调整。

figure plot(date, ret2price(price2ret(Data))) datetick(“x”)xlabel(“日期”)伊拉贝尔(“索引值”)标题(“相对每日指数收盘”)传说(系列,“位置”“西北”

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

返回=价格2集合(数据);%对数收益T =大小(回报,1);% #的回报(即,历史样本大小)

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

指数=1;%1=加拿大,2=法国,3=德国,4=日本,5=英国,6=美国Figure plot(date (2:end), returns(:,index))“x”)xlabel(“日期”)伊拉贝尔(“返回”)头衔(“每日对数回报”

筛选每个索引的返回值

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

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

图autocorr(返回(:,指数))标题(“退货ACF样本”

然而,平方返回的样本ACF说明了方差的持续性程度,并暗示GARCH建模可能显著地限制了后续尾估计过程中使用的数据。

图autocorr(返回(:,指数)。^ 2)标题(“平方收益的样本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]).

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

$$z\u t=\epsilon\u t/\sigma\u t$$i.i.d.分布式$$t(\nu)$$

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

模型= arima (基于“增大化现实”技术的南,“分布”“t”“方差”,gjr(1,1));nIndices=大小(数据,2);索引% #残差=NaN(T,Nindice);% preallocate存储方差= NaN(T, nIndices);适合=细胞(nIndices, 1);选择= optimoptions (@fmincon,“显示”“关”...“诊断”“关”“算法”“sqp”“托尔康”,1e-7);i=1:nindice拟合{i}=估计(模型,返回(:,i),“显示”“关”“选项”,选项);[残差(:,i),方差(:,i)]=推断(拟合{i},返回(:,i));结束

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

图子地块(2,1,1)图(日期(2:end)、残差(:,索引))日期勾选(“x”)xlabel(“日期”)伊拉贝尔(“剩余的”)标题(过滤后的残差的)子地块(2,1,2)绘图(日期(2:end)、sqrt(方差(:,索引))日期勾选(“x”)xlabel(“日期”)伊拉贝尔(“波动”)标题(“过滤条件标准偏差”

从每个收益序列中过滤出模型残差后,通过相应的条件标准差对残差进行标准化。这些标准化残差表示基础的零均值、单位方差、i.i.d.序列,样本CDF尾部的EVT估计基于该序列。

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

在本节结束时,检查标准化残差和平方标准化残差的ACF。

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

图自动相关(残差(:,索引))标题(“标准化残差的样本ACF”)图autocorr(residuals(:,index).^2)“标准化残差平方的样本ACF”

半参数CDF的估计

给出前一步的标准化i.i.d.残差,用高斯核估计每个指数的经验CDF。这平滑了CDF估计,消除了非平滑样本CDF的阶梯模式。尽管非参数核CDF估计非常适合于分布的内部,其中大部分数据都可以找到,但当应用于上下尾时,它们的性能往往很差。为了更好地估计分布的尾部,将EVT应用于每个尾部的残差。

具体地说,找到上下限阈值,以便为每条尾巴保留10%的残差。然后用最大似然法将每个尾部的极端残差超出相关阈值的数量拟合为参数GPD。这种方法通常被称为超过数点的分布峰值超过阈值方法

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

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

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

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

nPoints=200;CDF每个区域的抽样点% #tailFraction = 0.1;%分配给每个尾部的残差的小数部分尾巴=细胞(nIndices, 1);帕累托尾部对象的单元格数组i=1:nIndices tails{i}=paretotails(残差(:,i),尾分数,1-尾分数,“内核”);结束

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

下面的代码用非适合所基于的数据调用感兴趣的Pareto tail对象的CDF和反CDF方法。具体来说,参考方法可以访问拟合状态,现在可以调用这些方法来选择和分析概率曲线的特定区域,作为一种强大的数据过滤机制。

数字保持在…上网格在…上minProbability=cdf(tails{index},(min(residentials(:,index)));maxProbability=cdf(tails{index},(max(residentials(:,index)));pLowerTail=linspace(minProbability,tailFraction,nPoints);%下尾样本pUpperTail=linspace(1-尾分数,最大概率,nPoints);样品上尾%pInterior=linspace(tailFraction,1-tailFraction,nPoints);%样品内部情节(icdf(反面{指数},pLowerTail) pLowerTail,“红色”“线宽”,2)绘图(icdf(tails{index},pInterior),pInterior,“黑”“线宽”, 2) plot(icdf(tails{index}, pUpperTail), pUpperTail,“蓝色”“线宽”,2)xlabel(标准化的剩余的)伊拉贝尔(“概率”)头衔(“经验提供”)传奇({“帕累托低尾”内核内部平滑的...“帕累托上尾”},“位置”“西北”

评估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(:,index) > Q(2), index) - Q(2));%排序超标图(y,(cdf(tails{index},y+Q(2))-P(2))/P(1))[F,x]=ecdf(y);%经验提供持有在…上楼梯(x、F、,“r”网格)在…上传奇(“拟合广义帕累托CDF”“经验提供”“位置”‘东南’);包含(“超越”)伊拉贝尔(“概率”)头衔(“标准化残差的上尾”

校准t Copula

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

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

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

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

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

另一种方法是先计算样本秩相关矩阵(Kendall’s或Spearman’s),然后通过鲁棒正弦变换将秩相关转换为线性相关。给定这个线性相关矩阵的估计,对数似然函数然后是最大的关于自由度参数单独。这种方法似乎也受到profile log-likelihood方法的启发,但根本不是MLE方法。然而,这种方法不需要矩阵反演,因此在存在接近奇异的相关矩阵时具有数值稳定的优势(见[8]).

最后是Nystrom和Skoglund[6]建议将自由度参数保留为用户指定的模拟输入,从而允许用户主观地推断资产之间的尾部依赖程度。特别是,他们建议相对较低的自由度,介于1和2之间,从而允许更仔细地检查联合极端的可能性is方法适用于极端相互依赖程度至关重要的压力测试。

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

U = 0(大小(残差));i=1:nIndices U(:,i)=cdf(尾{i},残差(:,i));%将边距转换为均匀边距结束[R, DoF] = copulafit“t”U“方法”“近似EML”);%适合联系符

用t Copula模拟全球指数投资组合的回报

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

为此,首先使用copularnd函数可在统计和机器学习工具箱中找到。

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

以下代码段模拟了在22个交易日的一个月期限内对相关标准化指数残差进行的2000次独立随机试验。

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

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

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

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

Y0=返回(结束,:);%抽样前收益Z0 =残差(结束:);%样品前标准化残差V0 =方差(结束:);% presample方差模拟回程=零(地平线、中线、九度线);i = 1: nIndices simulatedReturns (:,:, i) =过滤器(适合{我},Z(:,:我),...“Y0”,Y0(i),“Z0”,Z0(i),“V0”V0 (i));结束

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

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

最后,考虑到每个指数的模拟回报,形成一个由单个指数组成的权重相等的全球指数组合(一个由国家指数组成的全球指数)。由于我们使用的是每天的对数回报,因此风险范围内的累积回报就是每个干预期间的回报之和。还要注意,投资组合的权重在整个风险范围内都是固定的,并且模拟忽略了重新平衡投资组合所需的任何交易成本(每日的再平衡过程假定是自融资的)。

请注意,尽管模拟收益是对数的(连续复合),但投资组合收益序列是通过首先将单个对数收益转换为算术收益(价格变化除以初始价格),然后加权单个算术收益以获得投资组合的算术收益来构建的,最后转换回投资组合对数回报率。对于每日数据和较短的VaR期限,重复转换几乎没有什么区别,但对于较长的时间段,差异可能会很大。

累计回报率=零(nTrials,1);权重=repmat(1/nindice,nindice,1);%等权投资组合i=1:nTrials累计周转率(i)=总和(log(1+(exp(模拟周转率(:,:,i))-1)*权重);结束

总结结果

模拟每个指数的回报,形成全球投资组合,报告最大的收益和损失,以及不同信心水平的VaR,在一个月的风险水平。此外,绘制全球投资组合的实证CDF。

VaR = 100 *分位数(累计收益率,[0.10 0.05 0.01]');disp (' ')fprintf('最大模拟损失:%8.4f%s\n', -100 *分钟(cumulativeReturns),“%”)fprintf(“最大模拟增益:%8.4f%s\n\n”,最大值为100*,“%”)fprintf('模拟90%%变量:%8.4f%s\n'VaR (1),“%”)fprintf('模拟95%%变量:%8.4f%s\n'VaR (2),“%”)fprintf('模拟99%%变量:%8.4f%s\n\n',VaR(3),“%”)图h=cdfplot(累计周转率);h.颜色=“红色”;包含(“对数回报”)伊拉贝尔(“概率”)标题(“模拟一个月全球投资组合回报CDF”
最大模拟损失:14.4218%最大模拟增益:12.4470%模拟90%VaR:-4.7476%模拟95%VaR:-6.3291%模拟99%VaR:-10.6639%

工具书类

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

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

[3]格洛斯滕,L. R., R. Jagannathan和D. E. Runkle。“关于期望值与股票名义超额收益波动的关系”。金融杂志.第48卷,第5期,1993年,1779-1801页。

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

[5]《单变量极值理论,GARCH和风险度量》,预印本,2002年提交。

[6]Nystrom, K.和J. Skoglund。“基于场景的风险管理框架”。预印本,提交2002。

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

[8]马沙尔,R.和A. Zeevi。《超越相关性:金融资产之间的极端联合变动》纽约哥伦比亚大学,2002年。