Python时间序列--股票预测(七)

2023-11-02

1.数据获取

import pandas as pd
import datetime
import pandas_datareader.data as web
import matplotlib.pyplot as plt
import seaborn as sns
from statsmodels.tsa.arima_model import ARIMA
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
#可以适用接口从雅虎获取股票数据
start=datetime.datetime(2000,1,1)
end=datetime.datetime(2015,12,31)
prices=web.DataReader('002578.SZ','yahoo',start,end)
prices.head()
#存入本地
prices.to_csv('data/yahoo.csv')
#从本地读取数据  本文用的是本地数据,未用接口数据
stock = pd.read_csv('data/yahoo.csv', index_col=0, parse_dates=[0])
stock.head(10)

2.训练数据

#下采样  日频数据太多
stock_week = stock['Close'].resample('W-MON').mean()
#训练数据
stock_train = stock_week['2000':'2015']

3.数据平稳性检测

#绘出数据折线图,查看数据是否平稳
stock_train.plot(figsize=(12,8))
plt.legend(bbox_to_anchor=(1.25, 0.5))
plt.title("Stock Close")
sns.despine()

在这里插入图片描述
从图中可以很明显看出数据是不平稳的。

4.一阶差分

stock_diff = stock_train.diff()
stock_diff = stock_diff.dropna()

plt.figure()
plt.plot(stock_diff)
plt.title('一阶差分')
plt.show()

在这里插入图片描述ACF&PACF确定q、p

acf = plot_acf(stock_diff, lags=20)
plt.title("ACF")
acf.show()

在这里插入图片描述

pacf = plot_pacf(stock_diff, lags=20)
plt.title("PACF")
pacf.show()

在这里插入图片描述

一阶差分后,ACF&PACF基本上都落在了0轴上,表明一阶差分就够用了。并且可确定pqd的的取值都为1。

5.模型训练

model = ARIMA(stock_train, order=(1, 1, 1),freq='W-MON')
model_pred = model.fit()

6.残差检测

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

在这里插入图片描述Q-Q图显示符合标准正态分布,模型可用来预测。

7.预测

pred = result.predict('20140609', '20160701',dynamic=True, typ='levels')
plt.figure(figsize=(6, 6))
plt.xticks(rotation=45)
plt.plot(pred)
plt.plot(stock_train)

在这里插入图片描述
股票预测一般是不能准确是预测具体的值,但可以预测走势。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python时间序列--股票预测(七) 的相关文章

  • 在matlab中寻找曲线上离原点距离最近的点的坐标的思考

    syms y x linspace 2 2 200 n length x g for i 1 n a x i t vpa solve y 1 a 2 y 2 sin a cos y y 3 g g t end 对于这个代码主要是想算出对应x
  • 第六章 存储器层次结构 第一节 存储技术之磁盘存储

    磁盘能比RAM存储更大的信息 但是读取速度上比DRAM慢了10万倍 比SRAM慢了100万倍 1 磁盘构造 磁盘是由盘片 platter 构成 盘片中央有一个可以旋转的主轴 它使得盘片以固定的旋转速率旋转 每个盘片有两面或者称为表面 表面覆
  • JDK开发环境配置

    JRE Java Runtime Environment Java运行环境 用来运行JAVA程序 JDK Java Development Kit Java开发工具包 包含JRE JDK 是整个Java的核心 包括了Java运行环境 Jav
  • 深度神经网络加速库cuDNN简介

    深度神经网络加速库cuDNN简介 简介 NVIDIA CUDA深度神经网络库 cuDNN CUDA Deep Neural Network 是用于深度神经网络的 GPU 加速基元库 它提供了 DNN 应用程序中经常出现的例程的高度调整实现
  • JVM面试题

    JVM相关 jvm详解 GC 堆内存参数调优 春 的博客 CSDN博客 jvm堆内存调优 常见JVM面试题及答案整理 Java程序员 张凯的博客 CSDN博客 jvm面试题 JVM的模块 常见问题 JVM的理解 java8虚拟机和之前的变化
  • 表白代码,HTML

    1 在电脑桌面右击鼠标选择新建 文本文档 2 并命名为 biaobai txt 3 打开并且把一下代码复制并粘贴到biaobai txt
  • 【华为OD机试】TLV解析Ⅰ(C++ Python Java)2023 B卷

    时间限制 C C 1秒 其他语言 2秒 空间限制 C C 262144K 其他语言524288K 64bit IO Format lld 语言限定 C clang11 C clang 11 Pascal fpc 3 0 2 Java jav
  • coco数据集

    1 win10安装cocoapi pip install git https github com philferriere cocoapi git subdirectory PythonAPI win10安装cocoapi 君莫笑 CSD
  • [计算机毕业设计]MATLAB的人脸识别

    前言 大四是整个大学期间最忙碌的时光 一边要忙着准备考研 考公 考教资或者实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生级别难度的 对本科同学来说是充满挑战 为帮助大
  • BIT Python科学计算三维可视化(一)Tvtk库使用

    文章目录 一 课程来源 二 软件安装 三 Tvtk库使用 1 创建长方体数据源 2 Tvtk库中的其他数据源 3 Tvtk库中显示三维对象 4 Tvtk中的管线技术 1 可视化管线 2 图形管线 4 使用ivtk观察管线 5 Tvtk数据集
  • C++STL中set不存在对应元素时set.find的返回值

    先说结论 用find函数查找不存在的元素时 返回和 end 方法一样的迭代器 1 include
  • ArrayList的用法

    最近做个项目 需要用到ArrayList或List
  • 瑟瑟发抖吧~OpenAI刚刚推出王炸——引入ChatGPT插件,开启AI新生态

    5分钟学会使用ChatGPT 插件 ChatGPT plugins ChatGPT生态建设的开端 ChatGPT插件是什么 OpenAI最新官方blog资料表示 已经在ChatGPT中实现了对插件的初步支持 插件是专门为以安全为核心原则的语
  • Eigen源码阅读——杂文

    目录 README md signature of eigen3 matrix library eigen3 pc in pkg config配置文件 INSTALL CTestCustom cmake in CTest测试 COPYING
  • VS2015 经常卡顿的解决办法

    文章目录 方法1 关闭codelens 方法2 关闭视觉效果 方法3 改变并发编译数 方法4 源代码管理插件选 无 方法5 关闭 IntelliTrace 方法1 关闭codelens 工具 选项 搜索codelens 取消勾选 重启VS
  • 路由器虚拟服务器的设置

    在路由器 帐号和密码登录之后 路由器外网IP 虚拟服务器定义了广域网服务端口和局域网服务器之间的关系 所有对该广域网服务端口的访问都会被重定位给通过IP地址指定的局域网网络服务器 8888是80 你本机的端口 192 168 1 108 是
  • 堆的简单理解和代码实现

    目录 1 堆的概念及结构 1 1概念 1 2性质 2 堆的实现 2 1定义堆 2 2向下调整 2 3向上调整 2 3 2两种建堆方式时间复杂度的比较 2 4堆的初始化 2 5堆的销毁 2 6堆的插入操作 2 7堆的删除操作 2 8获取堆顶元
  • Python输出csv文件中文乱码及解决

    如图所示 python爬取信息后保存为csv格式 打开后中文乱码 原因是编码的缘故 CSV保存是编码格式ANSI 解决办法是以记事本方式打开CSV文件 然后另存为时编码选择UTF 8进行保存即可 失败了 换种方法 df to csv dat

随机推荐