R語言GARCH模型對股市sp500收益率bootstrap、滾動估計(jì)預(yù)測VaR、擬合診斷和蒙特卡羅模
原文鏈接:http://tecdat.cn/?p=26271
最近我們被客戶要求撰寫關(guān)于GARCH的研究報(bào)告,包括一些圖形和統(tǒng)計(jì)輸出。
Box 等人的開創(chuàng)性工作(1994) 在自回歸移動平均模型領(lǐng)域的相關(guān)工作為波動率建模領(lǐng)域的相關(guān)工作鋪平了道路,分別由 Engle (1982) 和 Bollerslev (1986) 引入了 ARCH 和 GARCH 模型
這些模型的擴(kuò)展包括更復(fù)雜的動力學(xué),例如閾值模型來捕捉新聞影響的不對稱性,以及除正態(tài)之外的分布來解釋實(shí)踐中觀察到的偏度和過度峰度。在進(jìn)一步的擴(kuò)展中,本文旨在為單變量 GARCH 過程建模提供一套全面的方法,包括擬合、過濾、預(yù)測、模擬以及診斷工具,包括繪圖和各種測試。用于評估模型不確定性的其他方法(例如滾動估計(jì)、引導(dǎo)預(yù)測和模擬參數(shù)密度)為這些過程的建模提供了豐富的環(huán)境。
示例
擬合對象屬于 uGARCHfit 類,可以傳遞給各種其他方法,例如 show (summary)、plot、ugarchsim、ugarchforecast 等。
>?fit?=?ugarchfit(spec?=?spec)
擬合診斷
穩(wěn)健標(biāo)準(zhǔn)誤差基于 White (1982) 的方法,該方法通過計(jì)算參數(shù) (θ) 的協(xié)方差 (V) 來生成漸近有效的置信區(qū)間:
其中,
這是最佳分?jǐn)?shù)的Hessian和協(xié)方差。穩(wěn)健標(biāo)準(zhǔn)誤差是 V 的對角線的平方根。擬合或過濾對象上的 inforcriteria 方法返回 Akaike (AIC)、貝葉斯 (BIC)、Hannan-Quinn (HQIC) 和 Shibata (SIC) 信息標(biāo)準(zhǔn),以通過以不同速率懲罰過擬合來啟用模型選擇。形式上,它們可以定義為:
Q-statistics 和 ARCH-LM 檢驗(yàn)已被 Fisher 和 Gallagher (2012) 的 Weighted Ljung-Box 和 ARCH-LM 統(tǒng)計(jì)量取代,這更好地說明了來自估計(jì)模型。ARCH-LM 檢驗(yàn)現(xiàn)在是一個加權(quán)組合檢驗(yàn),用于檢驗(yàn)充分?jǐn)M合的 ARCH 過程的原假設(shè),而 Ljung-Box 是另一個組合檢驗(yàn),其 ARMA 擬合的充分性為零。signbias 計(jì)算 Engle 和 Ng (1993) 的 Sign Bias Test,也顯示在摘要中。這測試了標(biāo)準(zhǔn)化殘差中杠桿效應(yīng)的存在(以捕捉 GARCH 模型可能的錯誤指定),
其中 I 是指標(biāo)函數(shù), ^t 是 GARCH 過程的估計(jì)殘差。原假設(shè)是 H0:ci = 0(對于 i = 1、2、3),并且聯(lián)合 H0:c1 = c2 = c3 = 0。從先前擬合的總結(jié)可以推斷,存在顯著的負(fù)和對沖擊的積極反應(yīng)。使用諸如 apARCH 之類的模型可能會減輕這些影響
gof 計(jì)算卡方擬合優(yōu)度檢驗(yàn),將標(biāo)準(zhǔn)化殘差的經(jīng)驗(yàn)分布與所選密度的理論分布進(jìn)行比較。該實(shí)現(xiàn)基于 Palm (1996) 的測試,該測試通過重新分類標(biāo)準(zhǔn)化殘差而不是根據(jù)它們的值(如在標(biāo)準(zhǔn)測試中),而是根據(jù)它們的大小,計(jì)算在存在非獨(dú)立同分布觀察的情況下的測試,計(jì)算觀察到小于標(biāo)準(zhǔn)化殘差的值的概率,該殘差應(yīng)該是相同的標(biāo)準(zhǔn)均勻分布。該函數(shù)必須采用 2 個參數(shù),即擬合對象以及用于對值進(jìn)行分類的箱數(shù)。在擬合摘要中,使用了 (20, 30, 40, 50) 個 bin 的選擇,
nymblom 檢驗(yàn)計(jì)算了 Nyblom (1989) 的參數(shù)穩(wěn)定性檢驗(yàn),以及聯(lián)合檢驗(yàn)。顯示用于比較結(jié)果的臨界值,但在超過 20 個參數(shù)的情況下,這不適用于聯(lián)合測試。
視頻
時間序列分析:ARIMA GARCH模型分析股票價格數(shù)據(jù)
**
拓端
,贊22
最后,一些信息圖可以交互繪制(which = 'ask'),單獨(dú)繪制(which = 1:12),或者一次全部繪制(which = 'all'),如圖 2 所示。
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
R語言極值理論 EVT、POT超閾值、GARCH 模型分析股票指數(shù)VaR、條件CVaR:多元化投資組合預(yù)測風(fēng)險(xiǎn)測度分析
左右滑動查看更多
01
02
03
04
過濾
有時希望使用一組預(yù)定義的參數(shù)簡單地過濾一組數(shù)據(jù)。例如,當(dāng)新數(shù)據(jù)到達(dá)并且人們可能不希望重新擬合時,可能就是這種情況。
>?filt?=?ugarchfilter(spec?=?spe)
>?show(filt)
預(yù)測和 GARCH bootstrap程序
兩種類型的預(yù)測。一種滾動方法,其中基于擬合例程中設(shè)置的 out.sample 選項(xiàng)創(chuàng)建連續(xù) 1-ahead 預(yù)測,以及用于 n>1 超前預(yù)測的無條件方法。(也可以將兩者結(jié)合起來創(chuàng)建一個相當(dāng)復(fù)雜的對象)。在后一種情況下,也可以使用 Pascual 等人描述的 bootstrap程序。bootstrap 方法基于從擬合模型的經(jīng)驗(yàn)分布中重新采樣標(biāo)準(zhǔn)化殘差,以生成序列和 sigma 的未來實(shí)現(xiàn)。實(shí)現(xiàn)了兩種方法:一種通過模擬和重新擬合建立參數(shù)的模擬分布來考慮參數(shù)不確定性,另一種只考慮分布不確定性,從而避免昂貴且冗長的參數(shù)分布估計(jì)。在后一種情況下,1-ahead sigma 預(yù)測的預(yù)測區(qū)間將不可用,因?yàn)樵谶@種情況下,只有參數(shù)不確定性與 GARCH 類型模型相關(guān)。
>?sec?=?ugrspc(are.e=list(model="csGARCH"),ititin="std")
>?fi?=?grit(sc,sp5et)
bot(fit,?mehod?=?c("Pl",?"Full")[1],
完整 GARCH bootstrap程序總結(jié)如下:
從估計(jì)對象中提取標(biāo)準(zhǔn)化殘差。如果是具有固定參數(shù)的規(guī)范,首先使用提供的數(shù)據(jù)集進(jìn)行過濾,然后從過濾后的對象中提取標(biāo)準(zhǔn)化殘差。
使用 spd 或基于內(nèi)核的方法從原始標(biāo)準(zhǔn)化殘差中采樣大小為 N 的 n.bootfit 集(原始數(shù)據(jù)集減去任何樣本周期外)。
模擬
模擬可以直接在擬合對象上進(jìn)行:
其中 n.sim 表示模擬的長度,而 m.sim 表示獨(dú)立模擬的數(shù)量。出于速度的原因,當(dāng) n.sim 相對于 m.sim 較大時,仿真代碼在 C 中執(zhí)行,而對于較大的 m.sim,使用了特殊用途的 C++ 代碼(使用 Rcpp 和 RcppArmadillo),發(fā)現(xiàn)這會導(dǎo)致速度顯著提高。
滾動估計(jì)
對模型/數(shù)據(jù)集組合執(zhí)行滾動估計(jì)和預(yù)測,可選擇返回指定水平的 VaR。更重要的是,它返回計(jì)算預(yù)測密度所需的任何度量所必需的分布預(yù)測參數(shù)。以下示例說明了該方法的使用,其中還使用了并行功能并在 10 個內(nèi)核上運(yùn)行。
>?cl?=?mkSluter(10)
>?spec?=?uarpc(vaaneoel?=?list(model?=?"eGARCH"),?ditrtonodel?=?"jsu")
>?roll?=?ghrospe,se?.at?=?1000,?ef.every=?10,
refit.windw?=moing,?calult.V=?TRUE,
V.ha?=?c(0.01,?0.05),?cser?=?c,?eep.oef?=?TUE)
>?report
蒙特卡羅實(shí)驗(yàn):模擬參數(shù)分布和RMSE
通過多次模擬和擬合模型并針對不同的“窗口”大小來執(zhí)行蒙特卡羅實(shí)驗(yàn)。這允許通過查看均方根誤差的下降率以及我們是否具有 √ N 一致性,在數(shù)據(jù)窗口增加時對參數(shù)估計(jì)的一致性有所了解。
>?spec?=?urhprnmel?=?list(model?=?"gjrGARCH"),
+?distuto.el??"ged")
>?dist?=?ugacdsribton(fiOspec?spec,?n.sm?=?2000),
+?user?=?cl)
>?stopCluster(cl)
>?show(dist)
?
常見問題解答和指南
問:我應(yīng)該使用多少數(shù)據(jù)對 GARCH 過程進(jìn)行建模?
但是,使用 100 個數(shù)據(jù)點(diǎn)來嘗試擬合模型不太可能是一種合理的方法,因?yàn)槟惶赡塬@得非常有效的參數(shù)估計(jì)。提供了一種方法(ugarchdistribution),用于從預(yù)先指定的模型、不同大小的數(shù)據(jù)進(jìn)行模擬,將模型擬合到數(shù)據(jù),并推斷參數(shù)的分布以及作為數(shù)據(jù)長度的 RMSE 變化率增加。這是檢查參數(shù)分布的一種計(jì)算成本非常高的方法(但在非貝葉斯世界中是唯一的方法),因此應(yīng)謹(jǐn)慎使用并在有足夠計(jì)算能力的情況下使用。
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
R語言單變量和多變量(多元)動態(tài)條件相關(guān)系數(shù)DCC-GARCH模型分析股票收益率金融時間序列數(shù)據(jù)波動率
R語言中的時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格
GARCH-DCC模型和DCC(MVT)建模估計(jì)
R語言預(yù)測期貨波動率的實(shí)現(xiàn):ARCH與HAR-RV與GARCH,ARFIMA模型比較
ARIMA、GARCH 和 VAR模型估計(jì)、預(yù)測ts 和 xts格式時間序列
PYTHON用GARCH、離散隨機(jī)波動率模型DSV模擬估計(jì)股票收益時間序列與蒙特卡洛可視化
極值理論 EVT、POT超閾值、GARCH 模型分析股票指數(shù)VaR、條件CVaR:多元化投資組合預(yù)測風(fēng)險(xiǎn)測度分析
Garch波動率預(yù)測的區(qū)制轉(zhuǎn)移交易策略
金融時間序列模型ARIMA 和GARCH 在股票市場預(yù)測應(yīng)用
時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格
R語言風(fēng)險(xiǎn)價值:ARIMA,GARCH,Delta-normal法滾動估計(jì)VaR(Value at Risk)和回測分析股票數(shù)據(jù)
R語言GARCH建模常用軟件包比較、擬合標(biāo)準(zhǔn)普爾SP 500指數(shù)波動率時間序列和預(yù)測可視化
Python金融時間序列模型ARIMA 和GARCH 在股票市場預(yù)測應(yīng)用
MATLAB用GARCH模型對股票市場收益率時間序列波動的擬合與預(yù)測
R語言極值理論 EVT、POT超閾值、GARCH 模型分析股票指數(shù)VaR、條件CVaR:多元化投資組合預(yù)測風(fēng)險(xiǎn)測度分析
Python 用ARIMA、GARCH模型預(yù)測分析股票市場收益率時間序列
R語言中的時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格
R語言ARIMA-GARCH波動率模型預(yù)測股票市場蘋果公司日收益率時間序列
Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模擬進(jìn)行股價預(yù)測
R語言時間序列GARCH模型分析股市波動率
R語言ARMA-EGARCH模型、集成預(yù)測算法對SPX實(shí)際波動率進(jìn)行預(yù)測
matlab實(shí)現(xiàn)MCMC的馬爾可夫轉(zhuǎn)換ARMA - GARCH模型估計(jì)
Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模擬進(jìn)行股價預(yù)測
使用R語言對S&P500股票指數(shù)進(jìn)行ARIMA + GARCH交易策略
R語言用多元ARMA,GARCH ,EWMA, ETS,隨機(jī)波動率SV模型對金融時間序列數(shù)據(jù)建模
R語言股票市場指數(shù):ARMA-GARCH模型和對數(shù)收益率數(shù)據(jù)探索性分析
R語言多元Copula GARCH 模型時間序列預(yù)測
R語言使用多元AR-GARCH模型衡量市場風(fēng)險(xiǎn)
R語言中的時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格
R語言用Garch模型和回歸模型對股票價格分析
GARCH(1,1),MA以及歷史模擬法的VaR比較
matlab估計(jì)arma garch 條件均值和方差模型