若对一个随机过程,ARMA(p,q)模型可以写作为:
是一个白噪声序列,在实际应用中往往被
假设成是独立同分布的高斯随机变量:
其中AR(p)代表变量对自身p个滞后项的回归,MA(q)则表示变量对滞后q个残差项的回归。当引入差分这一算子后,ARIMA(p,d,q)模型可以写作:
d为差分的阶数,L为滞后算子:
正如ARMA模型可以很好的描述弱平稳过程,在引入一定阶数差分算子后,一个在均值上非平稳的随机过程就有可能被转化为一个平稳过程,从而使得ARMA可以更好的描述数据背后的分布。
尽管ARIMA模型在实际预测应用中有着许多不足之处,但是它依旧是最经典的一种预测模型,学者们也提供了丰富的变种模型来解决ARIMA模型的缺陷。除了从递推关系和差分方程的角度来预测,ARIMA模型也可以从状态空间模型或者谱分析的视角去预测,这为研究者延展出更多解决问题的方向,具体可以参考其它诸多教材文献([1])。
其中
为噪音成分,通常被假设为独立同分布的零
均值高斯。
趋势项存在两种函数形式,分别为Logisticgrowth形式和Lineargrowth形式。对于Logisticgrowth形式,可以看作为一种“人口模型”,最基本的函数形式为:
其中C为增长上界,k为增长率,m是offset。如果将此函数绘图出来,我们可以看到它的变化类似于自然界人口增长与动物繁殖所呈现出的“S曲线":
此类函数尤其适用于对流量、人口等有指数增长特性的数据进行建模。Prophet对Logisticgrowthfunction做出了一定改进,使得它能够拟合更多特别类型的指数增长数据,例如用户增长数据等。Lineargrowth就是捕捉数据中趋势的线性部分。所以针对不同的数据增长模式,我们将根据具体数据情况进行选择。
但是很多时候数据中的趋势又不是一成不变的,改变一些数据背后的生成机制就会影响数据的增长趋势。例如在用户增长中,如果商家给予新用户更多的激励,就会导致其增长趋势发生变化。因此Prophet模型中在趋势中引入了变点,在进行预测前使用者可以提前设置变点。如果使用者没有提前设置,Prophet模型也可以进行变点检测以来适应趋势的变化,从而更加精准地拟合数据。
对周期项,Prophet模型采取了拟合傅里叶级数的方式:
为参数
P为周期。Prophet模型中可同时拟合多个周期,并设置每个周期的傅里叶阶数,阶数如果设置过大,会造成过拟合并且耗费不必要的计算资源。一般建议年周期用10阶傅里叶。没有一定的标准,可根据数据实际情况再动态调整。
ARIMA预测效果图
线性Prophet预测效果图
未来如何使经典模型的优势在实际应用中大放异彩?又如何将其思想与深度学习相结合开发出更适合数字化发展的算法?或将是智能运维算法开发人员研究的首要任务。
云智慧已开源数据可视化编排平台FlyFish。通过配置数据模型为用户提供上百种可视化图形组件,零编码即可实现符合自己业务需求的炫酷可视化大屏。同时,飞鱼也提供了灵活的拓展能力,支持组件开发、自定义函数与全局事件等配置,面向复杂需求场景能够保证高效开发与交付。
点击下方地址链接,欢迎大家给FlyFish点赞送Star。参与组件开发,更有万元现金等你来拿。
参考文献
[1]Box,GeorgeE.P.,andGwilymM.Jenkins.1976.Timeseriesanalysis:forecastingandcontrol.SanFrancisco:Holden-Day.
我们秉承MakeDigitalOnline的使命,致力于通过先进的产品技术,为企业数字化转型和提升IT运营效率持续赋能。