楼主: kedemingshi
2569 20

[量化金融] R的模型置信集包 [推广有奖]

11
mingdashike22 在职认证  发表于 2022-5-7 02:42:58
属于这一类的模型主要是为了描述金融资产特征的条件波动的时变性质而提出的。它们也成为研究人员和从业者处理金融市场风险的最常用工具之一。我们考虑的最简单的条件波动动力学是Bollerslev(1986)引入的GARCH(p,q)规范σt=ω+pXi=1αεt-我-1+qXj=1βσt-J- 1,(10)其中ω>0和0≤ αi<1,i=1,2,p和0≤ βj<1,j=1,2,q和P≡Ppi=1α+Pqj=1β<1,以保持条件方差的弱遍历平稳性。有时,可以观察到金融时间序列波动的高持续性,也就是说,可以观察到≈ 1.为了解释这种情况,Engle和Bollerslev(1986)提出了IGARCH(p,q)规范,其中持久性参数被施加为正好为1,即p=1,h。尽管GARCH和IGARCH规范很受欢迎,但它无法解释负s型风险后比正s型风险后波动性更高的回报,正如Black(1976)的“杠杆效应”理论所述。因此,在金融计量经济学文献中,提出了几个ARCH模型。例如,Nelson(1991)的EGARCH(p,q)模型假设条件波动动力学遵循对数σt= ω+pXi=1[αiζt-i+γi(|ζt)-我|- E |ζt-i |)]+qXj=1βjlogσt-J, (11) 在通过γi参数引入不对称响应的情况下:对于γi<0,负向冲击对未来波动性的影响明显大于同等规模的正向冲击。注意,αi,βj,γi可以假定任何值,并且不需要正性约束。对于EGARCH(p,q)规范,电阻率参数p等于toP=Pqj=1βj。

12
mingdashike22 在职认证  发表于 2022-5-7 02:43:01
另一个广泛使用的非对称GARCH模型是格尔斯滕、贾甘纳森和伦克尔(1993)的GJR–GARCH(p,q)规范,该模型仅通过包含一个虚拟变量来解释杠杆效应,该虚拟变量通过以下方式区分正滞后冲击和负滞后冲击σt=ω+pXi=1αi+γiI{εt-i<0}εt-i+qXj=1βjσt-j、 (12)毛罗·贝尔纳迪,第一作者7,其中I{εt-i<0}假设εt为1-i<0表示i=1,2,p和0。由于存在指示函数,GJR–GARCH特异性的持续性主要取决于用于模拟误差项εtP=pXi=1αi+qXj=1βj+pXi=1γiP(εt)的条件分布的不对称性-我≤ 其中P(εt)-我≤ 0)d表示观察到负冲击的概率,ω>0,αi≥ 0,对于i=1,2,p、 βj≥ 0,对于j=1,2,q、 以及额外的构造αi+γi≥ 0表示i=1,2,施加p以保持条件方差的正性。最后,Ding、Gr和Engle(1993)的对称幂拱形(p,q)(APARCH,从今以后)对条件方差σ(δ)t=ω+pXi=1αi(|εt)施加了以下动态-我|- γiεt-i) δ+qXj=1βjσ(δ)t-j、 (14)式中x(δ)=xδ-1δ是Box和Cox(1964)的Box-Cox变换。确保条件方差为正的参数限制为ω>0,δ≥ 0, 0 ≤ γi≤ 0对于i=1,p和通常的条件αi≥ 0和βj≥ 对于i,j=1,2,max{p,q}。对于GJR–GARCH规范,持久性强依赖于为创新项ζtP=pXi=1αiκi+qXj=1βj(15)选择的概率密度函数,其中κi=E[|ζ|- γiζ]δ,对于i=1,q、 APARCH规范产生了一个非常灵活的模型,该模型嵌套了几个最常见的非变异拱参数,例如oBollerslev(1986)的GARCH(p,q)δ=0和γi=0,i=1,2。

13
能者818 在职认证  发表于 2022-5-7 02:43:04
,p;o对于δ=1和γi=0,对于i=1,2,…,绝对值-GARCH(AVARCH,从今往后)规范,p、 Taylor(1986)和Schwert(1990)提出,在绝对意义上缓解与传统GARCHSP定义有关的大规模冲击的影响格洛斯滕等人(1993)的GJR-GARCH模型,δ=2和0≤ γi≤ 1表示i=1,2,p、 oZakoian(1994)提出的δ=1的阈值GARCH(TGARCH,此后),它反映了波动性对滞后误差的不同迹象的不同反应Gagins和Bera(1992)的非线性GARCH(NGARCH,从今以后)对于γi=0对于i=1,2,p和βj=0表示j=1,2,q、 另一个有趣的规范是成分——GARCH(p,q)(CGARCH,从今以后)of Engle和Lee(1993),它将条件方差分解为永久变量,并以一种简单的方式将Rtransitory成分的MCS包σt=ξt+pXi=1αit-我- ξt-我+qXj=1βjσt-J- ξt-Jξt=ω+ρξt-1+ ηt-1.- σt-1., (16) 其中,为了确保p过程在通常情况下的平稳性,必须加上ρ<1约束。关于条件方差正性的进一步参数限制,见Ingle和Lee(1993)。通常采用这种解决方案是因为它允许调查波动性的长期和短期变化。所考虑的条件波动率模型是金融计量经济学文献中大量可用规范的最小部分。我们之所以选择这些模型,是因为它们的异质性,因为每一个模型都关注一种不同的风格化事实。

14
kedemingshi 在职认证  发表于 2022-5-7 02:43:08
此外,即使它们看起来非常相似,它们解释程式化事实的方式也会发生变化。关于GARCH模型的最新广泛调查,我们将参考Bollerslev(2008)、Ter–asvirta(2009)、Bauwens、Laurent和Rombouts(2006)、Silvennoinen和Ter–asvirta(2009)以及Francq和Zakoian(2011)的新书。为了估计模型参数,我们考虑了最大似然法,参见例如Francq和Zakoian(2011)。3.1。R环境中的GARCH模型估计和预测在处理GARCH模型估计和预测时,可以使用各种统计数据包,如Wuertz的fGarch软件包,其贡献来自Mic(2013)。在这里,为了估计相互竞争的GARCH模型,我们使用了Ghalanos(2014)开发的rugarch库中的一些函数。当然,以下处理方法仅用于说明MCS软件包的使用,读者可以自由选择不同的软件包来评估模型及其手写功能。在开始MC S程序之前,有必要定义一组相互竞争的GARCH模型M。这可以通过使用ugarchspec()函数来完成,该函数允许指定各种GARCH模型,如前一节3中所述。例如,codeR>library(rugarch)R>spec的以下部分是方差。model=list(model=“sGARCH”,garchOrder=c(1,1))创建一个uGARCHspec对象“spec”,该对象定义了一个具有高斯创新的GARCH(1,1)模型(所选的条件分布可以使用distribution.modelargument进行更改)。随后,可以将对象规范用于ugarchfit()功能,以便在给定的时间序列上估计模型。

15
能者818 在职认证  发表于 2022-5-7 02:43:11
例如,第一作者Mauro Bernardi 9创建了一个ugarchfit对象“fit”,其中包含STOXX北美600指数(“SXA1E”)的参数估计,以及一些附加信息,如信息标准、标准化残差测试、,还有几项ARCH LM测试。使用ugarchforecast()函数可以很容易地执行使用GARCH模型的预测,该函数将uGARCHfit或UGARCHSPECT对象的输出作为参数。使用以下routineR>OneStepForc<-ugarchforecast(fitORspec=fit,n.ahead=1)可以轻松获得一步超前预测,它报告一个ugarchforecast对象“OneStepForc”。rugarch软件包还包括ugarchroll()函数,该函数允许构建一系列提前一步的滚动预测,还允许用户定义“预测窗口”和预测序列的长度。例如,长度为2000的滚动预测序列(使用5个观测值的re FIT窗口)可计算为以下值:R>roll<-ugarchroll(spec=spec,data=ret,forecast.length=2000,refit.every=5),报告ugarchroll对象滚动。最后,为了处理“uGARCHspec”、“uGARCHfit”、“uGARCHforecast”和“uGARCHroll”对象,Ugarch软件包中提供了多种方法。有关更多信息,请参见Ghalanos(2014)或参考R.4中的帮助()。使用第2节所述的软件包,MCS程序用于比较不同模型在一个固定损失函数下的性能。损失函数在评估期间的每个时间点t测量竞争模型的“性能”。

16
nandehutu2022 在职认证  发表于 2022-5-7 02:43:14
假设现在有m个comp-etingmodels和长度为n的评估周期,然后使用定义的损失函数,可以构造一个维数为(m×n)的损失矩阵。然后,可以使用MCSprocedure()函数构造第2节中概述的高级模型集。4.1. 比较使用MCS的GARCH模型MCS程序可用于比较各个方面的模型,例如,它们预测未来波动性的能力,或未来回报与实际和过去信息的条件。相反,假设我们有兴趣比较不同GARCH模型的VaR预测。如前所述,ugarchroll()函数可用于获取特定GARCH模型的一步滚动预测序列。此外,as。数据frame()方法允许从uGARCHroll对象中提取1%和5%置信水平下的VaR f预测序列。例如,如果我们想要比较五种不同的GARCH规格,例如:Bollerslev(1986)的GARCH(1,1),rugarch包中的“sGARCH”Nelson(1991)的EGARCH(1,1),rugarch包装中的“EGARCH”戈尔斯滕等人(1993)的GJRGARCH(1,1),rugarch软件包中的“GJRGARCH”丁等人的APARCH(1,1)。

17
mingdashike22 在职认证  发表于 2022-5-7 02:43:17
(1993)rugarch套餐中的“无ZF主义”;10.RoCGARCH(1,1)ofEngle and Lee(1993)的MCS包,rugarch包中的“csGARCH”;我们可以使用ugarchspec()函数简单地定义五个GARCH规范,并结合上一节中为创新术语提供的分布,如下所示:模型<-c(“sGARCH”、“eGARCH”、“gjrGARCH”、“apARCH”、“csGARCH”)分布<-c(“norm”、“std”、“ged”、“snorm”、“sstd”、“sged”、“jsu”、“ghyp”)R>spec.comp<-list()R>for(m in models){(分布中的d){spec.comp[[paste(m,d,sep=“-”)]<ugarchspec(mean.model=list(armorder=c(0,0)),variance.model=list(model=m,garchOrder=c(1,1)),distribution.model=d)}R>specifications<-names(spec.comp)。通过这种方式,我们定义了一个包含40种GARCH规范和创新项分布组合的列表,我们可以使用200个观测值的“反射窗口”进行2000年的滚动预测。comp<-list()R>用于规范中的(s){roll.comp[[s]]<-ugarchroll(spec=spec.comp[[s]],data=ret,forecast.length=2000,refit.every=200)},并使用。数据frame()方法,在con fidencelevelτ=1%R>VaR.comp=list()R>for(s in specifications){VaR.comp[[s]<-as.data.frame(roll.comp[[s]],which=“VaR”)[,1]}提取VaR预测序列。现在可以计算每次与每个模型相关的损失。在这里,我们考虑了Gonz\'alez Rivera等人(2004年)和Bernardi等人(2004年)的不对称VaR损失函数。

18
mingdashike22 在职认证  发表于 2022-5-7 02:43:21
(2014),通过LossVaR()函数在MCS包中实现,第4节报告了可用损耗函数的更多细节。2R>损失<-do。调用(cbind,lappy(规格,函数)LossVaR(tau=0.01,realized=tail(ret,2000)/100,evaluated=VaR.comp[[s]]/100)))R>colnames(Loss)<-specifications对象“Loss”是一个维度矩阵(2000×40),包含与我们在本例中考虑的每个不同GARCH规格相关的VaR损失。对象Mauro Bernardi,第一作者11“丢失”也包含在MCS软件包中,可以使用数据(丢失)轻松加载,因为它代表第4节中描述的MCSprocedure()功能的主要输入。3.尽管如此,在下一节中,我们描述了一些替代损失函数,它们特别适用于波动性预测评估,以及预测未来观测条件和过去信息。4.2. 损失函数如前所述,MCS程序能够区分用户定义的损失函数下的模型。损失函数的选择有些随意,关键取决于竞争模型的性质及其使用范围。关于模型比较中损失函数选择的更多考虑,我们参考了Hansen和Lunde(2005)、Bollerslev、Engle和Nelson(1994)、Diebold和Lopez(1996)和Lopez(2001)。在下文中,我们报告了MCS包装中可用的损耗函数。然而,由于前一节中描述的MCSprocedure()函数接受预先定义的损失矩阵,称为“损失”,用户可以自由定义和使用自己的损失函数。MCS软件包中免费提供三种不同的损耗函数:1。LossVaR()可用于检查与VaR(或更普遍的分位数)预测相关的性能;2.

19
可人4 在职认证  发表于 2022-5-7 02:43:24
用于波动性预测评估的LossVol();3.LossLevel()可用于水平预测,如回归模型的准时平均预测。这些损失函数接受三个常见参数。前两个论点由一个已实现观测向量(即模型希望准确预测或描述的观测向量)组成,并作为一个向量或模型输出矩阵进行评估。请注意,我们决定将这些函数的第二个参数称为“已评估”,而不是“已预测”,因为MCS程序比简单的适用于预测评估的程序更通用。事实上,正如Hansen等人(2011)所报告的,MCS程序也适用于大量研究。第三个参数是函数相关的。下面报告了可用选项和其他函数的特殊参数仅适用于LossVaR(),该选项为“asymmetricLoss”。这与Gonz’alez Rivera等人(2004年)的对称VaR损失函数相吻合,该函数特别适合评估分位数风险度量,例如VaR,因为它会惩罚低于τ-th分位数水平的更多严重观测,即yt<VaRτt。不对称度量损失函数定义为l (yt,VaRτt)=(τ- dτt)(yt)- 其中dτt=(yt<VaRτt)是τ-分位数损失函数。进一步的参数是tau,它代表VaR置信水平和类型,可能选择“正常”和“可微”。类型参数允许区分损失函数的正态和可微版本:“正态”允许对等式(17)中定义的Gonz’alez Rivera等人(2004)的损失函数进行规定,而“可微”则考虑以下损失函数l (rt,VaRτt)=(τ- mδ(rt,VaRτt))(rt- VaRτt),(18)12 Rwhere mδ(a,b)=[1+exp{δ(a)的MCS包- b) }]-1.

20
能者818 在职认证  发表于 2022-5-7 02:43:27
请注意,控制函数平滑度的δ参数可以由LossVaR()函数中的δ参数选择,默认设置为25对于LossVol(),实现了Hansen和Lunde(2005)中报告的六个损失函数。注意,对于这种损失函数,已实现和已评估的参数应该是一些已实现的波动率测量值^σt+1和预测的准时波动率^σt+1。在这种情况下,我们使用术语波动性作为标准偏差σ。实现的损失函数有:1。SE1,t+1=(∑t+1)- ^σt+1),通过设置which=“SE1”,2。SE2,t+1=■σt+1- ^σt+1, 通过设置which=“SE2”,3。QLIKEt+1=log^σt+1+ ■σt+1^σ-2t+1,通过设置which=“QLIKE”,4。RLOGt+1=日志■σt+1^σ-2t+1, 通过设置which=“R2LOG”,5。AE1,t+1=|@σt+1- ^σt+1 |,通过设置which=“AE1”,6。AE2,t+1=|@σt+1- ^σt+1 |,通过设置which=“AE2”o对于LossLevel(),该参数接受与平方误差和绝对误差一致的值:“SE”和“AE”。4.3. 构造高级模型集函数MCSprocedure()返回类“SSM”的S4对象,该类有几个参数,我们现在在此简要介绍。函数MCSprocedure()的主要输入是-Loss,它必须是矩阵或可强制的东西(使用as.matrix()函数),其中包含要比较的每个模型的损失序列。-alpha,它必须是(0,1)中的正标量,表示MCStests的信任级别。-B、 这是一个整数,表示用于构造统计测试的引导样本数。-cluster,它与通过从并行包调用makeCluster创建的集群对象一致。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
扫码
拉您进交流群
GMT+8, 2026-1-30 14:30