当前位置:首页 » 编程语言 » pythonarima预测

pythonarima预测

发布时间: 2022-12-23 02:42:32

1. python arima是哪个包

用forecast包中的auto.arima自动拟合Arima模型会显示一串结果,最后一个结果就是 Best model: ARIMA(0,0,0)(0,1,0)[12] with drift,说明该结果是最好的拟合结果。结果说明一个AR(0),MA(0)和季节差分一次的Arima模型。

2. 如何用arima(0.1.1)(1.1.1)模型进行预测和模型检验r程序

arima模型全称为差分自回归移动平均模型:
arima模型是由博克思和詹金斯于70年代初提出的一着名时间序列预测方法,所以又称为box-jenkins模型、博克思-詹金斯法。
arima(p,d,q)称为差分自回归移动平均模型,AR是自回归,p为自回归项;MA为移动平均,q为移动平均项数,d为时间序列成为平稳时所做的差分次数。
arima模型是指将非平稳时间序列转化为平稳时间序列,然后将因变量仅对它的滞后值以及随机误差项的现值和滞后值进行回归所建立的模型。
arima模型根据原序列是否平稳以及回归中所含部分的不同,包括移动平均过程、自回归过程、自回归移动平均过程以及ARIMA过程。
arima模型将预测对象随时间推移而形成的数据序列视为一个随机序列,用一定的数学模型来近似描述这个序列。
这个模型一旦被识别后就可以从时间序列的过去值及现在值来预测未来值。
现代统计方法、计量经济模型在某种程度上已经能够帮助企业对未来进行预测。

3. Arima实战:利用Python中pyramid-arima库进行时间序列预测

ARMA, ARIMA, SARIMA assumptions:
▪ Time-series data is stationary.
▪ If nonstationary, remove trend, seasonality, apply differencing, and so on.
▪ Remember that stationary data has no trend, seasonality, constant mean, and
constant variance.
▪ Therefore, the past is assumed to represent what will happen in the future
in a probabilistic sense.

pyramid-arima 的安装请见 https://pypi.org/project/pyramid-arima/
(我只在linux系统上成功安装了,windows上没有成功)

函数参数介绍请见 https://www.alkaline-ml.com/pmdarima/index.html

Github上的例子请见 https://github.com/tgsmith61591/pmdarima

pm.auto_arima可以自动搜索出arima模型中的(q, d, p)参数

参考 https://blog.csdn.net/HHXUN/article/details/79858672

利用 model.predict() 函数预测

或更优的,使用 model.update() 函数,不断用新观测到的 value 更新模型,以达到更长时间的预测。

2.4 模型评价

4. (四)ARIMA模型方法

1.ARIMA模型的基本思想

将预测对象随时间推移而形成的数据序列视为一个随机序列,对其进行差分整合后用自回归加移动平均来拟合,并据其对时间序列的过去值及未来值进行预测的数学方法,即ARIMA模型的基本思想。

ARIMA模型一般表示为ARIMA(p,d,q),其数学表达式为

φp(B)(1-B)dytq(B)εt, (7-9)

式中:φp(B)=1-φ1B-…-φpBp,θq(B)=1-θ1B-…-θqBq

AR是自回归,p为自回归项,MA为移动平均,q为移动平均项数,d为差分次数;yt是时间序列,B是后移算子,φ1,…,φp为自回归系数,θ1,…,θq为移动回归系数,{εt} 是白噪声序列。

2.ARIMA模型预测基本程序

(1)平稳性识别

以自相关函数和偏自相关函数图等来判定数列是否为平稳型。

(2)对非平稳序列进行平稳化处理

存在增长或下降趋势,需进行差分处理,直到处理后的数据的自相关函数值和偏相关函数值显着地等于零。

(3)根据时间序列模型的识别规则建立相应模型

据序列的自相关和偏相关函数图判定模型的类型及p与q的阶数。

在自相关和偏相关函数图上,函数在某一步之后为零,称为截尾;不能在某一步之后为零,而是按指数衰减或正负相间递减的形式,称为拖尾。

由自相关函数和偏相关函数是截尾还是拖尾及其期次可进行模型判别,标准见表7-8。

表7-8 模型参数的ACF-PACF图判别的标准

(4)假设检验,诊断残差序列是否为白噪声

用χ2检验检测所估计模型的白噪声残差,其残差应是一随机序列,否则进行残差分析,必要时需重新确定模型。

(5)预测分析

利用已通过检验的模型进行预测分析,得到x(t)在t+1期,即1期以后的预测值,记这个预测值为x(t+1),称它为未来第1期的预测值。

5. ARIMA模型

我看过的对ARMIA模型最简单明了的文章:https://www.cnblogs.com/bradleon/p/6827109.html

1,什么是 ARIMA模型

ARIMA模型的全称叫做自回归移动平均模型,全称是(ARIMA, Autoregressive Integrated Moving Average Model)。也记作ARIMA(p,d,q),是统计模型(statistic model)中最常见的一种用来进行时间序列 预测的模型。

1.1. ARIMA的优缺点

优点: 模型十分简单,只需要内生变量而不需要借助其他外生变量。(所谓内生变量指的应该是仅依赖于该数据本身,而不像回归需要其他变量)

缺点:

1.要求时序数据是稳定的(stationary),或者是通过差分化(differencing)后是稳定的。

2.本质上只能捕捉线性关系,而不能捕捉非线性关系。

注意,采用ARIMA模型预测时序数据,必须是稳定的,如果不稳定的数据,是无法捕捉到规律的。比如股票数据用ARIMA无法预测的原因就是股票数据是非稳定的,常常受政策和新闻的影响而波动。

1.2. 判断是时序数据是稳定的方法。

严谨的定义: 一个时间序列的随机变量是稳定的,当且仅当它的所有统计特征都是独立于时间的(是关于时间的常量)。

判断的方法:

稳定的数据是没有趋势(trend),没有周期性(seasonality)的; 即它的均值,在时间轴上拥有常量的振幅,并且它的方差,在时间轴上是趋于同一个稳定的值的。

可以使用Dickey-Fuller Test进行假设检验。

1.3 ARIMA的参数与数学形式

ARIMA模型有三个参数:p,d,q。

p--代表预测模型中采用的时序数据本身的滞后数(lags) ,也叫做AR/Auto-Regressive项

d--代表时序数据需要进行几阶差分化,才是稳定的,也叫Integrated项。

q--代表预测模型中采用的预测误差的滞后数(lags),也叫做MA/Moving Average项

4.ARIMA模型的几个特例

1.ARIMA(0,1,0) = random walk:

当d=1,p和q为0时,叫做random walk,如图所示,每一个时刻的位置,只与上一时刻的位置有关。

预测公式如下:Yˆt=μ+Yt−1

6. 如何使用Python超参数的网格搜索ARIMA模型

可以在Python中将其实现为一个新的独立函数,名为evaluate_arima_model(),它将时间序列数据集作为输入,以及具有p,d和q参数的元组作为输入。
数据集分为两部分:初始训练数据集为66%,测试数据集为剩余的34%。

7. arima模型python 怎么看平稳性

时间序列分析(一) 如何判断序列是否平稳
序列平稳不平稳,一般采用两种方法:
第一种:看图法
图是指时序图,例如(eviews画滴):

分析:什么样的图不平稳,先说下什么是平稳,平稳就是围绕着一个常数上下波动。
看看上面这个图,很明显的增长趋势,不平稳。

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

分析:判断平稳与否的话,用自相关图和偏相关图就可以了。
平稳的序列的自相关图和偏相关图不是拖尾就是截尾。截尾就是在某阶之后,系数都为 0 ,怎么理解呢,看上面偏相关的图,当阶数为 1 的时候,系数值还是很大, 0.914. 二阶长的时候突然就变成了 0.050. 后面的值都很小,认为是趋于 0 ,这种状况就是截尾。再就是拖尾,拖尾就是有一个衰减的趋势,但是不都为 0 。
自相关图既不是拖尾也不是截尾。以上的图的自相关是一个三角对称的形式,这种趋势是单调趋势的典型图形。

下面是通过自相关的其他功能
如果自相关是拖尾,偏相关截尾,则用 AR 算法
如果自相关截尾,偏相关拖尾,则用 MA 算法
如果自相关和偏相关都是拖尾,则用 ARMA 算法, ARIMA 是 ARMA 算法的扩展版,用法类似 。
不平稳,怎么办?
答案是差分
还是上面那个序列,两种方法都证明他是不靠谱的,不平稳的。确定不平稳后,依次进行1阶、2阶、3阶...差分,直到平稳位置。先来个一阶差分,上图。

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

8. 用Python预测“周期性时间序列”的正确姿势

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

我放了一份样例数据在data文件夹下,
看一下数据大小和结构

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

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

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

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

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

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

平滑后的训练数据:

采用statsmodels工具包:

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

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

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

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

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

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

9. 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绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。

10. 如何使用ML预测Python中的时间序列数据

通过numpy转换:

  • import numpy as np

  • series['maxsal']= series['maxsal'].astype(np.float64)

  • series['minsal']= series['minsal'].astype(np.float64)

  • 在调用ARIMA之前,加入上面两行。

  • model = ARIMA(series, order=(1,1,0))

  • 某些情况下,也可以选择直接执行下面这行代码:

  • series = series.astype(np.float64)

热点内容
网吧u盘拒绝访问 发布:2025-05-16 14:13:50 浏览:260
无线网检查网络配置是怎么回事 发布:2025-05-16 14:04:03 浏览:220
网络爬虫python代码 发布:2025-05-16 14:03:26 浏览:516
汽车小组件怎么弄到安卓桌面 发布:2025-05-16 13:51:12 浏览:220
linuxg编译器下载 发布:2025-05-16 13:50:58 浏览:776
centosc编译器 发布:2025-05-16 13:50:17 浏览:948
安卓手机如何变换桌面 发布:2025-05-16 13:39:33 浏览:515
sql存储过程命令 发布:2025-05-16 13:17:54 浏览:146
用纸做解压小玩具西瓜 发布:2025-05-16 13:04:09 浏览:936
局域网xp无法访问win7 发布:2025-05-16 13:03:58 浏览:943