查看原文
其他

最全: ARCH, GARCH等模型家族是什么?软件如何做?怎么解释?

计量经济圈 计量经济圈 2022-05-11

凡是搞计量经济的,都关注这个号了

稿件:econometrics666@126.com

所有计量经济圈方法论丛的code程序, 宏微观数据库和各种软件都放在社群里.欢迎到计量经济圈社群交流访问.

关于时间序列方法,我们引荐了1.时间序列分析的各种程序, 38页集结整理成文档,2.ARDL, ARIMA, VAR, (G)ARCH时间数据模型讲解及软件操作,3.R软件中的时间序列分析程序包纵览,4.时间序列分析的各种程序, 38页集结整理成文档,5.时间序列数据分析的思维导图一览, 金融经济学者必备工具,6.送书: 应用时间序列分析(经典),7.为啥时间序列模型比较难学?时间序列的正名路,8.面板数据单位根检验软件操作和解读全在这里,9.动态面板回归和软件操作,单位根和协整检验(Dynamic Panel Data),10.疫情期计量课程免费开放!面板数据, 因果推断, 时间序列分析与Stata应用,11.送书: 应用时间序列分析(经典),12.时间序列模型分解,季节调整分析基础,13.动态因子模型是什么, 又怎么去实现? 14.动态面板分位数估计怎么做?15.动态面板门槛回归程序公布, 使用方法介绍,16.把动态面板命令讲清楚了,对Stata的ado详尽解释

关于VAR方法,我们引荐了1.R软件中的时间序列分析程序包纵览2.时间序列分析的各种程序, 38页集结整理成文档3.时间序列数据分析的思维导图一览, 金融经济学者必备工具4.送书: 应用时间序列分析(经典)5.为啥时间序列模型比较难学?时间序列的正名路6.时间序列中的协整检验和VECM,以及回归后的系列估计操作7.时间序列模型分解,季节调整分析基础8.空间和时间的计量,关注二位国人9.TVP-VAR时变参数VAR系列文献和估计程序10.向量自回归VAR模型操作指南针,为微观面板VAR铺基石11.VAR宏观计量模型演进与发展,无方向确认推断更好12.应用VAR模型时的15个注意点,总结得相当地道13.面板数据单位根检验软件操作和解读全在这里14.动态面板回归和软件操作,单位根和协整检验(Dynamic Panel Data)15.面板向量自回归PVAR是什么? 数据, 程序和解读一步到位16.ARDL, ARIMA, VAR, (G)ARCH时间数据模型讲解及软件操作17.动态因子模型是什么, 又怎么去实现?18.SVAR模型的起源、识别、估计与应用, 系统讲述19.平滑转移自回归模型(STAR)应用与在R软件的操作20.Copula函数21.GVAR, 全局VAR模型是什么?该如何用软件实现, 有哪些研究文献和最新进展!

今天,我们引荐一份“百科: ARCH, GARCH等模型家族是什么?软件如何做?怎么解释?”。

正文
关于下方文字内容,作者:宛子远,中国人民大学财政金融学院通信邮箱:matt_wan@foxmail.com
注:文后附上了PDF版本的文章,更加便于阅读,可以前往参看。
描述(Description)
arch命令用来拟合波动率随时间变化而变化的回归模型,适用于序列中高波动率和低波动率的时期分别集聚的情况。ARCH(Autoregressive Conditional Heteroskedasticity Process,自回归条件异方差过程)模型将未来的波动率作为先验波动率的函数来估计。为了实现这一估计,arch利用条件最大似然估计法来拟合ARCH模型。除了一般的ARCH项,Stata支持在模型中包括积性异方差(multiplicative heteroscedasticity),支持对扰动项设定正态分布,学生t分布和广义误差分布三种形式。
arch也允许在回归方程中加入ARCH-in-mean(ARCH均值)和ARMA(Autoregressive Moving Average自回归滑动平均)项。
快速入门(Quick Start)
y关于x回归的ARCH模型,包括一阶和二阶滞后ARCH项(需要先用tsset将数据转换为时间序列):
arch y x, arch(1,2)
增加一个二阶滞后GARCH项:
arch y x, arch(1,2) garch(2)
增加一个二阶滞后自回归项以及三阶滞后移动平均项:
arch y x, arch(1,2) garch(2) ar(2) ma(3)
让均值方程中包括条件方差(ARCH-in-Mean模型):
arch y x, arch(1,2) garch(2) ar(2) ma(3) archm
y的二阶EGARCH(Exponential GARCH,指数GARCH)模型,包括一个一阶滞后自回归项:
arch y, earch(2) egarch(2) ar(1)
语法细节(Details of syntax)

使用arch命令拟合的基本模型形式如下:
的方程中可以加入ARCH-in-mean和ARMA项
如果没有给出具体命令,默认A() = B() = 0,模型转变为线性回归。可以在A()中包括以下选项(其中是待估参数):

可以在B()中包括下面的选项:


相反,如果指定了parch()、tparch()、aparch()、nparch()、nparchk()或pgarch()选项,则基本的拟合模型是:

这里是待估参数,A()和B()像上面那样给出,但现在A()和B()被加入关于的条件方差方程中(实际上这时我们很少指定关于A()和B()的选项)。D()中可以包括:

一般模型(Common models)
Common termOptions to specify
ARCH (Engle 1982)(自回归条件异方差模型)
arch()
GARCH (Bollerslev 1986)(广义自回归条件异方差模型)
arch() garch()
ARCH-in-mean (Engle, Lilien, and Robins 1987)(ARCH均值模型)
archm arch() [garch()]
GARCH with ARMA terms(带ARMA的GARCH模型)
arch() garch() ar() ma()
EGARCH (Nelson 1991)(指数GARCH模型)
earch() egarch()
TARCH, threshold ARCH (Zakoian 1994)(门限ARCH模型)
abarch()atarch()sdgarch()
GJR, form of threshold ARCH (Glosten, Jagannathan, and Runkle 1993) (GJR形式的门限ARCH模型)
arch() tarch() [garch()]
SAARCH, simple asymmetric ARCH (Engle 1990)(简单非对称ARCH模型)
arch() saarch() [garch()]
PARCH, power ARCH (Higgins and Bera 1992)(幂ARCH模型)
parch() [pgarch()]
NARCH, nonlinear ARCH(非线性ARCH模型)
narch() [garch()]
NARCHK, nonlinear ARCH with one shift(带有位移的非线性ARCH模型)
narchk() [garch()]
A-PARCH, asymmetric power ARCH (Ding, Granger, and Engle 1993) (非对称幂ARCH模型)
aparch() [pgarch()]
NPARCH, nonlinear power ARCH (非线性幂ARCH模型)
nparch() [pgarch()]
在任何情况下,输入
arch depvar [indepavars], options
这里的options可以从上面的表格中进行选择。每个选项(option)都需要指定一个数字列表(numlist)作为参数,通过该数字列表指定模型中要包含的滞后阶数。对于大多数ARCH模型,这个值将是1。例如,要对cpi拟合经典的一阶GARCH模型,可以输入以下命令:
. arch cpi, arch(1) garch(1)
如果想估计cpi对wage回归的一阶GARCH模型,输入:
. arch cpi wage, arch(1) garch(1)
如果希望对加入任何options的一阶和二阶滞后项,输入optionname(1/2)。例如指定garch(1) arch(1/2),将估计一个具有一阶和二阶滞后ARCH项的一阶GARCH模型。如果指定arch(2),则模型中只会包括二阶滞后ARCH项。
附注和实例(Remarks and examples)
经济变量的时间序列数据常常有这样的特征:序列的波动率随时间变化而变化,同时高波动率和低波动率的时期具有集聚的特点。这种现象在样本频率更高的金融序列中更为明显。ARCH模型试图将这种随时间变化而变化的波动率作为观察到的先验波动率的函数来估计。有时候,相较于条件均值方程,我们更关心波动率方程(即条件方差方程)。正如在Stata中的arch实现的那样,波动率模型中也可以包括回归变量,以解释波动率中的结构成分——通常称为积性异方差。
ARCH模型由Engle(1982)在研究通货膨胀率时首次提出,自那以后,出现了大量关于自回归条件异方差的参数和非参数形式。有关文献综述可以参考Bollerslev, Engle, and Nelson(1994)和Bollerslev, Chou, and Kroner(1992)。一般计量经济学教材都会包括对ARCH模型的介绍,包括Davidson和MacKinnon(1993)、Kmenta(1997)、Stock和Watson(2019)和Wooldridge(2020)。Harvey(1989)和Enders(2004)在更广泛的计量经济学时间序列建模的背景下介绍了ARCH,而Hamilton(1994)在同样的背景下给出了更多的细节性介绍。Becketti(2020,第八章)提供了关于ARCH建模的简单介绍,强调了如何使用Stata的arch命令。
arch命令利用条件极大似然估计(conditional maximum likelihood)来拟合自回归条件异方差模型(ARCH、GARCH等)。“conditional”的意思是,似然值会基于假设或估计的冲击来进行计算;参见Hamilton(1994)或Bollerslev(1986)。有时,基于样本中的第一个a、g或a + g观察值,软件会进行适应参数过程,其中a为最大ARCH项滞后,g为最大GARCH项滞后(或者其他ARCH变种函数项的最大滞后)。
在Engle(1982)提出的最早的ARCH模型中,回归模型当期扰动项的条件方差被表示为过去扰动项平方的线性函数。一般的,ARCH(m)模型可以由下面的均值方程和条件方差方程表示:

其中,是扰动项(或者称为冲击,innovations)的平方,是ARCH项的参数。
ARCH模型给出了条件均值和条件方差的具体形式,并且将方差表示成未预期到的冲击大小的函数。Bollerslev(1986)对该模型进行了推广,在方程中加入了条件方差的自回归部分,形成了GARCH模型。GARCH(m, k)模型可以被写为:

其中是ARCH项的参数是GARCH项的参数。
Engle(1982)在他开创性的研究中,假定误差项。然而,Mandelbrot(1963)和许多其他研究人员指出,股票收益的分布表现出尖峰厚尾(leptokurtotic)的特点,这意味着,极端情况的出现要比误差项服从正态分布时更频繁。因此,研究者有时需要假设误差项服从具有厚尾特点的其他分布。arch命令允许在计算时,让模型的误差项服从学生t分布或广义误差分布。t分布比正态分布有更厚的尾部;当自由度参数趋于无穷时,t分布收敛于正态分布。当形状参数小于2时,广义误差分布的尾部厚于正态分布的尾部;当形状参数大于2时,广义误差分布的尾部薄于正态分布的尾部。
GARCH模型中的条件方差可以被认为是扰动项平方的一个ARMA过程,尽管这一点并不容易看出;具体可见Hamilton(1994)。实际上,在标准的GARCH模型中,我们可以将冲击的平方写成下面的形式,其中,的基本白噪声过程。

GARCH模型的主要优点之一是它可以更简洁地识别条件方差。与ARIMA模型一样,使用ARMA形式的GARCH模型,可以让我们用比单独使用ARCH形式更少的参数来估计条件方差。根据经验,很多存在条件异方差扰动的序列都可以用GARCH(1,1)模型来进行充分的建模。
服从ARMA过程的扰动项可以被很容易地加入到均值方程中。例如,如果均值方程中的扰动项服从ARMA(1,1)过程,可表示为:

显然在方程中加入更多项就可以向ARMA(p,q)过程推广。由于现在是由均值方程的不同形式得出的,这种变化只影响条件方差的形式。
有关ARCH模型的文献多集中于讨论方差方程的替代形式。在arch函数中,可以通过在pgarch()中选择saarch(),更改或添加方差方程中的一项或多项。
这些替代的形式还解决了不对称问题。标准的ARCH和GARCH模型都暗示了冲击具有对称影响。冲击是积极还是消极,对之后的期望方差没有影响;只有冲击的规模才重要——因为好消息和坏消息的效果是一样的。然而,许多理论认为,坏消息的影响和好消息的影响应该有所不同。对于风险厌恶的投资者来说,市场的大幅下跌比大幅上涨更有可能导致更高的波动性(参见Black [1976], Nelson[1991])。saarch()、tarch()、aarch()、abarch()、earch()、aparch()和tparch()允许我们在方程中使用各种形式的非对称影响。
narch()、narchk()、nparch()和nparchk()暗示了特定形式的非对称影响。当冲击的滞后项均为零时,上面提到的所有模型均有最小条件方差。在保持条件方差小的问题上,“没有消息就是好消息”。narch()、narchk()、nparch()和nparchk()对冲击也有对称的响应,但它们不以0为中心。整个冲击响应函数(对冲击的响应)水平移动,以使最小方差位于先前冲击的某个特定的正或负的值。
ARCH-in-mean模型允许序列的条件方差影响条件均值。这能让我们方便地对金融序列的风险-收益关系进行建模;在其他条件相同的情况下,一项投资的风险越大,其预期回报就越低。ARCH-in-mean模型将条件均值方程表示为:

虽然目前条件方差的这种线性形式在文献中占主导地位,arch函数允许条件方差通过非线性变换g()进入均值方程,并使这些变换后的项同时或滞后地包括进来:

平方根形式是最常用的g()变换,因为研究者希望在方程中包含一个表示条件标准差的线性项。但是Stata中允许包括任何形式的g()。
例1:ARCH模型
考虑美国批发价格指数(WPI)的一个简单模型(Enders 2004, 87-93),我们在[TS] arima中也考虑了这个数据集。数据是从1960年第1季度至1990年第4季度的季度数据。
在[TS] arima中,我们拟合了WPI, ln(WPIt)−ln(WPIt−1)的连续复合变化率模型。差分序列的图表——参见[TS] arima——清楚地显示了高波动期和其他相对平静的时期(低波动率期)。这使得该序列成为ARCH建模的一个很好的候选对象。事实上,价格指数一直是ARCH模型的一个适用对象。Engle(1982)在对英国通货膨胀率的分析中提出了最初的ARCH公式。
首先,我们利用OLS估计一个只有常数的模型,并利用Engle的LM 检验(estat archlm)检验ARCH效应。

因为LM检验的p值为0.0038,远低于0.05,我们拒绝没有ARCH(1)效应的原假设。因此,我们可以通过arch(1)命令来进一步估计ARCH(1)参数。有关Engle’s LM test的更多信息,请参见[R] regress postestimation time series。
一阶广义ARCH模型(GARCH, Bollerslev 1986)是实证工作中最常用的条件方差形式,通常写成GARCH(1,1)。我们可以通过输入下面的代码来估计对数差分序列的GARCH(1,1)过程。

估计出ARCH(1)参数为0.436,GARCH(1)参数为0.454,因此拟合的GARCH(1,1)模型是
对该模型的Wald检验和概率都被报告为missing(.)。按照惯例,Stata会报告均值方程的模型检验。对于ARCH模型,通常情况下,均值方程只包含一个常数,因此没有什么需要检验的。
例2 带有ARMA过程的ARCH模型
我们可以保留条件方差的GARCH(1,1)形式,将均值建模为具有AR(1)和MA(1)项的ARMA过程,并加入MA的四期滞后项来控制季度季节性影响。代码如下:

模型估计结果为:

ARCH(1)项系数为0.204,与0相比并不显著,但ARCH(1)项与GARCH(1)项系数联合显著。可以通过test命令进行检验:

(为便于比较,我们使用与 [TS] arima的例1中的相同样本进行拟合;Enders拟合了相同的GARCH模型,但样本略有不同。)
注意事项(Technical note)
在对ARCH模型进行MLE估计时,可能需要花费较长时间进行对数函数迭代。这实际上可能意味着ARCH模型的表现良好。“switching optimization to . . .”是arch函数中默认优化方法的标准消息。在早期迭代过程中,“backed up”经常出现在使用BFGS方法的过程中,因为构建的Hessian矩阵通常过度优化。这些报告都没什么好担心的。
但是,要注意“BFGS stepping has contracted, resetting BFGS Hessian”和“backed up”,这标志着迭代对数函数不断重复。Stata永远不会报告收敛性,也永远不会报告最终结果。问题是,你应当在什么情况下中止运行并按下Break,以及如果你中止了程序应当采取怎样的操作补救。
如果重复出现“BFGS stepping has contracted”(超过5次),通常表示永远不会实现收敛。这意味着BFGS算法由于出现问题,重新设置了Hessian矩阵,并采取了最速下降法。
“backed up”(如果重复出现)也表明存在问题,但只有在报告的似然估计值同时不改变的情况下才会出现问题。如果消息重复出现,但报告的似然值在变化,如上面所示,则一切正常;程序只是运行得很慢。
如果存在收敛问题,可以指定辅助当前最大化方法的选项,或者尝试另一种方法。或者,您的模型和数据可能在区间内不是凹的,因此不能最大化。
如果您看到“backed up”消息报告的似然值没有变化,则可以将梯度容忍度重置为更大的值。通过输入gtolerance(999)选项禁用梯度检查,从而使结果更容易收敛。但这并不保证一定会收敛,即使收敛了,也可能没有找到最大似然估计值。
您还可以尝试指定初始值。
最后,您可以尝试使用不同的最优化估计方法;参见上面Maximization 选项的讨论。
ARCH模型的一个缺点是其收敛困难。与Stata中的大多数估计量不同,ARCH估计量的收敛需要很多步,甚至失败都是很常见的现象。对于特定的非线性项,如aarch()、narch()、aparch()或archm (ARCH-in-mean),以及在ARCH项中有多个滞后项的任何模型,尤其如此。这并不总是有解决办法。您可以尝试其他最大化方法或不同的初始值,但是如果您的数据不支持您假设的ARCH结构,那么就不可能实现收敛。
ARCH模型可能容易受到不相关的回归量或不必要的滞后量的影响,无论是在条件均值还是条件方差的形式中。在这些情况下,arch通常会继续迭代,在似然值方面几乎没有改进。我们认为这种保守的方法比在似然估计值尚未完全最大化的情况下就过早地宣布收敛要好。arch会估计二阶样本矩的条件形式,通常包括灵活的函数,这需要大量的数据。
注意事项(Technical note)
判断表达式(if exp)和范围筛选(in range)代表了对时间序列不同的操作。实际上,在检验判断条件之前,Stata会先对时间序列进行处理,这可能会导致一些混淆。注意以下列表命令的结果:

在上图的第一个例子中,我们会多出一个y的滞后项,因为在筛选(in)被施加之前,就已经生成了l.y序列。在第二个例子中,由于我们先对数据进行了筛选,数据集中就不会包括用来生成第一个y的滞后项的值。这意味着:
. use https://www.stata-press.com/data/r16/archxmpl, clear
. arch y l.x if twithin(1962q2, 1990q3), arch(1)
和下面的代码得到的结果不同:
. keep if twithin(1962q2, 1990q3)
. arch y l.x, arch(1)
例3:非对称影响—EGARCH模型
继续使用前面的WPI数据。我们可能会担心,经济对批发价格意外上涨的反应,与对意外下跌的反应不同。也许意料之外的价格增长会导致现金流问题,从而影响库存并导致更大的波动。我们可以通过设定一个非对称ARCH模型来数据是否支持这种假设,该模型允许包括“news”——冲击或意外变化的非对称效应。最为广泛使用的模型之一是EGARCH (Nelson 1991)。关于WPI的完整一阶EGARCH模型可以指定为:

我们对于方差的估计结果为

这是杠杆效应的一个强烈迹象。正的L1.earch系数意味着正向的冲击(意料之外的价格上涨)比负向的冲击影响更大。这种效应表现得很强烈(0.406),比对称效应(0.247)大得多。两个系数的相对比例表明正杠杆效应显著超过了对称效应。
我们可以绘制通常被称为news-response或news-impact函数的图像来很清楚地发现这一点。这条函数曲线将条件方差表示为意外变化的函数,即将表示为的函数。这意味着我们要对于给定的的值,比如从-4到4,计算出的值,然后绘制图像。
例4: 非对称幂ARCH模型
作为一个长期高频序列的例子,考虑道琼斯工业平均指数的日收盘指数,变量名为dowclose 。为了避免20世纪上半叶纽约证券交易所(New York Stock Exchange)周六开市交易的影响,我们只使用1953年1月1日以后的数据。本序列的复合收益作为因变量,如下图所示。

对上面的复合收益率,我们用取对数进行差分的方法获得,命令为D.ln_dow。但我们要先对日期数据进行一些处理。这个序列是日度数据,每个观测代表当天的道琼斯收盘指数。我们的数据包括一个记录为日期的时间变量。然而,我们想要对这个序列中的对数差分进行建模,并且我们想要从周五到周一的跨度显示为一阶差分。也就是说,星期一的前1天是星期五。因为我们的数据集是对date进行tsset,所以从周五到周一的跨度是3天。解决方案是创建一个新变量,该变量按顺序对观察值进行编号。通过使用这个新变量对数据进行tsseting,我们获得了所需的差分:
. generate t=_n
. tsset t
现在我们的数据形式如下图所示:

差分操作D此时消除了存在周末的问题,因为指定的时间变量t,不是真实的日期,而是经过处理后的日期排序,相邻样本之间的间隔都为1。在估计时,我们必须保留这个人为的时间变量,否则arch将认为我们的数据集有间隙。如果我们使用日历日期,数据中确实会有空缺。
Ding, Granger和Engle(1993)使用标准普尔500指数(S&P 500)的日收益(1928年1月3日-1991年8月30日)拟合了一个A-PARCH模型。我们将对上述道琼斯指数数据拟合同样的模型。该模型包括一个AR(1)项,条件方差用A-PARCH |
形式表述:

在迭代对数函数中,最终的迭代报告消息“backed up”。对于大多数估计量来说,以“backed up”消息结束会引起我们对结果很大的担忧,但是对于arch或者arima,只要您没有指定gtolerance()选项,就不必对结果有疑问。arch和arima在默认情况下会监视梯度,并且只有在梯度足够小的情况下才声明收敛。
我们的拟合模型显示出明显的非对称性,负的一阶滞后项(L1.aparch_e )系数较大。这表明表明市场对收益的意外下降(坏消息)的反应要比对收益的增加(好消息)的反应大得多。
例5: 扰动项非正态的ARCH 模型
股票收益往往是尖峰厚尾的,也就是说,极端收益(不管是正的还是负的)比在正态分布时更容易发生。这里对我们对A-PARCH模型进行了修正,假设误差服从广义误差分布,并利用arch估计了误差分布的形状参数。

ARMA和ARCH系数与我们假设误差服从正态分布时得到的相似,不过我们注意到幂项(power)现在更接近于1。对于广义误差分布估计的形状参数显示在输出的底部。这里估计的形状参数是1.42;因为它小于2,广义误差分布的尾部要比正态分布时更厚一些。
例6: 带约束的ARCH模型
Engle(1982)的原始模型(人们对ARCH模型的兴趣从此开始)中提供了一个需要加入约束的例子。目前大多数ARCH形式使用GARCH项来提供灵活的动态特性,从而避免估计过多的参数。原模型局限于ARCH项,为了处理这些项的共线性,在参数中加入了递减的滞后结构。此时的条件方差方程为:

从先前提到过的的arch的输出中,我们知道了系数将如何被命名。在Stata中,求解上面公式的方法是:
我们可以用很多方法来指定这些线性约束条件,但是下面的方法看起来很直观;有关语法,请参见[R]constraint:

原始的模型适用于英国的通货膨胀;我们在这里将再次使用WPI数据,并保留先前与Engle的英国通胀模型不同的均值方程形式。使用约束条件,可以得到:

在约束条件下,ARCH中的一到四阶滞后项系数有相对大小关系。

长按以上二维码可以查看PDF版本

下面这些短链接文章属于合集,可以收藏起来阅读,不然以后都找不到了。

2.5年,计量经济圈近1000篇不重类计量文章,

可直接在公众号菜单栏搜索任何计量相关问题,

Econometrics Circle




数据系列空间矩阵 | 工企数据 | PM2.5 | 市场化指数 | CO2数据 |  夜间灯光 | 官员方言  | 微观数据 | 内部数据计量系列匹配方法 | 内生性 | 工具变量 | DID | 面板数据 | 常用TOOL | 中介调节 | 时间序列 | RDD断点 | 合成控制 | 200篇合辑 | 因果识别 | 社会网络 | 空间DID数据处理Stata | R | Python | 缺失值 | CHIP/ CHNS/CHARLS/CFPS/CGSS等 |干货系列能源环境 | 效率研究 | 空间计量 | 国际经贸 | 计量软件 | 商科研究 | 机器学习 | SSCI | CSSCI | SSCI查询 | 名家经验计量经济圈组织了一个计量社群,有如下特征:热情互助最多前沿趋势最多、社科资料最多、社科数据最多、科研牛人最多、海外名校最多。因此,建议积极进取和有强烈研习激情的中青年学者到社群交流探讨,始终坚信优秀是通过感染优秀而互相成就彼此的。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存