時間序列

如何在 R 中擬合 ARMA+GARCH 模型?

  • September 15, 2021

我目前正在使用 R 研究 ARMA+GARCH 模型。我正在尋找例如逐步解釋在 R 中擬合此模型的解釋。我有固定的時間序列,我正在嘗試預測 n 週期提前值。

我已經研究過這個模型,但我正在尋找例如 auto.arima() 函式用於根據 AIC 值選擇最佳 ARMA(p,q) 的地方。

我不知道在做 ARMA-GARCH 時如何選擇 ARMA 滯後長度。也許有人可以將它編輯成這個答案。


對於您想要rugarch打包的單變數案例。如果你正在做你想要的多變數的東西rmgarch。這些比其他軟體包更好的原因是三倍;(i) 支持我在任何其他軟體包中未見過的外生變數,(ii) 支持動態條件相關,(iii) 支持大量 fGARCH 變體。

install.packages("rugarch")
require(rugarch)

讓我們構造要用作範例的數據。使用 $ N(0,1) $ 當您嘗試對其使用 GARCH 時會給出奇怪的結果,但這只是一個範例。

data <- rnorm(1000)

然後我們可以計算 ARMA(1,1)-GARCH(1,1) 模型作為範例:

spec <- ugarchspec(variance.model = list(model = "sGARCH", 
                                        garchOrder = c(1, 1), 
                                        submodel = NULL, 
                                        external.regressors = NULL, 
                                        variance.targeting = FALSE), 

                  mean.model     = list(armaOrder = c(1, 1), 
                                        external.regressors = NULL, 
                                        distribution.model = "norm", 
                                        start.pars = list(), 
                                        fixed.pars = list()))

garch <- ugarchfit(spec = spec, data = data, solver.control = list(trace=0))

檢索 ARMA(1,1) 和 GARCH(1,1) 係數:

garch@fit$coef

檢索隨時間變化的標準差:

garch@fit$sigma

檢索標準化 $ N(0,1) $ ARMA(1,1) 干擾:

garch@fit$z

看看你還能擺脫什麼:

str(garch)

如果你徘徊在擬合參數的理論結果,GARCH Models, Structure, Statistical Inference and Financial Applications of FRANCQ and ZAKOIAN 一書提供了一步一步的解釋。我認為在 R 中實施這些步驟並不是什麼大問題。

引用自:https://quant.stackexchange.com/questions/4948