arima预测python程序(python做arima模型预测)

本文目录一览:

arima模型python 怎么看平稳性

时间序列分析(一) 如何判断序列是否平稳

序列平稳不平稳,一般采用两种方法:

第一种:看图法

图是指时序图,例如(eviews画滴):

分析:什么样的图不平稳,先说下什么是平稳,平稳就是围绕着一个常数上下波动。

看看上面这个图,很明显的增长趋势,不平稳。

第二种:自相关系数和偏相关系数

还以上面的序列为例:用eviews得到自相关和偏相关图,Q统计量和伴随概率。

分析:判断平稳与否的话,用自相关图和偏相关图就可以了。

平稳的序列的自相关图和偏相关图不是拖尾就是截尾。截尾就是在某阶之后,系数都为 0 ,怎么理解呢,看上面偏相关的图,当阶数为 1 的时候,系数值还是很大, 0.914. 二阶长的时候突然就变成了 0.050. 后面的值都很小,认为是趋于 0 ,这种状况就是截尾。再就是拖尾,拖尾就是有一个衰减的趋势,但是不都为 0 。

自相关图既不是拖尾也不是截尾。以上的图的自相关是一个三角对称的形式,这种趋势是单调趋势的典型图形。

下面是通过自相关的其他功能

如果自相关是拖尾,偏相关截尾,则用 AR 算法

如果自相关截尾,偏相关拖尾,则用 MA 算法

如果自相关和偏相关都是拖尾,则用 ARMA 算法, ARIMA 是 ARMA 算法的扩展版,用法类似 。

不平稳,怎么办?

答案是差分

还是上面那个序列,两种方法都证明他是不靠谱的,不平稳的。确定不平稳后,依次进行1阶、2阶、3阶…差分,直到平稳位置。先来个一阶差分,上图。

从图上看,一阶差分的效果不错,看着是平稳的。

ARIMA模型用Python分析需要安装什么库

需要安装requests库

1.requests库

用一句话总结就是:每个Python程序员都应该有它,爬取数据必备!

2.scrapy

提取结构化数据而创建的一个爬虫框架,是目前python社区最流行的爬虫框架之一

3.wxPython

Python的一个GUI(图形用户界面)工具

4.BeautifulSoup

xml和html的解析库对于新手非常有用

5.Pygame

哪个程序员不喜欢玩游戏和写游戏?这个库会让你在开发2D游戏的时候如虎添翼

6.Pyglet

3D动画和游戏开发引擎

7.NumPy

为Python提供了很多高级的数学方法

8.pandas

在数据操作和数据分析方面,Pandas绝无敌手。

9.Matplotlib

Matplotlib主要的作用,是用来生成绘图,直方图,功率谱,条形图,错误图,散点图等,而Matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。

用Python预测「周期性时间序列」的正确姿势

公司平台上有不同的api,供内部或外部调用,这些api承担着不同的功能,如查询账号、发版、抢红包等等。日志会记录下每分钟某api被访问了多少次,即一个api每天会有1440条记录(1440分钟),将每天的数据连起来观察,有点类似于股票走势的意思。我想通过前N天的历史数据预测出第N+1天的流量访问情况,预测值即作为合理参考,供新一天与真实值做实时对比。当真实流量跟预测值有较大出入,则认为有异常访问,触发报警。

我放了一份样例数据在data文件夹下,

看一下数据大小和结构

画图看一下序列的走势:(一些画图等探索类的方法放在了test_stationarity.py 文件中,包含时间序列图,移动平均图,有兴趣的可以自己尝试下)。

看这糟心的图,那些骤降为0的点这就是我遇到的第一个坑,我当初一拿到这份数据就开始做了。后来折腾了好久才发现,那些骤降为0的点是由于数据缺失,ETL的同学自动补零造成的,沟通晚了(TДT)。

把坑填上,用前后值的均值把缺失值补上,再看一眼:

发现这份数据有这样几个特点,在模型设计和数据预处理的时候要考虑到:

前六天的数据做训练,第七天做测试集。

消除数据的毛刺,可以用移动平均法,我这里没有采用,因为我试过发现对于我的数据来说,移动平均处理完后并不能使数据平滑,我这里采用的方法很简单,但效果还不错:把每个点与上一点的变化值作为一个新的序列,对这里边的异常值,也就是变化比较离谱的值剃掉,用前后数据的均值填充,注意可能会连续出现变化较大的点:

平滑后的训练数据:

采用statsmodels工具包:

对分解出来的趋势部分单独用arima模型做训练:

预测出趋势数据后,加上周期数据即作为最终的预测结果,但更重要的是,我们要得到的不是具体的值,而是一个合理区间,当真实数据超过了这个区间,则触发报警,误差高低区间的设定来自刚刚分解出来的残差residual数据:

预测并完成最后的加法处理,得到第七天的预测值即高低置信区间:

对第七天作出预测,评估的指标为均方根误差rmse,画图对比和真实值的差距:

可以看到,均方根误差462.8,相对于原始数据几千的量级,还是可以的。测试数据中的两个突变的点,也超过了置信区间,能准确报出来。

前文提到不同的api形态差异巨大,本文只展示了一个,我在该项目中还接触了其他形态的序列,有的有明显的上升或下降趋势;有的开始比较平缓,后面开始增长… … ,但是都属于典型的周期性时间序列,它的核心思想很简单:做好分解,做好预测结果的还原,和置信区间的设置,具体操作可根据具体业务逻辑做调整,祝大家建模愉快:-D。

原创文章,作者:KYB9G,如若转载,请注明出处:https://www.506064.com/n/129604.html

(0)
KYB9GKYB9G
上一篇 2024-10-03
下一篇 2024-10-03

相关推荐

  • php常用类下载,php下载器

    本文目录一览: 1、php使用pclzip类实现文件压缩的方法(附pclzip类下载地址) 2、求pHP 常用类大全 3、能给个很好的PHP超大文件下载类么 支持300m以上的 谢…

    编程 2024-10-04
  • python基础阶段(python基础进阶)

    本文目录一览: 1、学会Python需要多长时间? 2、python零基础怎么学 3、零基础学Python,从入门到精通需要多长时间 学会Python需要多长时间? 一周或者一个月…

    编程 2024-10-03
  • Mongoor框架的全面解析

    Mongoor是一个基于Node.js的对象文档映射(ODM)框架,它使开发人员可以通过JavaScript代码对MongoDB数据库进行操作。本文将从多个方面对Mongoor框架…

    编程 2024-10-04
  • 包含皆用python实现的词条

    本文目录一览: 1、如何利用python语言实现机器学习算法 2、用Python如何实现呢? 3、用 Python 可以来做什么? 如何利用python语言实现机器学习算法 基于以…

    编程 2024-10-03
  • java下载地址,下载文件java

    本文目录一览: 1、java jdk怎么从官网下载 2、Java默认下载位置在哪 3、java要下载两次吗 4、怎么下载java java jdk怎么从官网下载 最后下载地址为: …

    编程 2024-10-03
  • Python中的image.save()

    一、概述 Python的image.save()是一个用于保存图像文件的函数,它是Python Imaging Library (PIL) 中的一个方法。该函数能够以多种不同的图像…

    编程 2024-10-04
  • 包含c语言基础知识的词条

    本文目录一览: 1、c语言的基础知识入门有哪些? 2、c语言基础知识必背有哪些? 3、C语言基础知识点 4、c语言基础知识必背是什么? 5、C语言基础知识 c语言的基础知识入门有哪…

    编程 2024-10-04
  • cjyjsgqp的简单介绍

    本文目录一览: 1、苹果序列号开头含义 2、机动车gqp是什么意思? 3、西子绪文集百度云网盘 4、求韩剧爱的迫降百度云网盘? 5、平凡之路mp3免费下载 苹果序列号开头含义 开头…

  • 安卓录音权限申请指南

    一、申请录音权限的必要性 在安卓系统中,录音权限是一项非常敏感的权限。应用想要使用设备的录音功能,需要先向用户申请相应的权限,否则将无法使用此功能。申请权限的目的是为了保障用户的隐…

    编程 2024-10-08
  • classesjss3(js es3)

    本文目录一览: 1、黑马!2月上海还有3块涉宅地待拍,最抢手的竟然是这里? 2、【响应式网站】编写响应式网页,是需要必须会html5,csss3,js,这几种简单的技术,还需要会其…

    编程 2024-10-03

发表回复

登录后才能评论