python 时间序列预测 币价_python时间序列预测股票走势
提示:这只是个训练模型,技术不具备实际意义,入市需谨慎。
首先调用tushare包
import tushare as ts
import pandas as pd
import matplotlib.pyplot as plt
查自己比较感兴趣的股票,这里我查找的是新能源/燃料电池/氢燃料,在数据库里查找下
concept = ts.get_concept_classified()
df = concept[concept.c_name=='燃料电池']
我们就用金龙汽车作为我们的股票分析对象吧。
data=ts.get_hist_data('600686')
将开盘价open作为我们的分析对象,在这里截取了一段相对趋势唯一的数据作为train_data。并且选取了最后的一部分数据作为test_data。如下图。
在导入数据的过程中遇到一个很奇怪的现象,那就是数据的行index是时间逆序排列,刚开始没注意,后来才发现,用DataFrame.sort_index()进行调整。
data= ts.get_hist_data('600686', start='2016-09-13',end='2017-02-15').sort_index()
testdata=ts.get_hist_data('600686',start='2017-02-16',end='2017-03-29').sort_index()
plt.figure(figsize=(10,6))
plt.plot(data.open, label='Raw')
plt.legend(loc=0)
我们想对该时间序列数据进行预测,我们需要先对该数据进行分析,判断它到底是不是平稳性数据。
#使用ADF单位根检验法检验时间序列的稳定性
#先做一个编译器
def tagADF(t):
result = pd.DataFrame(index=[
"Test Statistic Value", "p-value", "Lags Used",
"Number of Observations Used",
"Critical Value(1%)", "Critical Value(5%)", "Critical Value(10%)"
],columns=['value']
)
result['value']['Test Statistic Value']=t[0]
result['value']['p-value']=t[1]
result['value']['Lags Used']=t[2]
result['value']['Number of Observations Used'] = t[3]
result['value']['Critical Value(1%)']=t[4]['1%']
result['value']['Critical Value(5%)']=t[4]['5%']
result['value']['Critical Value(10%)']=t[4]['10%']
return result
我们调用python的统计包
import statsmodels.api as sm
import statsmodels.tsa.stattools as sts
这里会涉及到迪基-福勒检验的概念,后面我会抽时间补充这块知识。
adf_Data = sts.adfuller(data.open)
tagADF(adf_Data)
我们的前提假设是该数据是非平稳性数据,从p-value上我们看出,有78.68%的可信度证明这条假设。
接下来利用差分法构建平稳时间序列。
diff = data[['open']].diff(1).dropna()
plt.figure(figsize=(10,6))
plt.plot(diff, label='Diff')
plt.legend(loc=0)
验证是否是平稳性数据,重复上面的动作
adf_Data1 = sts.adfuller(diff.iloc[:,0])
tagADF(adf_Data1)
p-value很小,我们的假设失效,因此,diff数据序列符合平稳性要求。
ic = sm.tsa.arma_order_select_ic(
diff,
max_ar=4,
max_ma=2,
ic='hqic'
)
计算结果,order=(1,1)
ARMAModel = sm.tsa.ARMA(diff, order).fit()
delta = ARMAModel.fittedvalues - diff
score = 1 - delta.var()/diff.var()
plt.figure(figsize=(10, 6))
plt.plot(diff, 'r', label='Raw')
plt.plot(ARMAModel.fittedvalues, 'g',label='ARMA Model')
plt.legend()
遇到一个很诡异的事情,
p = ARMAModel.predict(
start='2017-02-16',
end='2017-03-29'
)
跑了四遍代码,重启了两遍kernel,还是不行
试了一下数字index,将就着用吧
p = ARMAModel.predict(
start=98,
end=127
)
还原数据
def revert(diffValues, *lastValue):
for i in range(len(lastValue)):
result = [];
lv = lastValue[i];
for dv in diffValues:
lv = dv + lv
result.append(lv)
diffValues = result
return diffValues;
r = revert(p, data.open[-1])
plt.figure(figsize=(10,6))
plt.plot(r,'g',label='Predict')
plt.plot(testdata.open,'r',label='Raw')
plt.legend()
python 时间序列预测 币价_python时间序列预测股票走势相关推荐
- 平均股价的时间序列图形_数据可视化——pandas绘制股票走势图
python数据可视化工具除了matplotlib底层绘图包,还有在matplotlib基础上分装的seaborn绘图包,此外,数据分析报pandas也在matplotlib基础上分装内置了绘图功能. ...
- python股票数据分析_Python数据分析之股票走势
本篇文章讲了用python爬取六家公司的股票数据,分析股票走势.波动性.涨幅等,最终得出一点点结论. 一.包的安装 Python进行数据分析时,有几个包比较重要,所以需提前把这几个包安装好. pand ...
- python统计窗口函数怎么处理_python时间序列:移动窗口函数前篇
在移动窗口(可以带有指数衰减权数)上计算的各种统计函数也是一类常见于时间序列的数组变换.它们称为移动窗口函数,其中还包括那些窗口不定长的函数(如指数加权移动平均).跟其他统计函数一样,移动窗口函数也会 ...
- 亏的裤子都没了!才知道那些币价预测图,居然是这么搞出来的!
内容 | Rafael Schultze-Kraft 编译 | Aholiab 深谙币圈的你,对于那些出现在币价预测文章里的走势图想必不陌生.这些图往往旨在对未来n天的币价做预测,并声称是结果基于大数 ...
- python时间序列分析航空旅人_Python深度学习教程:LSTM时间序列预测小练习—国航乘客数量预测...
Python深度学习教程:LSTM时间序列预测小练习-国航乘客数量预测 参考数据: 数据一共两列,左边是日期,右边是乘客数量 对数据做可视化:import math import numpy as n ...
- python时间序列预测不连续怎么办_Python建模:预测周期性时间序列的正确姿势
公司平台上有不同的api,供内部或外部调用,这些api承担着不同的功能,如查询账号.发版.抢红包等等. 日志会记录下每分钟某api被访问了多少次,即一个api每天会有1440条记录(1440分钟),将 ...
- python预测算整理集合 python根据历史数据,预测未来数据 神经网络时间序列预测python 销售收入分析与预测 神经网络预测控制 Python 源码 4个lstm做数据预测的案例源代码
python 预测未来/神经网络/负荷/飞机零件故障/链路预测程序源码 1.python实现TensorFlow2股票股价预测(源码) 2.负荷预测(py thon例子,实时负荷预测,15分钟到4小时 ...
- 时序预测 | python实现仿生算法优化LSTM时间序列预测(全网最全仿生算法)
** 时序预测 | python实现仿生算法优化LSTM时间序列预测(全网最全仿生算法) ** 多变量/单变量预测程序 多变量/单变量预测程序 多变量/单变量预测程序 A ABC-LSTM--人工蜂群 ...
- Python 用ARIMA、GARCH模型预测分析股票市场收益率时间序列
最近我们被客户要求撰写关于时间序列的研究报告,包括一些图形和统计输出. 相关视频:时间序列分析:ARIMA GARCH模型分析股票价格数据 时间序列分析模型 ARIMA-ARCH GARCH模型分析股 ...
最新文章
- 什么是CommonJS?
- 基于Oracle11gR2 GRID的单实例库备份恢复
- 在进行正式托管之前,服务器托管用户需要做哪些准备?
- Zookeeper3.4.11+Hadoop2.7.6+Hbase2.0.0搭建分布式集群
- C# winform DataGridView 属性说明
- SAP Fiori应用没能从Fiori Launchpad启动的一个可能原因及分析过程
- CentOS 6.5 安装配置Tomcat7服务器
- python 消息框但不影响程序执行_还在用print()查找错误?日志消息不香嘛?| 原力计划...
- 14005.xilinx移植spi版本flash
- 关于触摸方向判断的bug
- python如何使用ppip安装xlwt_如何安装python xlwt
- udp java 实例_udp例子,javaudp简单实例分享
- android ppsspp 存档位置,小鸡模拟器游戏存档在哪个文件夹
- 批量创建文件夹-批处理(一)
- 一个完整的HTTP请求过程详细
- GNU autotools 下载和安装
- 两台计算机直接相连教程,两台电脑怎么连接一起_如何让两台电脑相连-win7之家...
- 缺少所需的CD/DVD驱动器设备驱动程序
- 计算机网络(3)--应用层协议--HTTP与HTTPS
- 学习跃动小球小游戏(cocos creator)
热门文章
- mysql variables 大记录 查询 慢_MySQL - 慢查询
- python找房源_python抓取贝壳房源信息
- linux进程调度周期,Linux进程组调度机制学习
- 【机器学习算法专题(蓄力计划)】三、机器学习中的概率论基础精讲
- 六十二、Js中的冒泡和捕获点击事件和Vue组件绑定原生事件
- 七十四、SpringBoot 的数据缓存cache(一)
- ​从熵不变性看Attention的Scale操作
- java实验3 2020.4.6
- 【深度学习】通过python画出loss曲线
- Python基础知识-优雅的with as语句