答:
计算不同模型的AIC,最低的就是相对最优的时序模型。
剩余五个问题改天继续解答,如果大家还有疑问,可以继续评论区留言,谢谢🤝。
PPS:
个人知识有限,也许文中存在理解错误,也欢迎大家捉虫! 😁
参考资料:
Stationarity and detrending (ADF/KPSS)
negative-values-in-time-series-forecast
Unit root
最近又有好些朋友来咨询掌柜关于使用ARIMA模型对时间序列进行预测的????这篇博客 中遇到了一些问题,这里掌柜再次收集大家的问题来一一解答。PS: 本博客假定大家已经具备ARIMA模型的基础知识!!!问题汇总如下:怎么判断我的数据是否适合ARIMA模型呢?得到的时序预测图是负值,明显不对。怎样保证为正值?想要最后预测的数据,而不是预测的平稳数据,怎么拿到?想获取预测点的值应该怎么做的,没有API接口呀,可以告知一下吗?不需要做ADF检验吗?怎么确定ARMA的最优模型?还原到原始时间序列
严平稳与弱平稳:
**严平稳:分布不随时间的改变而改变。**如白噪声(正态),期望始终为0,方差为1。
**弱平稳:期望与相关系数(依赖性)不变。**未来某时刻的t值Xt就要依赖于它的过去信息,所以需要依赖性。
仔细看,阴影部分是预测后的结果走势,这里是蓝色的直线???
是不是很奇怪,为何这里会产生一条直线?
起初掌柜也很是困惑,于是向这位朋友拿了全部数据来进行实测也是得到同样的结果。。。后来掌柜搜遍全网后研究一番,原来是这么回事!下面开始进行讲解。
首先,使用ARIMA模型进行时序预测为何会出现是一条直线?
解答:简单来说是因为你的时序数据中存在“季节周期性”(注:这里的季节性是泛指)特征。所以模型无
NotImplementedError: statsmodels.tsa.arima_model.ARMA and statsmodels.tsa.arima_model.ARIMA havebe
R2 —— 评估回归的方法
回归是将函数拟合到数据的方法。例如,我们能够通过卫星统计沃尔玛门口停车场的汽车数量,也可以通过其收益报告了解沃尔玛在对应时段的销售额。于是,你想建立一个汽车数量与沃尔玛季度收益的函数关系,以便于您炒股。但是,在建立了汽车数量与季度收益的函数关系以后,我们应该如何评判你和出来的函数关系的优劣呢?常用的度量拟合效果的参数是决定系数R2。本文将详细介绍R2的计算原理及负值产生的原因分析:
什么是R2?
R2用于比较回归模型的预测误差与简单的Y=样本点平
因为之前在学数据分析课程的时候老师讲到时间序列这里,但只是简单的对这个经典的时间序列案例介绍了一下,并没有涉及对差分次数d的查找、找ARIMA模型的p、q值和模型检验 这三个步骤。
后来我搜寻了整个网络,终于结合各个文章的解释,对代码进行了重新的梳理,下面就是详细的整个代码过程(如果问题,欢迎提出来指正!????):
# -*- coding: utf-8 -*-
# 用 ARIMA 进行时间序列预测
原文作者:Jason Brownlee
原文地址:https://machinelearningmastery.com/save-arima-time-series-forecasting-model-python/
译者微博:@从流域到海域
译者博客:blog.csd
参考了网上的资料,虽然不太明白是什么意思,但是这样的模型不能用。
参考:http://stackoverflow.com/questions/15054800/auto-arima-forecast-with-multivariate-xreg-unexpected-results/15056937#15056937
转载于...
转载自 https://mp.weixin.qq.com/s/g6xwiRYhNyulwLlBYLh-4Q?scene=25
仅仅用于学习方面,如有侵权,请联系 root@smileyan.cn
「时间序列」是指某一个指标按照时间的统计或者观测而成的数列。比如,在运维的领域中,某主机每秒的CPU使用率、某业务每分钟的请求数量等,都可以形成一条时间序列;「异常检测」是指对反常的、和历史不同的行为模式识别。如某台一直空闲的机器,CPU使用率突然飙升至100%、某系统在本应业务繁忙的时间段请求数量降.
ARIMA模型
前面讲到的指数平滑模型,对于预测误差要求是无相关性并且结果是满足以0为中心的正态分布的。对时间序列作分析是,有些情况下,把相关性考虑进去能做更好的预测。ARIMA模型就包含了对时间序列的无规律部分做预测的模型,在无规律部分,允许出现非零相关性。
对时间序列做差分
ARIMA模型是针对稳定时间序列的。若是你的分析对象是非稳定的时间序列,那么你首先就需要对时间序列做差分,直
ARIMA模型是一种常用的时间序列分析方法,它可以用来预测未来的数据趋势。ARIMA模型包括自回归(AR)、差分(I)和移动平均(MA)这三个部分。
在Python中,我们可以使用statsmodels库来实现ARIMA模型的拟合和预测。下面是一个简单的ARIMA模型的实现示例:
```python
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.arima_model import ARIMA
# 读取数据
data = pd.read_csv('data.csv', index_col='date', parse_dates=True)
# 绘制原始数据图像
plt.figure(figsize=(15, 5))
plt.plot(data)
plt.title('Original Data')
plt.show()
# 训练ARIMA模型
model = ARIMA(data, order=(1, 1, 1))
result = model.fit(disp=-1)
# 预测未来数据
forecast = result.forecast(steps=30)
# 绘制预测结果图像
plt.figure(figsize=(15, 5))
plt.plot(data, label='Original Data')
plt.plot(forecast, label='Predicted Data')
plt.title('Predicted Data')
plt.legend()
plt.show()
在上面的代码中,我们首先读取了数据并绘制了原始数据的图像。然后使用ARIMA模型训练数据,并使用已训练的模型预测未来30个时间点的数据。最后,将原始数据和预测结果绘制在同一个图像中进行对比。
需要注意的是,ARIMA模型的参数需要根据数据的特征进行调整。在上面的代码中,我们使用了order=(1, 1, 1)来初始化ARIMA模型,这个参数需要根据实际情况进行调整。
如何解决报错ValueError: Input contains NaN, infinity or a value too large for dtype('float64')的问题
62692