数据集来源于yahoo财经股票数据。下载方式:

import pandas_datareader.data as web

## 使用 pandas-datareader 来读取股票数据
start = datetime.datetime(2010, 1, 1)
end = datetime.datetime(2017,12,31)
prices = web.DataReader('002578.SZ', 'yahoo', start, end)
prices.head()
prices.to_csv("stock-train.csv")

#读取数据

import pandas as pd
import datetime
import matplotlib.pyplot as plt
import seaborn as sns
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
from statsmodels.tsa.arima_model import ARIMA
%matplotlib inline
stock = pd.read_csv('stock-train.csv', index_col=0, parse_dates=[0])
stock.tail(10)

stock_week = stock['Close'].resample('W-MON').mean()

stock_train =stock_week['2010':'2017']

#数据趋势图

sns.set_style('whitegrid')
plt.figure(figsize=(12,8))
stock_train.plot()
plt.legend(bbox_to_anchor=(1.25, 0.5))
plt.title('Close Price')
sns.despine()

一阶差分

ARIMA 模型对时间序列的要求是平稳型。因此,当你得到一个非平稳的时间序列时,首先要做的即是做时间序列的差分,直到得到一个平稳时间序列。如果你对时间序列做d次差分才能得到一个平稳序列,那么可以使用ARIMA(p,d,q)模型,其中d是差分次数。

stock_diff = stock_train.diff()
stock_diff = stock_diff.dropna()plt.figure(figsize=(12,8))stock_diff.plot()
plt.title(u'一阶差分')
plt.show()

ACF & PACF

fig = plt.figure(figsize=(10,8))
ax1 = fig.add_subplot(211)
fig = plot_acf(stock_diff, lags=20, ax=ax1)
plt.title('ACF')ax2 = fig.add_subplot(212)
fig =  plot_pacf(stock_diff, lags=20, ax=ax2)
plt.title('PACF')plt.show()

ACF & PACF 一阶差分之后都落到了 0轴上,表示我们只需要一阶差分就好了!

——***ARIMA***——

时间序列分析--ARIMA模型

指数平滑法对时间序列上连续的值之间的相关性没有要求。但是,如果你想使用指数平滑法计算出预测区间, 那么预测误差必须是不相关的, 且必须是服从零均值、 方差不变的正态分布。即使指数平滑法对时间序列连续数值之间相关性没有要求,在某种情况下, 我们可以通过考虑数据之间的相关性来创建更好的预测模型。 自回归移动平均模型( ARIMA)是最常用的时间序列预测模型。

ARIMA模型

全称为 自回归积分滑动平均模型(Autoregressive Integrated Moving Average Model, 简记ARIMA),ARIMA(p,d,q)模型是针对非平稳时间序列所建立的模型。根据时间序列是否平稳以及回归中所含部分的不同,可分为:

  • 移动平均过程(MA(q))

  • 自回归过程(AR(p))

  • 自回归移动平均过程( ARMA(p,q) )

  • 自回归积分滑动平均过程 ( ARIMA(p,d,q) )

stock_train = stock_train.dropna()
model = ARIMA(stock_train, order=(6,1,6), freq='W-MON')
model_fit = model.fit(disp=0,maxiter=100)
print(model_fit.summary())

用QQ 图验证是否符合正态分布

from statsmodels.graphics.api import qqplot
# 残差
resid = model_fit.resid.values
fig = plt.figure(figsize=(12,8))
ax = fig.add_subplot(111)
fig = qqplot(resid, line='q', ax=ax, fit=True)

#模型预测

pred = model_fit.predict('20171127', '20180502', dynamic=True, typ='levels')

print (pred)

#预测结果数据展示

plt.figure(figsize=(12,8))
plt.plot(pred)
plt.plot(stock_train)

推荐阅读:


机器学习篇

机器学习入门科普篇--系列一

机器学习入门科普篇--系列二

客户流失分析

全球变暖温度分析图


python学习篇

优雅的Python

让你的 Python 代码优雅又地道

Pandas做股票预测相关推荐

  1. 深度学习做股票预测靠谱吗?

    链接:https://www.zhihu.com/question/54542998 编辑:深度学习与计算机视觉 声明:仅做学术分享,侵删 作者:文兄 https://www.zhihu.com/qu ...

  2. 基于pytorch下用LSTM做股票预测——超详细

    理论 LSTM理论详解 代码 请转到链接:文章详情 另外,欢迎大家打赏!

  3. 毕业设计之 --- 基于大数据分析的股票预测系统

    文章目录 0 前言 1 课题意义 1.1 股票预测主流方法 2 什么是LSTM 2.1 循环神经网络 2.1 LSTM诞生 2 如何用LSTM做股票预测 2.1 算法构建流程 2.2 部分代码 3 实 ...

  4. 【毕业设计】LSTM股票预测系统 - python 深度学习

    文章目录 0 前言 1 课题意义 1.1 股票预测主流方法 2 什么是LSTM 2.1 循环神经网络 2.1 LSTM诞生 3 如何用LSTM做股票预测 3.1 算法构建流程 3.2 部分代码 4 实 ...

  5. matlab股票分析系统,matlab股票预测系统,matlab股票决策

    内容导航: Q1:BP神经网络预测股票的Matlab的m文件 BP神经网络预测股票的Matlab的m文件,一般吧 Q2:matlab 数据预测 对于第一个问题没看懂 式子已知 代入自变量就有结果 这就 ...

  6. 深度学习RNN实现股票预测实战(附数据、代码)

    背景知识 最近再看一些量化交易相关的材料,偶然在网上看到了一个关于用RNN实现股票预测的文章,出于好奇心把文章中介绍的代码在本地跑了一遍,发现可以work.于是就花了两个晚上的时间学习了下代码,顺便把 ...

  7. 用stocker进行股票预测

    第一次写关于股票预测的程序,也不知道具体应该做什么,在网上搜了下别人用蟒做的东西,然后仿照别人的东西,自己也试了一下,现在把这个过程记录下,也算是个学习. 参考:https: //blog.csdn. ...

  8. 手把手教你:基于LSTM的股票预测系统

    系列文章 第七章.手把手教你:基于深度残差网络(ResNet)的水果分类识别系统 第六章.手把手教你:人脸识别的视频打码 第五章.手把手教你:基于深度学习的滚动轴承故障诊断 目录 系列文章 一.项目简 ...

  9. 基于深度学习的股票预测(完整版,有代码)

    基于深度学习的股票预测 数据获取 数据转换 LSTM模型搭建 训练模型 预测结果 数据获取 采用tushare的数据接口(不知道tushare的筒子们自行百度一下,简而言之其免费提供各类金融数据 , ...

最新文章

  1. CSS 选择器:BeautifulSoup4解析器
  2. 四层LVS与七层Nginx负载均衡的区别
  3. 视差滚动教程、实现方法、源代码
  4. springcloud使用feign进行远程服务调用
  5. android优雅的一个侧滑
  6. 驱动中的资源共享和临界代码保护
  7. hdu 1171 dp(多重背包)
  8. 44.用Tornado实现web界面爬虫
  9. 我搭的神经网络不work该怎么办!看看这11条新手最容易犯的错误
  10. 对华为HG255D路由器进行JTAG调试的进一步研究
  11. outlook安装包下载
  12. Ext.grid.EditorGridPanel使用方法
  13. java实习计划_JAVA实习计划及指导书.pdf
  14. 计算机还原默认的配置,每次开电脑bios会恢复默认设置怎么办实测解决
  15. 与“雾霾”相关的英语表达
  16. NFT交易平台2.0来了,源代码,智能合约整套
  17. Web开发者的实用网址
  18. 杰西.利弗莫尔 行情记录规则注释
  19. Webrtc 回音消除 一
  20. Go语言自学系列 | go语言数字类型

热门文章

  1. 35岁后,不是你被淘汰,而是你没有发现你的价值 | 如何发现35岁后的价值?
  2. 小学期项目(C语言)————外卖点餐系统(功能齐全)
  3. 32u图腾服务器机柜型号,图腾网络机柜-G36632-32U1.6米机柜
  4. 考驾照科目二需有的天时 地利 人和
  5. 基于php的网络数据包分析工具的设计与开发
  6. tts代表_有什么好的文字转语音(TTS)的软件推荐?
  7. linux 车载导航源代码,基于Linux的嵌入式车载导航系统的设计
  8. 几款博客离线发布工具
  9. 【水】OpenHarmony开源见面会分享
  10. 美女图片在网站上的应用