關於時間序列方法,我們引薦了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)
在任何情況下,輸入
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(WPIt1)的連續複合變化率模型。差分序列的圖表——參見[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中的一到四階滯後項係數有相對大小關係。