如何在 GARCH 模型中使用 ARIMA
How to use ARIMA in GARCH model
我有财务数据,我的目标是能够进行预测。我 运行 一个 arima 模型,发现最适合的是带漂移的 arima(1,1,1)。我想在数据集上使用 GARCH,因为由于波动性,它是更好用的模型,而且当我对残差进行平方时,它确实具有拱形效应。但我知道 GARCH 采用 2 参数 arima,但我不确定 t运行slates 是如何从我目前拥有的 3 参数 arima 中得出的。
library(dplyr)
library(tidyr)
library(lubridate)
library(ggplot2)
library(TSA)
library(forecast)
spnew<-read.csv(file="~/Desktop/SPNEW.csv", header=T,
sep=",",check.names=FALSE)
sfts1=ts(sp$`Adj Close`,
freq=260,start=decimal_date(ymd("2009-01-02")))
arsf1=auto.arima(sfts1, trace=T)
我有 GARCH 的 运行 代码,但不确定要为 arima 部分输入什么。
model1 <- ugarchspec(variance.model = list(model="sGARCH",
garchOrder=c(_,_)),
mean.model = list(armaOrder=c(_,_)),
distribution.model = "norm")
mod2 <- ugarchfit(spec=model1,
data=sfts1)
我将需要输入的内容留空。一旦我知道如何放入 arima,我将使用 garch 命令。如果知道对 GARCH 模型进行编码的更好方法,请告诉我。
下面我把你说的2参数arima的模型称为ARMA
rugarch::ugarchspec()
可以将 ARMA(p, q) 或 ARFIMA(p, d, q) 模型视为 mean.model
。
(注意:当 d 为整数时,ARFIMA(p, d, q) 等价于 ARIMA(p, d, q))
这是我的例子;
p <- 1
q <- 1
# d <- 1 # if you want to fix d
model1 <- ugarchspec(variance.model = list(model="sGARCH",
garchOrder=c(_, _)),
mean.model = list(armaOrder=c(p, q),
arfima = T), # using arfima model
# fixed.pars=list(arfima = d), # If you want to fix d
distribution.model = "norm"))
可以通过在 ugarchspec()
中的 mean.model =
中包含 external.regressors =
来加入季节性。 forecast
包中的 fourier()
函数可以帮助您找到合适的 fourier terms 可以用作外部回归变量来表示季节性。
我有财务数据,我的目标是能够进行预测。我 运行 一个 arima 模型,发现最适合的是带漂移的 arima(1,1,1)。我想在数据集上使用 GARCH,因为由于波动性,它是更好用的模型,而且当我对残差进行平方时,它确实具有拱形效应。但我知道 GARCH 采用 2 参数 arima,但我不确定 t运行slates 是如何从我目前拥有的 3 参数 arima 中得出的。
library(dplyr)
library(tidyr)
library(lubridate)
library(ggplot2)
library(TSA)
library(forecast)
spnew<-read.csv(file="~/Desktop/SPNEW.csv", header=T,
sep=",",check.names=FALSE)
sfts1=ts(sp$`Adj Close`,
freq=260,start=decimal_date(ymd("2009-01-02")))
arsf1=auto.arima(sfts1, trace=T)
我有 GARCH 的 运行 代码,但不确定要为 arima 部分输入什么。
model1 <- ugarchspec(variance.model = list(model="sGARCH",
garchOrder=c(_,_)),
mean.model = list(armaOrder=c(_,_)),
distribution.model = "norm")
mod2 <- ugarchfit(spec=model1,
data=sfts1)
我将需要输入的内容留空。一旦我知道如何放入 arima,我将使用 garch 命令。如果知道对 GARCH 模型进行编码的更好方法,请告诉我。
下面我把你说的2参数arima的模型称为ARMA
rugarch::ugarchspec()
可以将 ARMA(p, q) 或 ARFIMA(p, d, q) 模型视为 mean.model
。
(注意:当 d 为整数时,ARFIMA(p, d, q) 等价于 ARIMA(p, d, q))
这是我的例子;
p <- 1
q <- 1
# d <- 1 # if you want to fix d
model1 <- ugarchspec(variance.model = list(model="sGARCH",
garchOrder=c(_, _)),
mean.model = list(armaOrder=c(p, q),
arfima = T), # using arfima model
# fixed.pars=list(arfima = d), # If you want to fix d
distribution.model = "norm"))
可以通过在 ugarchspec()
中的 mean.model =
中包含 external.regressors =
来加入季节性。 forecast
包中的 fourier()
函数可以帮助您找到合适的 fourier terms 可以用作外部回归变量来表示季节性。