【大数据处理与可视化】七、时间序列分析

news2025/1/10 10:10:51

【大数据处理与可视化】七、时间序列分析

  • 实验目的
  • 实验内容
  • 实验步骤
    • 一、案例——股票收盘价分析
      • 1、读取数据,并转换成DataFrame对象展示
      • 2、将“交易日期”一列设置为行索引
      • 3、根据数据中“收盘价”一列的数据绘制一张折线图,以了解近些年来收盘价格的趋势
      • 4、通过降采样来减少一些数据量,将采样的频率由每周改成每天
      • 5、利用ARIMA模型将非平稳序列转换为平稳序列
        • 用图表表示当前的ACF系数
        • 用图表表示当前的PACF系数
        • 通过差分算法,将将非平稳序列转换为平稳序列
      • 6、使用时序图看一下ACF和PACF系数的变化
        • ACF系数
        • PACF系数
      • 7、绘制ARIMA模型
      • 8、使用2018年1月至2月的五粮液股票数据,对刚刚拟合后的ARIMA模型进行测试
  • 实验小结


实验目的

       能够熟练运用时间序列分析和ARIMA模型对数据进行分析。


实验内容

       股票收盘价分析:本实验以“五粮液”股票数据为例,结合时间序列及ARIMA模型对股票收盘价进行分析;使用2003至2018年的股票数据,其中2014-2017年的数据为训练数据,通过对这些数据的训练,实现对2018年1月至3月的收盘价进行预测,并将预测的结果与爬到的真实股价进行绘制对比。


实验步骤

一、案例——股票收盘价分析

1、读取数据,并转换成DataFrame对象展示

代码:

import pandas as pd
import datetime
import matplotlib.pylab as plt

from statsmodels.tsa.arima_model import ARIMA
from statsmodels.graphics.tsaplots import plot_acf,plot_pacf
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

data_path=open(r'D:\test.csv')
shares_info = pd.read_csv(data_path)
shares_info

截图:

在这里插入图片描述


2、将“交易日期”一列设置为行索引

代码:

dates = pd.to_datetime(shares_info['交易日期'].values,format='%Y%m%d')
shares_info = shares_info.set_index(dates)
shares_info

截图:

在这里插入图片描述


3、根据数据中“收盘价”一列的数据绘制一张折线图,以了解近些年来收盘价格的趋势

代码:

plt.plot(shares_info['收盘价'])
plt.title('股票每日收盘价')
plt.show()

截图:

在这里插入图片描述


4、通过降采样来减少一些数据量,将采样的频率由每周改成每天

代码:

shares_info_week = shares_info['收盘价'].resample('W-MON').mean()
train_data = shares_info_week['2014': '2017']
plt.plot(train_data)
plt.title('股票周收盘均值')
plt.show()

截图:

在这里插入图片描述


5、利用ARIMA模型将非平稳序列转换为平稳序列

用图表表示当前的ACF系数

代码:

acf = plot_acf(train_data,lags=20)
plt.title('股票指数的ACF')
plt.show()

截图:

在这里插入图片描述

用图表表示当前的PACF系数

代码:

pacf = plot_pacf(train_data,lags=20)
plt.title('股票指数的PACF')
plt.show()

截图:

在这里插入图片描述

通过差分算法,将将非平稳序列转换为平稳序列

代码:

train_diff=train_data.diff()
diff = train_diff.dropna()
plt.figure()
plt.plot(diff)
plt.title('一阶差分')
plt.show()

截图:

在这里插入图片描述


6、使用时序图看一下ACF和PACF系数的变化

ACF系数

代码:

acf_diff = plot_acf(diff,lags=20)
plt.title('一阶差分的ACF')
plt.show()

截图:

在这里插入图片描述

PACF系数

代码:

pacf_diff = plot_pacf(diff,lags=20)
plt.title('一阶差分的PACF')
plt.show()

截图:

在这里插入图片描述


7、绘制ARIMA模型

代码:

model = ARIMA(train_data, order =(1,1,1),freq = 'W-MON')
arima_result = model.fit()
arima_result.summary()

截图:

在这里插入图片描述


8、使用2018年1月至2月的五粮液股票数据,对刚刚拟合后的ARIMA模型进行测试

代码:

pred_vals = arima_result.predict('2018-01-01','2018-02-26',dynamic=True,typ='levels')
stock_forcast=pd.concat([shares_info_week,pred_vals],axis=1,keys=['original','predicted'])
plt.figure()
plt.plot(stock_forcast)
plt.title('真实值 vs 预测值')
plt.show()

截图:

在这里插入图片描述


实验小结

       通过本次实验,我能够熟练运用时间序列分析和ARIMA模型对数据进行分析。在实验过程中遇到了很多硬件或者是软件上的问题,请教老师,询问同学,上网查资料,都是解决这些问题的途径。最终将遇到的问题一一解决最终完成实验。
注意事项:
1、有疑问前,知识学习前,先用搜索。
2、熟读写基础知识,学得会不如学得牢。
3、选择交流平台,如QQ群,网站论坛等。
4、尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/582649.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Buck环路响应伯德图Mathcad绘制

一直不理解环路响应,调试也是应用参考电路,虽然自动化的课程忘的差不多了,但也不是偷懒的借口,直到昨天看到可以用Mathcad计算BUCK电路工作在电压控制的CCM连续模式,这是基于开关平均法推导出的小信号传递函数模型。原…

IDEA-报错 Failed to read artifact descriptor for xxx解决方法

项目场景: idea下载若依微服务的项目,配置环境产生了报错 问题描述 在idea里配置环境时maven报错Failed to read artifact descriptor for xxxx 原因分析: 在进行导包的时候maven和jdk版本导致的,更换版本之后大部分报错不存在…

分享一个科幻风的404

先看效果&#xff1a; 再看代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>404页面</title><script src"https://cdnjs.cloudflare.com/ajax/libs/three.js/r125/th…

PyTorch-Loss Function and BP

目录 1. Loss Function 1.1 L1Loss 1.2 MSELoss 1.3 CrossEntropyLoss 2. 交叉熵与神经网络模型的结合 2.1 反向传播 1. Loss Function 目的&#xff1a; a. 计算预测值与真实值之间的差距; b. 可通过此条件&#xff0c;进行反向传播。 1.1 L1Loss import torch from …

面试:Webpack的核心概念

基本概念 Entry&#xff1a;入口&#xff0c;Webpack 执行构建的第一步将从 Entry 开始&#xff0c;可抽象成输入。Module&#xff1a;模块&#xff0c;在 Webpack 里一切皆模块&#xff0c;一个模块对应着一个文件。Webpack 会从配置的 Entry 开始递归找出所有依赖的模块。Chu…

Socket(一)

文章目录 1. 简介2. 用Socket从服务器读取3. 用Socket写入服务器4. 构造和连接Socket4. 选择从哪个本地接口连接5. 构造但不连接 1. 简介 Socket允许程序员将网路连接看作是另外一个可以读/写字节的流&#xff0c;Socket对程序员掩盖了网络的底层细节&#xff0c;如错误检测、…

单例模式总结

(153条消息) 解决线程安全问题&&单例模式_Master_hl的博客-CSDN博客 饿汉式 在类初始化时直接创建实例对象&#xff0c;不管你是否需要这个对象都会创建 直接实例化饿汉式&#xff08;简洁直观&#xff09; 特点&#xff1a;构造器私有化、自行创建且用静态变量保…

基于改进ISODATA算法的负荷场景曲线聚类(matlab代码)

目录 1 主要内容 聚类中心选取步骤 核方法 2 部分代码 3 程序结果 4 程序链接 1 主要内容 程序复现文献《基于机器学习的短期电力负荷预测和负荷曲线聚类研究》第三章《基于改进ISODATA算法的负荷场景曲线聚类》模型&#xff0c;该方法不止适用于负荷聚类&#xff0c;同样…

六级备考19天|CET-6|翻译练习|真题·青藏铁路|9:30~11:20

目录 1 中文 2 练习 ​ 3 答案​ 4 解析 5 订正 复习 1 中文 2 练习 3 答案 4 解析 铁路 railway/railroad 全长 with a total length of 其中xxx在海拔4000多米以上&#xff0c;非限制性定语从句&#xff0c;960 kilometers of which are over 400 me…

人工智能电话客服机器人-提升效率节约人力成本

随着科技的不断发展&#xff0c;人工智能技术已经开始广泛应用于各个领域。其中&#xff0c;人工智能电话客服机器人已经成为企业提升效率、节约人力成本的重要工具。本文将从以下几个方面探讨人工智能电话客服机器人的优势和应用。 一、人工智能电话客服机器人的优势 1.24小时…

一体化校园水电管理智能系统的实际应用

摘 要&#xff1a;针对传统的校园水电管理方法管理能力低的情况&#xff0c;提出了一种基于一体化平台的校园水电管理智能管控系统设计。通过中间件设计和显示模块设计对校园的水电情况进行采集与显示&#xff0c;设定水电用量标准&#xff0c;在水电用量超出设定标准后&#x…

开始学习使用 turtlesim, ros2, and rqt

目标&#xff1a;使用turtlesim软件包和rqt工具 Background Turtlesim是一个用于学习ROS 2的轻量级模拟器。它说明了ROS 2在最基本的层面上所做的事情&#xff0c;让我们学习知道以后你将如何处理真实的机器人或机器人模拟。 ros2工具是用户如何管理、检查和与ROS系统交互的…

涨粉秘籍 | 如何快速涨粉并转化为铁粉?

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

【封装那些事】 缺失封装

缺失封装 没有将实现变化封装在抽象和层次结构中时&#xff0c;将导致这种坏味。 表现形式通常如下: 客户程序与其需要的服务变种紧密耦合&#xff0c;每当需要支持新变种或修改既有变种时&#xff0c;都将影响客户程序。每当需要在层次结构中支持新变种时&#xff0c;都添加…

港联证券投资前瞻:核电订单重回历史高位 C919圆满完成商业首航

上周五&#xff0c;沪指盘中弱势震荡下探&#xff0c;午后反弹拉升&#xff0c;科创50指数表现强势。截至收盘&#xff0c;沪指涨0.35%报3212.50点&#xff0c;深成指涨0.12%报10909.65点&#xff0c;创业板指跌0.66%报2229.27点&#xff0c;科创50指数涨1.66%&#xff1b;两市…

干货!详解playwright实现自动等待的原理

playwright在执行操作之前对元素执行一系列可操作性检查&#xff0c;以确保这些行动按预期运行。它会自动等待&#xff08;auto-wait&#xff09;所有相关检查通过&#xff0c;然后才执行请求的操作。如果所需的检查未在给定的范围内通过timeout&#xff0c;则操作将失败并显示…

vue项目中详情页向下滚动,导航选中;点击导航,详情页跳到指定区域

需求1&#xff1a;滚轮向下滚动的时候&#xff0c;导航选中 需求2&#xff1a;点击导航的时候&#xff0c;会跳转到目标区域 在生命周期中获取屏幕的高度 mounted() {//获取屏幕高度console.log(document.documentElement.clientHeight);//667}, 这里就考虑到项目优化防抖与…

2023年上半年软件设计师考试中级真题答案+解析(详细版)

目录 背景过程计算机组成原理产权保护结构化开发方法 总结 背景 2023年软考讲解 软考&#xff08;软件技术人员职业资格考试&#xff09;是中国的一项职业资格考试&#xff0c;主要针对软件行业从业人员。软考的主要目标是评估考生在软件开发、软件测试、软件项目管理等方面的…

音乐小白乐器选择,如何学一手才艺,推荐尤克里里

乐器难度说明 注意&#xff1a;这里的难度说明是音准的难度&#xff0c;就是能不能发出标准的声音 乐器按照演奏方式分类&#xff0c;分为 演奏方式乐器举例难度等级难度说明敲击木鱼&#xff0c;架子鼓&#xff0c;钢琴1敲击乐是音最准的&#xff0c;敲哪个地方就发什么音&…

MongoDB学习笔记三

目录 1.数据库增删 1.1数据库创建 1.2数据库删除 2.集合增删 2.1创建集合 2.2删除集合 3.文档增删改查 3.1查询文档 3.2创建文档 3.3删除文档 3.4更新/修改文档 1.数据库增删 1.1数据库创建 数据库创建语法格式&#xff1a; use DatabaseName 在mongodb中使用use与在m…