戳上方蓝字或下方卡片关注我,一起踏上进阶之路 。
文字 | 百灵
图片 | 原创
欢迎分享,留言交流,转载请注明出处
本文共计约3700字,建议阅读时间3分钟
目录
- 时间序列分析——引言
- 时间序列
- 时间序列发展历程
- 时间序列分析方法
- 应用及局限
- 时间序列分析——相关分析
- 描述分析
- 自相关
- 互相关和互相关系数
- 小结
- 统计分析方法——回归分析
- 回归分析方法
- 线性回归
- 非线性回归
- 提升数据鲁棒性
- 小结
- 时间序列分析——移动平均
- 简单移动平均
- 指数平均
- 小结
- 时间序列分析——自回归
时间序列分析——移动平均
在时间序列的统计分析中,自回归移动平均(ARMA)模型以两个多项式提供了对(弱)平稳随机过程的简洁描述,一个用于自回归(AR),另一个用于移动平均(MA)。ARMA模型最初由Peter Whittle在1951年的博士论文《时间序列分析中的假设检验》中描述,后来在George E. P. Box和Gwilym Jenkins于1970年出版的著作中得到普及。
在原始的ARMA中,使用给定的时间序列xt,来对未来的值进行预测。移动平均部分涉及将误差项建模为同时发生的和过去不同时间的误差项的线性组合。自回归部分涉及将变量回归到其自身过去的值上。
AR部分MA该模型通常被称为ARMA(p,q)模型,其中p是AR部分的阶数,q是MA部分的阶数(如下所定义)。

在ARMA模型中,以后很多参数需要被估计,通过Box-Jenkins方法可以估计ARMA模型。但这个太复杂了,我们先从移动平均和自回归这两个具体的操作来介绍它们是如何被使用的。
移动平均主要作用是平滑数据,将数据中的随机波动互相抵消,可以使得后续处理或者分析避免受到随机噪声的影响。
自回归的主要应用是通过过去的时间序列预测未来值,在ARMA中,结合起来使用移动平均来消除数据波动的影响,使用自回归来预测未来值。
移动平均
统计学中,移动平均(滚动平均或运行平均)是一种通过创建不同选择的完整数据集的平均数列来分析数据点的计算。它的变体包括:简单、累积或加权形式。
移动平均在时间序列的数据处理过程中主要是消除数据中的噪声,有一个简单的假设就是在时间序列数据生成的过程中,相临近的几个点之间都会有独立同分布的白噪声,把他们一相加即可相互抵消得到无噪声的数据。
移动平均通常与时间序列数据一起使用,以平滑短期波动并突出显示长期趋势或周期。短期和长期之间的阈值取决于应用场景,并相应地设置移动平均的参数。从数学上讲,移动平均是卷积的一种类型,因此可以看作是信号处理中使用的低通滤波器的一个例子,移动平均会过滤掉更高频率的组成部分,它可以被视为使数据平滑化,去除数据中噪声的影响。
在上文中我们也有提到当在回归分析中使用按周的日均数据,但直接这么平均的话,会导致数据量下降的比较多,比如如果只有一个月的数据,按周平均之后只剩四个点的数据了,用来做回归分析数据不够,这是如果使用自回归的方式进行数据预处理,可以在去除数据波动的同时,保留更多的数据。
简单移动平均
在金融应用中,简单移动平均(SMA)是前k个数据点的未加权平均值。然而,在科学和工程中,通常从中心值两侧的等量数据进行平均。这确保了平均值的变化与数据的变化相匹配,而不是随时间推移。一个简单的等权运行均值的例子是对包含n个条目的数据集的最后k个条目的平均值。让这些数据点为p1,p2,……,pn。这可以是股票的收盘价格。最后k个数据点的平均值(以天数为例)表示为SMAk,并计算如下:

当计算下一个平均值SMAk,next时,使用相同的采样宽度k考虑的范围从n-k+2到n+1。新值pn+1进入总和,最老的值pn-k+1退出。这通过重复使用先前的平均值SMAk,prev简化了计算。所选的窗长(k)取决于感兴趣的周期,例如7天,30天等等与现实中数据周期契合的值。

这里我们以上文中的收入数据为例,说明简单移动平均的用法。在上文介绍回归分析时,我们使用了收入数据随时间变化的曲线,但是在拟合过程中,由于数据波动,得到的拟合结果R方并不太高,看起来随机波动较大。
关于我们数据具体有哪些以及相关分析和回归分析方法,可以参考之前的文章:
回归分析方法及数据
永远向上的百灵,公众号:数据分析师修炼手册统计分析方法——回归分析
相关分析方法
永远向上的百灵,公众号:数据分析师修炼手册时间序列分析——相关分析

使用简单移动平均进行数据平滑预处理
在这里,我们使用简单移动平均作为一种数据预处理的方法,来降低原始数据的波动性。考虑到数据可能有星期特性,因此我们选取七天为移动平均的窗口,图中红色线为移动平均之后的结果,从图中可以看出数据整体变得更平稳了,此时我们如果使用第七天到最后一天的数据进行线性回归,可以得到黑色曲线,相比于之前拟合出的红色曲线,变得更为平缓。通过旧数据拟合出来的广告收入归零点大约是两个月,经过平滑之后得到的结果大约是三个月。当然,这一个单独的数据说明不了哪一种操作更好,但简单移动平均之后的数据,看起来更符合常理一些了。

另外,我们可以观察移动平均前后的相关性,看是否平滑之后数据变得关联性更强了
平滑前
|
相关系数 |
总阅读数 |
阅读人数 |
净增粉丝数 |
广告收入 |
|
总阅读数 |
1 |
0.7979 |
0.263 |
-0.0566 |
|
阅读人数 |
0.7979 |
1 |
0.1229 |
0.0228 |
|
净增粉丝数 |
0.263 |
0.1229 |
1 |
0.0399 |
|
广告收入 |
-0.0566 |
0.0228 |
0.0399 |
1 |
简单移动平均平滑后
|
相关系数 |
总阅读数 |
阅读人数 |
净增粉丝数 |
广告收入 |
|
总阅读数 |
1 |
0.5858 |
0.4042 |
0.1119 |
|
阅读人数 |
0.5858 |
1 |
-0.3118 |
0.4608 |
|
净增粉丝数 |
0.4042 |
-0.3118 |
1 |
-0.2778 |
|
广告收入 |
0.1119 |
0.4608 |
-0.2778 |
1 |
可以从图中看出,平滑之后,阅读人数和广告收入之间的相关性明显得到了提升。另外还发现了一个现象,净增粉丝数和阅读人数与广告收入均呈现负相关的形式。
这一负相关在前文回归分析中也有提到,新增粉丝数与广告收入的负相关对广告收入引入一天的时延之后就变为正相关了。
但是奇怪的是,阅读人数与净增粉丝数始终呈现负相关的局面,不过这不是当前移动平均分析方法的重点,后续有更多运营数据时可以再具体来看。
指数移动平均
对于简单移动平均,在时间窗中的每一个数在平均的时候都是用相同的权重,这样的平滑过程比较容易受到之前数据的干扰。很多时候我们面对快速变化且噪声较大的数据时,更倾向于使用指数移动平均,在去除噪声的同时保留当前数据快速变化的特性。指数移动平均对于被平均的数据权重与简单移动平均是不一样的,越靠近当前时刻的值权重越大,随着数据远离当前时刻,其权重呈现指数下降的形式,这样可以使得平滑的过程在更接近当前值和更平滑之间调整。利用平滑系数实现类似简单移动平均窗长的效果。
指数移动平均的实现公式如下:


大家看这个公式,和上面的简单移动平均有类似的形式,但细节上有差异,指数移动平均是无法通过调参完全等效于简单移动平均的。这里的\alpha与简单移动平均的窗长k有类似的关系,我们可以通过调整\alpha的值来调整我们指数移动平均覆盖的数据范围。\alpha越接近1,则指数平均的更新越快,对应的窗长越短。
前面有提到,指数移动平均对应的权重是从当前时刻开始指数下降,但是上面的迭代公式并没有明显的体现出这一特征,我们可以将迭代的公式展开

从展开的形式中可以看到,指数移动平均实际上包含了从初始值开始直到当前值的所有信息,只不过随着时间的推移,权重会变得非常小。在实际使用过程中,我们也可以认为指数平均也有一个“窗”的概念,比如将t时刻权重定义为1,当权重下降到某一阈值时,认为其距离更远的信号不重要了,这时起作用的这部分数据长度就认为是指数移动平均的窗长。
下图紫色先和红色线分别是7天窗长的指数移动平均和简单引移动平均,可以看出指数移动平均保留了更多数据中的波动性。在实际应用过程中,假设公众号是会有定期发文这一动作引起数据波动的话,指数移动平均更为适用一点,反之如果我们预期数据就是一成不变的话,简单移动平均则更为有效。

同样,我们在这里可以把指数移动平均之后的相关系数展示出来,但各个相关系数之间没有什么新的明显特征,因此就不再赘述。
|
相关系数 |
总阅读数 |
阅读人数 |
净增粉丝数 |
广告收入 |
|
总阅读数 |
1 |
0.6295 |
0.3596 |
0.0946 |
|
阅读人数 |
0.6295 |
1 |
-0.216 |
0.541 |
|
净增粉丝数 |
0.3596 |
-0.216 |
1 |
-0.3304 |
|
广告收入 |
0.0946 |
0.541 |
-0.3304 |
1 |
小结
本文主要介绍了ARMA中的移动平均部分,移动平均虽然可以有较为复杂的随机过程理论来描述噪声,但实际用起来就是选一个窗把里面的数据叠加一下,很有可能数据之间的噪声有正有负刚好互相抵消了,给我们输出的就是没有噪声更稳定的数据,拿到这些数据,我们再进行前面提到的相关分析、回归分析等等,往往会得到质量更高的结果。
- END -
当然如果大家感兴趣的话可以继续深入学习,有任何问题或者还有啥想了解的,欢迎私信我。
往期推荐
- 如何理解商业模式(阅读量1100+)
- 商业模式之价值主张 (阅读量500+)
- 商业模式之客户细分 (阅读量1400+)
- Excel数据分析——数据输入(阅读量1100+)
- Excel数据分析——数据处理 (阅读量4800+)
- Excel数据分析——数据透视表 (阅读量3300+)
- Excel数据分析——函数与公式(上) (阅读量1200+)
- Excel数据分析——函数与公式(中) (阅读量1000+)
- Excel数据分析——函数与公式(下) (阅读量800+)
- Excel数据分析——快捷键 (阅读量800+)
- Excel数据分析——建模分析 (一) (阅读量5000+)
- Excel数据分析——建模分析(二) (阅读量2500+)
- Excel数据分析——数据可视化(一) (阅读量2300+)
- Excel数据分析——数据可视化(二) (阅读量800+)
- Excel数据分析——数据可视化(三) (阅读量1700+)
- Excel数据分析——数据可视化(四) (阅读量1100+)
- Excel数据分析——如何设计专业数据表格(上)【文末送模板】 (阅读量1100+)
- Excel数据分析——如何设计专业数据表格(下)【文末送模板】 (阅读量700+)
- 时间序列分析——相关分析 (阅读量700+)
- 时间序列分析——回归分析 (阅读量500+)
-如果喜欢这篇文章, 请关注我
我是 永远向上的百灵
点击 “赞” 和 “在看”
您的认可是对百灵最大的鼓励
调