乐趣区

关于数据挖掘:R语言风险价值ARIMAGARCHDeltanormal法滚动估计VaRValue-at-Risk附代码数据

全文链接:http://tecdat.cn/?p=24492

最近咱们被客户要求撰写对于危险价值的钻研报告,包含一些图形和统计输入。

此剖析的目标是构建一个过程,以在给定时变波动性的状况下正确预计危险价值。危险价值被宽泛用于掂量金融机构的市场危险。咱们的工夫序列数据包含 1258 天的股票收益

介绍

为了解释每日收益率方差的一小部分,咱们应用 Box-Jenkins 办法来拟合自回归综合挪动均匀 (ARIMA) 模型,并测试带下划线的假如。稍后,当咱们寻找代替计划、最佳拟合散布模式时,咱们会查看收益率的正态性。咱们应用狭义自回归异方差 (GARCH) 办法预计残差的条件方差,并将其与 delta-normal 办法进行比拟。

数据

出于建模过程的目标,咱们每天收集了 5 年(2013 年 2 月至 2018 年 2 月)的花旗公司股票(共 1259 个察看样本)。

 

# 加载库
library(tidyverse)


# 加载数据

read.csv('stock.csv', header = T)



# 每只股票一栏


plot(y = stok$C , geo = 'line')

红线示意此特定工夫范畴内的均匀收盘价。

非安稳过程具备随工夫变动的均值、方差和协方差。应用非安稳工夫序列数据会导致预测不牢靠。安稳过程是均值回归的,即它在具备恒定方差的恒定均值左近稳定。在咱们的例子中,平稳性是指安稳工夫序列满足三个条件的弱平稳性:

为了解决这个问题,咱们次要应用差分法。一阶差分能够形容为

对于平稳性变换,咱们更偏向于计算简略的日收益,示意如下

ret = diff(stoks$C) / socs$C[-legth]
 
plot(x = 1:length, y = res)

为了验证收益率的平稳性,咱们应用了 Dickey-Fuller 测验,其中零假如示意非安稳工夫序列。


点击题目查阅往期内容

Python 计算股票投资组合的危险价值(VaR)

左右滑动查看更多

01

02

03

04

adf.test(ret)

小的 P 值 (<0.01) 表明有足够的证据回绝原假如,因而工夫序列被认为是安稳的。

Box-Jenkins 办法

对于工夫序列剖析,Box-Jenkins 办法利用 ARIMA 模型来找到代表生成工夫序列的随机过程的工夫序列模型的最佳拟合。该办法应用三阶段建模办法:a) 辨认,b) 预计,c) 诊断查看。

辨认

要应用 Box-Jenkins 办法,咱们必须确保工夫序列是安稳的。在咱们的例子中,咱们应用咱们在前一部分中曾经查看过平稳性的股票的收益率。此外,基于自相干函数 (ACF) 和偏自相干函数 (PACF),能够确定 ARIMA 模型的 p、d 和 q 阶。辨认模型的另一种办法是 Akaike 信息准则 (AICc)。AIC 预计每个模型绝对于其余每个模型的品质。

其中

  • ∑u^2= 残差平方和
  • T = 察看次数
  • k = 模型参数的数量 (p + q + 1)

很显著,当模型中退出额定的滞后参数时,残差总和会缩小,但可能会呈现过拟合的问题。AIC 解决过拟合和欠拟合的危险。将抉择 AIC 最低的模型。

auto.arima(rets)

能够通过下面的过程察看到咱们计算了各种 ARIMA 模型的 AIC,并且咱们推断出适合的模型是 二阶自回归 (AR(2))。

预计

为了预计参数的系数,咱们应用最大似然。应用 ARIMA(2, 0, 0) 作为抉择模型,后果如下:

model

因而,该过程能够形容为:

rt=0.0437∗rt−1−0.0542∗rt−2+ϵt 其中 ϵt 是白噪声

诊断查看

该程序包含察看残差图及其 ACF & PACF 图,并查看 Ljung-Box 测试后果。如果模型残差的 ACF 和 PACF 没有显示显着滞后,则所选模型是适合的。

ggtsdisplay(plot)

ACF 和 PACF 图很类似,自相干仿佛为零。右下角图示意残差与正态分布 N(0, σ2σ2) 相比的直方图。

为了进一步测验残差不相干的假如,咱们执行 Ljung-Box 测验。

QLB 统计量不对称地遵循具备 mpq 自由度的 X2 散布。零假如是指 H0:ρ1=ρ2=⋯=ρm=0

Box.test(resiuas)

咱们不能回绝原假如,因而残差的过程体现得像白噪声,所以没有可能被建模。

GARCH 实现

只管残差的 ACF 和 PACF 没有显着滞后,但残差的工夫序列图显示出一些集群稳定。重要的是要记住,ARIMA 是一种对数据进行线性建模的办法,并且预测宽度放弃不变,因为该模型不会反映最近的变动或蕴含新信息。为了对波动性进行建模,咱们应用自回归条件异方差 (ARCH) 模型。ARCH 是工夫序列数据的统计模型,它将以后误差项的方差形容为先前时间段误差项理论大小的函数。

咱们假如感兴趣的工夫序列 rtrt 被合成为两局部,可预测和不可预测局部,

其中 It−1 是工夫 t−1 的信息集,并且  ϵt 是不可预测的局部。

不可预测的成分,能够示意为以下模式的 GARCH 过程:

其中 zt 是一个均值为零且方差等于 1 的独立同散布随机变量序列。ϵt 的条件方差是 σt,它是工夫 t−1 信息集的时变函数。

下一步是定义误差项合成的第二局部,即条件方差 σt。对于这样的工作,咱们能够应用 GARCH(1, 1) 模型,示意为:

当残差平方相干时,GARCH 过程无效。ACF 和 PACF 图分明地表显著着相关性。

另一种测验平方残差别方差性的办法是对 a1 和 β1 参数进行显着性测验。

# 模型定义
ugarchpec(varin , 
                        mean.model 
 
fit(sec = model.spec ')

a1 和 β1 都显着不同于零,因而假如残差随工夫变动的稳定率是正当的。

σt−12 项的间断替换,GARCH 方程能够写为:

当咱们用优化给出的系数预计替换时,咱们失去以下等式:

鉴于 0<β1<1,随着滞后的减少,残差平方的影响减小。

危险价值

危险价值(VaR)是一种基于以后头寸的上行危险的统计量度。它预计在失常的市场条件下,一组投资在设定的时间段内可能会有多少损失。

VaR 统计具备三个组成部分:a) 时间段,b) 置信水平,c) 损失金额(或损失百分比)。对于 95% 的置信水平,咱们能够说最坏的每日损失不会超过 VaR 预计。如果咱们应用历史数据,咱们能够通过取 5% 的分位数值来预计 VaR。对于咱们的数据,这个预计是:

quante(res , 0.05)
qplot(ret)

红色条示意低于 5% 分位数的收益率。

散布特色

为了预计 VaR,咱们须要正确定义假如散布的相应分位数。对于正态分布,对应于 a = 5% 的分位数为 -1.645。教训证据表明,正态性假如通常会产生较弱的后果。Jarque-Bera 测验能够测验股票收益遵从正态分布的假如。

其中 S 是偏度,C 是峰度。正态分布样本将返回 JB 分数。低 p 值表明股票收益不是正态分布的。

ja.tst(rets)
qplot(ret , gom = 'desity') + geom_density

在上图中,显示了股票收益(_蓝色_)和正态分布数据(_红色_)的密度图。下图的垂直线代表 a = 0.05(_浅绿色_)和 a = 0.01(_深绿色_)的失常对应分位数。下图表明对于 95% 的显着性,应用正态分布可能会高估危险值。然而,对于 99% 的显着性程度,正态分布会低估危险。

学生的 t 散布

为了更充沛地模仿尾部的厚度,咱们能够对股票收益应用其余散布假如。t 散布是对称的钟形散布,就像正态分布一样,但尾部较重,这意味着它更容易产生远离其均值的值。咱们应用_rugarch 包中_的 fitdist 函数  来获取 t 散布的拟合参数。

fitdispars
cat("对于 a = 0.05,正态分布的分位数值为:" ,
     qnorm(p = 0.05) , "\n" ,
)

正如咱们所察看到的,95% 显着性程度的分位数表明正态分布高估了危险,但 99% 未能发现异常值的存在,因而产生了对危险的低估。

Garch VaR 和 Delta-normal 办法

Delta-normal 办法假如所有股票收益都是正态分布的。这种办法包含回到过来并计算收益的方差。危险价值能够定义为:

其中 μ 是均匀股票收益,σ 是收益的标准差,a 是选定的置信水平,N−1 是逆 PDF 函数,生成给定 a 的正态分布的相应分位数。

这种简略模型的后果经常令人悲观,现在很少在实践中应用。正态性和恒定每日方差的假如通常是谬误的,咱们的数据也是如此。

之前咱们察看到收益率体现出随工夫变动的波动性。因而,对于 VaR 的预计,咱们应用 GARCH(1,1) 模型给出的条件方差。咱们应用学生的 t 散布。对于此办法,危险价值示意为:

 是给定 t−1 信息的条件标准偏差,并且  是 t 散布的逆 PDF 函数。

qplot(y = rets , gom = 'point') + gem_pnt(col = 'lihtgrson')

红线示意 GARCH 模型产生的 VaR,蓝线示意 delta-normal VaR。

VaR 预测

该 ugarchroll 办法容许执行的模型 / 数据集组合的滚动预计和预测。它返回计算预测密度的任何所需度量所需的散布预测参数。咱们将最初 500 个观测值设置为测试集,并对条件标准偏差进行滚动挪动 1 步预测,. 咱们每 50 次察看从新预计 GARCH 参数。

roll = garhrol(spec = model.spec)
 
#测试集 500 个察看
mean(ret) + rolldesiy[,'Siga']*qdist(dis='std',

回测

让  是 T 期间股票收益率低于 VaR 估计值的天数,其中如果  It 为 1,和 如果,It 为 0 . 因而,N 是样本中察看到的异样数。正如 Kupiec (1995) 所论证的那样,失败数遵循二项式散布 B(T, p)。

for(i in 1:50 p[i]= (pbinom(q = (i-1) - pbinom(q))

qplot(y = p)

上图示意由二项式散布给出的异样概率分布。预期数量为 25 (=500obs. x 5%)。两条红线示意 95% 的置信水平,较低的是 16,较高的是 35。因而,当咱们查看测试集上的异样时,咱们冀望 16 到 35 之间的数字表明 GARCH 模型预测胜利。

plot(VaR95, geom = 'line') +
    geom_point

黑线代表 GARCH 模型给出的每日预测 VaR,红点代表低于 VaR 的收益率。最初一步是计算异样的数量,并将其与应用 delta-normal 办法生成的异样进行比拟。

cat('delta-normal 办法的异样数:', (sum(rets[759:1258] < (mean(r]

正如咱们之前所说,咱们预计 delta-normal 办法会高估危险。回测时,只有 14 倍的收益率低于 VaR 低于 95% 显着性程度 (<16)。另一方面,在这种非凡状况下,GARCH 办法(23 个例外)仿佛是一种无效的预测工具。

参考

Angelidis T., Benos A. and Degiannakis S. (December 2003). The Use of GARCH Models in VaR Estimation.


点击文末 “浏览原文”

获取全文残缺材料。

本文选自《 R 语言危险价值:ARIMA,GARCH,Delta-normal 法滚动预计 VaR(Value at Risk)和回测剖析股票数据 》。

点击题目查阅往期内容

R 语言 GARCH 模型对股市 sp500 收益率 bootstrap、滚动预计预测 VaR、拟合诊断和蒙特卡罗模仿可视化
R 语言单变量和多变量(多元)动静条件相关系数 DCC-GARCH 模型剖析股票收益率金融工夫序列数据稳定率
R 语言中的工夫序列分析模型:ARIMA-ARCH / GARCH 模型剖析股票价格
GARCH-DCC 模型和 DCC(MVT)建模预计
R 语言预测期货稳定率的实现:ARCH 与 HAR-RV 与 GARCH,ARFIMA 模型比拟
ARIMA、GARCH 和 VAR 模型预计、预测 ts 和 xts 格局工夫序列
PYTHON 用 GARCH、离散随机稳定率模型 DSV 模仿预计股票收益工夫序列与蒙特卡洛可视化
极值实践 EVT、POT 超阈值、GARCH 模型剖析股票指数 VaR、条件 CVaR:多元化投资组合预测危险测度剖析
Garch 稳定率预测的区制转移交易策略
金融工夫序列模型 ARIMA 和 GARCH 在股票市场预测利用
工夫序列分析模型:ARIMA-ARCH / GARCH 模型剖析股票价格
R 语言危险价值:ARIMA,GARCH,Delta-normal 法滚动预计 VaR(Value at Risk)和回测剖析股票数据
R 语言 GARCH 建模罕用软件包比拟、拟合规范普尔 SP 500 指数稳定率工夫序列和预测可视化
Python 金融工夫序列模型 ARIMA 和 GARCH 在股票市场预测利用
MATLAB 用 GARCH 模型对股票市场收益率工夫序列稳定的拟合与预测
R 语言极值实践 EVT、POT 超阈值、GARCH 模型剖析股票指数 VaR、条件 CVaR:多元化投资组合预测危险测度剖析
Python 用 ARIMA、GARCH 模型预测剖析股票市场收益率工夫序列
R 语言中的工夫序列分析模型:ARIMA-ARCH / GARCH 模型剖析股票价格
R 语言 ARIMA-GARCH 稳定率模型预测股票市场苹果公司日收益率工夫序列
Python 应用 GARCH,EGARCH,GJR-GARCH 模型和蒙特卡洛模仿进行股价预测
R 语言工夫序列 GARCH 模型剖析股市稳定率
R 语言 ARMA-EGARCH 模型、集成预测算法对 SPX 理论稳定率进行预测
matlab 实现 MCMC 的马尔可夫转换 ARMA – GARCH 模型预计
Python 应用 GARCH,EGARCH,GJR-GARCH 模型和蒙特卡洛模仿进行股价预测
应用 R 语言对 S&P500 股票指数进行 ARIMA + GARCH 交易策略
R 语言用多元 ARMA,GARCH ,EWMA, ETS, 随机稳定率 SV 模型对金融工夫序列数据建模
R 语言股票市场指数:ARMA-GARCH 模型和对数收益率数据探索性剖析
R 语言多元 Copula GARCH 模型工夫序列预测
R 语言应用多元 AR-GARCH 模型掂量市场危险
R 语言中的工夫序列分析模型:ARIMA-ARCH / GARCH 模型剖析股票价格
R 语言用 Garch 模型和回归模型对股票价格剖析
GARCH(1,1),MA 以及历史模拟法的 VaR 比拟
matlab 预计 arma garch 条件均值和方差模型

退出移动版