GARCH时间序列分析

作者: estate47 | 来源:发表于2019-08-19 19:35 被阅读4次

GARCH模型称为广义ARCH模型,是ARCH模型的拓展,加入了误差项条件方差的滞后期,将影响因子扩展为均方误差和条件方差前期值。这一模型的显著优点是能够在较低的阶数对高阶的滞后过程进行描述。解决了ARCH模型中滞后阶数过大的问题,从而避免参数过多而无法满足约束条件,使模型失效导致无法描述收益率的波动性。GARCH模型实际上就是在ARCH的基础上,增加考虑异方差函数的p阶自回归性而形成,它可以有效的拟合具有长期记忆性的异方差函数。
适用性:GARCH模型是一个专门针对金融数据所量体订做的回归模型,除去和普通回归模型相同的之处,GARCH对误差的方差进行了进一步的建模。特别适用于波动性的分析和预测,借助该模型好可以分析Shibor与ABS发行之间的相关性。


image.png

输入表:包括时间和利率两列


image.png

输出表:预测一定期间的利率


image.png

参数:输入开始预测的时间及需要预测的个数
完整代码如下:

from scipy import  stats
import sys
import statsmodels.api as sm  # 统计相关的库
import numpy as np
import pandas as pd
import arch  # 条件异方差模型相关的库
from statsmodels.tsa.arima_model import ARIMA
from openpyxl import Workbook
from openpyxl.compat import range
# import os

# InputPath = sys.argv[1]  # InputFilePath
# OutputPath = sys.argv[2] # OutputFilePath
# Parameters=sys.argv[3]  # json format string, optional 外部用户输入预测个数
# Parameters = json.loads(Parameters)

#read input
k = 10 # 外部引入预测值个数K
data = pd.read_excel("GARCH_input.xlsx", index_col = u'Date')

#自动定阶构建AR模型,并预测
pmax = 7#定阶
bic = [] #bic矩阵
# print(bic)
for p in range(pmax+1):
    tmp = (ARIMA(data,(p,0,0)).fit().bic)
    bic.append((p,tmp))
newBicList = sorted(bic,key=lambda item:item[1])
p = newBicList[0][0]

order = (p,0)
model = sm.tsa.ARMA(data,order).fit()
model.forecast(k)
forecast1 = np.array(model.forecast(k)[0])

#GARCH拟合
am = arch.arch_model(data,mean='AR',lags=p,vol='GARCH',p=1,q=1)
res = am.fit()

#GARCH滚动预测
start_loc = 0
end_loc = len(data)-k-1
forecasts = {}
for i in range(k):
    res = am.fit(last_obs=i+end_loc, disp='off')
    temp = res.forecast(horizon=3).variance
    fcast = temp.iloc[i+end_loc-1]
    forecasts[fcast.name] = fcast

forecast2 = np.array(np.array(pd.DataFrame(forecasts).T['h.1']).tolist()[1])
forecast = forecast1 + forecast2  #AR-GARCH的最终预测结果是 AR预测结果 + GARCH残差预测结果
print(forecast)

相关文章

  • GARCH时间序列分析

    GARCH模型称为广义ARCH模型,是ARCH模型的拓展,加入了误差项条件方差的滞后期,将影响因子扩展为均方误差和...

  • 深度解析:Value at Risk、风险价值、在险价值VaR计

    由于金融时间序列具有波动集聚性,为了刻画这种特性,需要建立ARMA GARCH模型 本附件包括以下内容: 1、免费...

  • 2020 时序分析随笔

    多元时间序列分析 通过分析序列自身的变化规律,构建时间序列模型 一元时间序列分析方法 多元时间序列分析 在 198...

  • 时序分析平稳性分析

    时间序列分析 时间序列分析分为平稳时间序列分析和随机过程 时间序列的定义 按时间排序的一组随机数变量,可以用数学语...

  • 24分析股票指数的GARCH效应

    GARCH是一种用过去的方差以及其的预测值来预测未来方差的自回归条件异方差时间序列模型。其中异方差指方差随时间变化...

  • 数据分析之时间序列分析

    时间序列分析 顾名思义,时间序列就是按照时间顺利排列的一组数据序列。时间序列分析就是发现这组数据的变动规律并用于预...

  • 时间序列分析

    时间序列简介 时间序列分析是数据分析过程中,尤其是在金融数据分析过程中会经常遇到的。时间序列,就是以时间排序的一组...

  • 时间序列分析

    趋势,平稳时间序列模型,非平稳时间序列模型,模型识别,模型估计,参数估计,模型诊断,预测,季节模型,时间序...

  • 时间序列分析

    昨天睡了一天,是头晕的那种,然后也没心思来做笔记,没心思来看书,其实,我知道,或许我现在做的只是在转移一种矛盾,可...

  • 时间序列分析

    1.三种基本模式 1.1 平稳性 / 随机性(Stationarity): 当数据没有明显的模式特征的话,我们认为...

网友评论

    本文标题:GARCH时间序列分析

    本文链接:https://www.haomeiwen.com/subject/fegesctx.html