模型介绍GARCH模型称为广义ARCH模型,是ARCH模型的拓展,由Bollerslev(1986)发展起来的。它是ARCH模型的推广。GARCH(p,0)模型,相当于ARCH(p)模型。数据来源

本文所使用的数据来源于联通的股票数据,数据来源于网络。

import numpy as np #导入包import pandas as pdimport matplotlib.pylab as pltimport statsmodels.api as sm
df=pd.read_csv('中国联通.csv',encoding='utf-8',index_col='date') #导入数据df

序列识别

from datetime import datetime #导入datetime模块df.index=pd.to_datetime(df.index) #转换数据格式ts=df['open']ts

ts.head() #查看数据前五个

plt.rcParams['font.sans-serif'] = ['simhei'] #字体为黑体plt.rcParams['axes.unicode_minus'] = False #正常显示负号 #时序图的绘制ts.plot()plt.xticks(rotation=45) #坐标角度旋转plt.xlabel('日期') #横、纵坐标以及标题命名plt.ylabel('开盘价')plt.title('中国联通开盘价',loc='center')

from statsmodels.tsa.stattools import adfuller #ADF单位根检验result = adfuller(ts) #不能拒绝原假设,即原序列存在单位根print(result)

ts1= ts.diff().dropna() #一阶差分再进行ADF检验result = adfuller(ts1)print(result)

plt.rcParams['font.sans-serif'] = ['simhei'] #字体为黑体plt.rcParams['axes.unicode_minus'] = False #正常显示负号plt.xticks(rotation=45) #坐标角度旋转plt.xlabel('日期') #横、纵坐标以及标题命名plt.ylabel('开盘价')plt.title('差分后的开盘价',loc='center')ts1.plot()plt.show() #一阶差分后的时序图

from statsmodels.tsa import stattools #白噪声检验:Ljung-Box检验LjungBox=stattools.q_stat(stattools.acf(ts1)[1:12],len(ts1))[1] #显示第一个到第11个白噪声检验的p值
LjungBox  #检验的p值大于0.05,因此不能拒绝原假设,差分后序列白噪声检验通过

模型识别与定阶

from statsmodels.tsa.arima_model import ARIMA #导入ARIMA模型model=ARIMA(ts,order=(1,1,0)) #白噪声检验通过,直接确定模型result=model.fit(disp=-1)result.summary() #提取模型信息

from statsmodels.graphics.tsaplots import plot_acf, plot_pacf #导入自相关和偏自相关包plot_acf(ts1,use_vlines=True,lags=30) #自相关函数图,滞后30阶plt.show()

plot_pacf(ts1,use_vlines=True,lags=30) #偏自相关函数图plt.show()

train_results = sm.tsa.arma_order_select_ic(ts1, ic=['aic', 'bic'], trend='nc', max_ar=8, max_ma=8)print('AIC', train_results.aic_min_order) #建立AIC值最小的模型# print('BIC', train_results.bic_min_order)
model = ARIMA(ts,(2,1,2)).fit()model.summary() #提取模型系数等信息,保留三位小数;summary2保留四位小数

模型诊断

model.conf_int() #系数显著性检验

import mathstdresid=model.resid/math.sqrt(model.sigma2) #标准化残差
plt.rcParams['font.sans-serif'] = ['simhei'] #字体为黑体plt.rcParams['axes.unicode_minus'] = False #正常显示负号plt.plot(stdresid) #标准化残差序列图plt.xticks(rotation=45) #坐标角度旋转plt.xlabel('日期') #横、纵坐标以及标题命名plt.ylabel('标准化残差')plt.title('标准化残差序列图',loc='center')

plot_acf(stdresid,lags=30) plt.show()

from statsmodels.tsa import stattools #残差序列的白噪声检验LjungBox=stattools.q_stat(stattools.acf(stdresid)[1:13],len(stdresid))LjungBox[1][-1] #LjungBox检验的最后一个P值,大于0.05,通过白噪声检验

0.49148259820763385模型预测

a=model.forecast(5)a

fig, ax = plt.subplots(figsize=(6, 4))ax = ts.ix['2018-09':].plot(ax=ax)plt.show()fig = model.plot_predict(5,280)

ARCH模型

resid1=result.resid #提取残差LjungBox=stattools.q_stat(stattools.acf(resid1**2)[1:13],len(resid1)) #残差平方序列的白噪声检验LjungBox[1][-1] #拒绝原假设,则残差序列具有ARCH效应

8.163084234445548e-09

from arch import arch_modelam=arch_model(resid1) #默认模型为GARCH(1,1)model2=am.fit(update_freq=0) #估计参数

print(model2.summary())

garch预测 python_Python实战—基于GARCH模型股票趋势预测相关推荐

  1. 经济数据预测 | Python实现ARIMA模型股票趋势预测

    经济数据预测 | Python实现ARIMA模型股票趋势预测 目录 经济数据预测 | Python实现ARIMA模型股票趋势预测 基本介绍 数据描述 程序设计 参考资料 基本介绍 随着人们生活水平的提 ...

  2. matlab血糖预测,一种基于VMD-PACF-BP模型的动态血糖在线预测方法与流程

    本发明属于血糖预测技术领域,尤其涉及一种基于VMD-PACF-BP模型的动态血糖在线预测方法. 背景技术: 目前,中国患有糖尿病人数已成为在世界上拥有糖尿病患者最多的国家.为了降低糖尿病患者长期处于高 ...

  3. 电力负荷预测任务(基于GRU模型)

    数据:2000-2002三年每小时的电力负载 程序以及数据链接(如果受益,请给个关注和star):https://github.com/xzdLYL/electrical_load_predictio ...

  4. python财务报表预测股票价格_基于 lstm 的股票收盘价预测 -- python

    开始导入 MinMaxScaler 时会报错 "from . import _arpack ImportError: DLL load failed: 找不到指定的程序." (把s ...

  5. Python-基于ARIMA模型股票趋势预测

    目录 一.模型介绍 算法步骤 模型优点 模型缺点 二.数据来源 读入数据 三.平稳性检验 四.差分运算 五.模型定阶 六.模型修正 七.模型预测 一.模型介绍 ARIMA模型(自回归移动平均模型),是 ...

  6. 基于LSTM进行股票趋势预测(tushare)

    注: 本文章仅用于算法&工具学习与使用,不具有任何投资建议. 前言: 笔者最近在研究时序趋势预测,而股票天然具有时序性,故使用某一股票数据进行学习.下面将使用代码预测一只股票的每日最高价,当然 ...

  7. 基于ARCH模型股价波动率建模分析

    原文链接:http://tecdat.cn/?p=3856 引言 金融中一个重要度量是与资产相关的风险,而资产波动率是最常用的风险度量.然而,资产波动率的类型有多种.波动率是期权定价和资产分配中得一个 ...

  8. 解读:基于图卷积特征的卷积神经网络的股票趋势预测(文末赠书)

    写在前面 下面这篇文章的内容主要是来自2020年发表于Information Science 的一篇文章<A novel graph convolutional feature based co ...

  9. 解读:通过挖掘概念间共享信息,实现股票趋势预测的图模型框架

    写在前面 下面这篇文章的内容主要是来自发表于微软亚洲研究院同中山大学合作的一篇文章<HIST: A Graph-based Framework for Stock Trend Forecasti ...

最新文章

  1. qt 5.9 mysql 5.7_Qt 5.9.1 连 MYSQL 5.7数据库
  2. 缩略图在网页设计中应用的35个优秀案例
  3. AlphaFold证明人工智能可以解决基本的科学问题
  4. python logging模块的作用_Python 日志模块logging分析及使用-2
  5. 每日一皮:史上最直观的单向循环链表,还不懂算我输!
  6. Apache Hook机制解析(下)——实战:在自己的代码中使用Apache的钩子
  7. asm和file system之间数据文件的转换
  8. iOS屏幕适配方案-Auto Layout
  9. android strictmode有什么作用,Android 性能优化 之 StrictMode
  10. 微软Surface Pro 8曝光:搭载第11代酷睿处理器和Win11系统
  11. git 无法提交空目录
  12. Java 运行程序,并获得结果
  13. AutoCAD许可、AutoCAD许可分析、分析许可
  14. 上级对下级用通知合适吗_【判断题】通知只能作为下行文使用,下级对上级不能使用通知。 ( )...
  15. 只需四天,从零开始选购笔记本电脑【转】【荐】
  16. 手机签到应用的设计与手机定位方法浅析
  17. nodejs+vue 蛋糕甜品商城系统
  18. wireshark抓包使用与过滤方法
  19. kodi安卓4.0版及中文插件安装方法
  20. 错过就要多花 200 元,Unite 2017 Shanghai 五折抢票倒计时!

热门文章

  1. Python爬虫入门教程,突破煎蛋网反爬措施,妹子图批量抓取!
  2. 每日一题-45(访问日期之间最大的空档期)
  3. hosts文件被删除了如何解决
  4. ionic3隐藏子页面的tabs和配置返回按钮
  5. 参考文献代码--学位论文做参考文献
  6. 怎样设置iMindMap导图背景
  7. dede标签:定义文件夹
  8. 公安统计报表计算机信息系统2015版,[广东省东莞市公安统计报表信息系统的设计与实现.ppt...
  9. 【高级篇 / SNMP】(7.0) ❀ 03. PRTG 监控 FortiGate 状态 (上) ❀ FortiGate 防火墙
  10. oracle ebc,《Oracle 10G 系统教程 中科院培训老师讲授》