在本篇中,我们将展式使用 Python 统计学模型进行时间序列数据分析。
* 问题描述 *
目标:根据两年以上的每日广告支出历史数据,提前预测两个月的广告支出金额。
原始数据:2017-01-01 到 2019-09-23 期间的每日广告支出。
数据准备:划分训练集和测试集。
df1 = data[[‘Date‘,‘Spend‘]].set_index(‘Date‘)
train = df1.iloc[:933,:]
test = df1.iloc[933:,:]
test.shape,train.shape
测试集大小:(63,1)
;训练集大小:(933,1)
。
在本篇文章中,我们主要关注 SARIMA 和 Holt-winters 方法。
如果我们想要对时间序列数据进行上述统计学模型分析,需要进行一系列处理使得:(1)数据均值 (2)数据方差 (3)数据自协方差 这三个指标不依赖于时间项。即时间序列数据具有平稳性。
如何明确时间序列数据是否具有平稳性?可以从两个特征进行判断。(1) 趋势,即均值随时间变化;(2) 季节性,即方差随时间变化、自协方差随时间变化。若满足以上两个条件,则时间序列数据不符合平稳性要求。
可以通过以下方法消除上述问题:
Autoregressive Integrated Moving Average model (ARIMA),差分整合移动平均自回归模型。ARIMA(p,d,q)
主要包含三项:
p:AR项,即自回归项(autoregression),将时间序列下一阶段描述为前一阶段数据的线性映射。
d项,即积分项(integration),时间序列的差分预处理步骤,使其满足平稳性要求
q:MA项,即移动平均项(moving average),将时间序列下一阶段描述为前一阶段数据平均过程中的残留误差的线性映射。
该模型需要指定 p d q
三项参数,并按照顺序执行。ARIMA 模型也可以用于开发 AR, MA 和 ARMA 模型。
完整文章请访问:https://imba.deephub.ai/p/ee53ab107ac811ea90cd05de3860c663
原文:https://www.cnblogs.com/deephub/p/12672886.html