为什么不取时间序列上的时间点数据,而是取时间点附近按指定窗口大小的计算后数据
2016-2017年里的365天数据,如果我们单拿出来2015-02-05这个点的数据,用这个点的数据来描绘当前情况是可以的,但是有没有更好的方案呢。
分析:好像单拿出2015-02-05这个点的数据来描绘当前情况有点太绝对,它会不会有或多或少的误差,如果我想看一下2015-02-05的大致情况,我是不是可以取它的一个范围,比如2015-02-01 2015-02-02 .... 2015-02-09 2015-02-10,取这个区间的平均值来大概当做2015-02-05这天的情况,这是不是更科学些,尤其是当我们要进行预测的时候,单独拿出来一个或多或少会有些离群会有些差异,会影响我们的结果,所以我们可以基于这样一个窗口,通过窗口取平均,使得我们的数据是更平稳些。
什么是窗口?
为了提升数据的平稳性,将某个点的取值扩大到包含这个点的一段区间,用区间来进行判断,这个区间就是窗口。例如想使用2017年1月1日的一个数据,单取这个时间点的数据当然是可行的,但是太过绝对,有没有更好的办法呢?可以选取2016年12月16日到2017年1月15日,通过求均值来评估1月1日这个点的值,2016-12-16到2017-1-15就是一个窗口,窗口的长度window=30.
滑动窗口就是窗口向一端滑行,比如从左往右,每次滑动并不是窗口区间整块的滑行,而是一个单位一个单位的滑动。例如窗口2016-12-16到2017-1-15,下一个窗口并不是2016-1-15到2017-2-15,而是2016-12-17到2017-1-16(假设数据的截取是以天为单位),整体向右移动一个单位,而不是一个窗口。这样统计的每个值始终都是30单位的均值。
窗口中的值从覆盖整个窗口的位置开始产生,在此之前即为NaN,举例如下:窗口大小为10,前9个都不足够为一个一个窗口的长度,因此都无法取值。