2019独角兽企业重金招聘Python工程师标准>>>
- 通过简单移动平均进行平滑处理
时序数据中通常有很明显的随机或误差成分,为了辨明数据中的规律,画出一条平滑曲线,该曲线消除或者减弱时序中不规则和其他变动,呈现现象的 长期趋势,最简单的方法就是 简单移动平均
其中 St 是时间点t的平滑值, k =2q +1 是每次用来平均观测值的个数,一般我们会将其设为一个奇数,居中移动平均法的代价是,每个时序集中我们会损失最后的 (k-1)/2个观测值
R中有几个函数都可以做简单的移动平均,包括 TTR包 中的 SMA()函数,zoo包中的 rollmean()函数,forecast() 包中的 ma() 函数
#如下图1
> library(forecast)
> opar <- par(no.readonly=TRUE)
> par(mfrow=c(2,2))
> ylim <- c(min(Nile), max(Nile))
> plot(Nile, main="Raw time series")
> plot(ma(Nile, 3), main="Simple Moving Averages (k=3)", ylim=ylim)
> plot(ma(Nile, 7), main="Simple Moving Averages (k=7)", ylim=ylim)
> plot(ma(Nile, 15), main="Simple Moving Averages (k=15)", ylim=ylim)
> par(opar)
图1