当前位置: 移动技术网 > IT编程>脚本编程>Python > python+ARIMA进行时间序列处理

python+ARIMA进行时间序列处理

2018年04月13日  | 移动技术网IT编程  | 我要评论

濮匡正,声音图标没了,谁有黄页网址

1什么时候进行时间序列处理?

 

发现进行预测时,与属性没有多大关系,只和时间有关,这时候就不能利用机器学习模型来解决,要用时间序列处理

这里用的python语言,使用一种统计模型ARIMA

2ARIMA

Auto-Regressive Integrated Moving Averages

该模型需要三个参数 p d q

d一般在1和2之间选择,不做太多讨论

p:number of AR terms. ?AR terms 是指依赖变量的延迟。

如果p=5,则x(t)的预测将变为 x(t-1),x(t-2),x(t-3),x(t-4),x(t-5)

q: number of MA terms. MA terms是指延迟误差,在预测等式的时候。

如果q=5,对于x(t)的预测将会变为e(t-1),e(t-2),e(t-3),e(t-4),e(t-5)

e(i)是指第i次,实际值与MA的差异

最主要的是如何确定p和q的值,用ACF和PACF决定这两个数字。

acf Autocorrelation Function?

用来测量ts之间的关联性(包括自身的延迟版本)

在lag=5的时候,acf会比较序列在t1和t2时刻,在t1-5 和 t2-5

pacf Partial Autocorrelation Function

也是用来测量ts之间的关联性,但是消除了那些已经被干预比较解释过的变量。比如:

在lag=5的时候,在检查关联性的时候,会去除lag1-4的影响

3检验平稳性

使用ARIMA进行预测,需要数据具有平稳性。所以需要先对数据进行平稳性检测

Dicky-Fuller Test可以实现该功能

4如何使数据平稳

让一个序列平稳几乎是不可能的,但是我们可以尽可能的接近

有两个元素导致不平稳:趋势和季节性(不一定是天气)

原则就是为这两个元素建模或者估计,然后从序列中将起剔除,就可以利用统计模型对其进行预测。最后需要将预测值转换为原始的尺寸,通过将这两个因素约束回来

如何移除以及移除趋势

一个方法是利用转换函数,这个函数对更好的数做出更多的惩罚,比如使用log函数,开平方根

如何移除趋势和季节性

有两个方法:

Differencing ?带有时间延迟的差别

Decomposition(分解) 同时为趋势和季节性建模并从模型中将他们移除


如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网