我有一些时间序列数据点,我喜欢对它们执行简单的移动平均线方法。如果我使用“预测”包中的“ma”函数,我会得到以下结果:
library(forecast)
x<-c(1,5,2,8,6,3,2,4,7)
ma(x,order= 4)
[1] NA NA 4.625 5.000 4.750 4.250 3.875 NA NA
现在可以请任何人告诉我这里的逻辑是什么?因为这显然不遵循通常的4点简单MA过程规则。
答案 0 :(得分:1)
我认为预测有某种特殊的平滑。 <怎么样
require(zoo)
rollmean(x,4,,align="center")
# [1] 4.00 5.25 4.75 4.75 3.75 4.00
答案 1 :(得分:0)
预测包的作者在https://stats.stackexchange.com/questions/83194/using-moving-average-smoothing-in-forecast-package发布了答案。设置center = FALSE并按顺序/ 2移动结果。
x<-c(1,5,2,8,6,3,2,4,7)
.ord=4
ma(x,order=.ord, centre=FALSE)[(ceiling(.ord/2):(length(x)-floor(.ord/2))]
# [1] 4.00 5.25 4.75 4.75 3.75 4.00
或者只是删除na的中心= FALSE;如果你想要长度(x)返回值
,那么用.ord-1 NA填充前面答案 2 :(得分:0)
我意识到这是一篇旧帖子,但我想尝试根据我对该功能的理解提供一些细节。如前面提到的海报所示,默认的“中心”参数为“true”,如果指定的顺序是偶数,则具有将2 MA的订单应用于函数中指定的MA的效果。这意味着'center'等于'true',给定指定4的订单产生2X4 MA。这将非对称MA转换为指定顺序的中心MA。中心4 MA也是5阶加权MA,其权重为(1/8,1 / 4,1 / 4,1 / 4,1 / 8)。如果你的数据每季度说一次,这可以确保一年内的每个季度获得相同的权重;如果您目前处于第二季度,则前一个和即将到来的Q4值将分别加权1/8,并给予Q4整体相同的加权贡献。