数据表和x27之间的细微差异;s frollmean()和forecast';具有偶数阶的s-ma()

数据表和x27之间的细微差异;s frollmean()和forecast';具有偶数阶的s-ma(),r,data.table,forecast,R,Data.table,Forecast,我正在对时间趋势进行去季节化,我意识到数据。表的frollmean()和预测的ma()产生的结果略有不同,顺序为偶数(例如:季度数据,n=4)。起初,我认为frollmean(n=4)和ma(order=4)之间的差异只是因为ma()有一个取整方法。从文件中: k=(m-1)/2[m=订单] 当指定偶数顺序时,平均观测值将包括一个比过去多的未来观测值(k向上舍入)。如果“中心”为真,则取两条移动平均线(其中k分别向上和向下四舍五入)的值的平均值,使移动平均线居中 但是,正如您在下面所看到的,即使

我正在对时间趋势进行去季节化,我意识到
数据。表
的frollmean()和
预测
的ma()产生的结果略有不同,顺序为偶数(例如:季度数据,n=4)。起初,我认为frollmean(n=4)和ma(order=4)之间的差异只是因为ma()有一个取整方法。从文件中:

k=(m-1)/2[m=订单]

当指定偶数顺序时,平均观测值将包括一个比过去多的未来观测值(k向上舍入)。如果“中心”为真,则取两条移动平均线(其中k分别向上和向下四舍五入)的值的平均值,使移动平均线居中

但是,正如您在下面所看到的,即使在平均frollmean(n=4)和frollmean(n=5)时,差值
dif
也不是零,并且始终高于0(对于此任意时间序列)。奇数顺序(例如:n=3)不会出现这种情况。你知道为什么吗

玩具示例 种子集(0) dt=数据表(x=1:100+10*r形式(100)) dt[,fm4:=frollmean(x=x,n=4,align=“center”)] dt[,fm5:=frollmean(x=x,n=5,align=“center”)] dt[,fm4p5:=.5*(fm4+fm5)] dt[,ma4:=ma(x=x,顺序=4,中心=TRUE)] dt[,dif:=fm4p5-ma4] 绘图(dt[[“dif”]] 平均值(dt[[“dif”]],na.rm=TRUE)
我认为这意味着
ma
是两个4长度滚动平均值,一个稍微超前于中间一个稍微滞后。即

dt[, fm4c := (fm4+shift(fm4))/2]
dt[, sd(fm4c-ma4, na.rm = TRUE)]
#> [1] 5.599379e-15

非常感谢你!