构建一个滚动平均值预测

问题描述 投票:1回答:1

我有一系列的间断性需求称为零件(下面的示例),我想开发一个滚动平均值训练组和测试组的预测。我的代码如下为好。该系列fitmean计算滚动平均值,但有两个问题:

  1. 它补充说,当我真正想要的是让12的滚动平均值的13个元素;和,
  2. 日期去从2016年6月至2017年6月,所以当我减去testparts我只得到了一月的6个值君2017年

有没有一种方法(1)在fitmean结束删除第13个元素,和(2)更改日期,使他们与testparts匹配吗?

谢谢。

library(forecast,zoo)
parts<-matrix(c(0,0,0,0,0,0,2,0,0,0,0,0,3,0,0,0,0,0,1,0,0,7,0,0),nrow=24,ncol=1)
parts<-ts(parts,f=12,start=c(2016,1))
maemean<-matrix(NA,nrow=12,ncol=1)
  trainparts<-window(parts,end=c(2016,12))
  testparts<-window(parts,start=c(2017,1),end=c(2017,12))
  fitmean<-round(rollapply(parts, width=12, by = 1, FUN = mean))
  maemean<-abs(fitmean-testparts)

Jan-16  0
Feb-16  0
Mar-16  0
Apr-16  0
May-16  0
Jun-16  0
Jul-16  2
Aug-16  0
Sep-16  0
Oct-16  0
Nov-16  0
Dec-16  0
Jan-17  3
Feb-17  0
Mar-17  0
Apr-17  0
May-17  0
Jun-17  0
Jul-17  1
Aug-17  0
Sep-17  0
Oct-17  7
Nov-17  0
Dec-17  0

澄清:

上面所列内容应该打破从一月-16设置为DEC-16训练和测试,从一月至17集至12月,17。我想要做的是使用一个滚动平均值使扬-16的平均日至12月16(四舍五入,这是0)成为预测一月-17等,也就是2月16至一月-17,等输出应该是这样的

Jan-17  0
Feb-17  0
Mar-17  0
Apr-17  0
May-17  0
Jun-17  0
Jul-17  0
Aug-17  0
Sep-17  0
Oct-17  0
Nov-17  1
Dec-17  1

不幸的是,我用13副12元得到这个。

     Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2016                       0   0   0   0   0   0   0
2017   0   0   0   1   1   1                        
r time-series zoo rollapply rolling-computation
1个回答
1
投票

1)宽度=列表(...)卸下从问题的所有不相关码并改变rollapply线我们有这个地方-seq(12)是通过第一个现有,第二现有,...第十二先前值偏移指示rollapply的向量在每一个点来表示。

library(zoo)

# test data
parts <- matrix(c(0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 7, 0, 0), 
  nrow = 24, ncol = 1)
parts <- ts(parts, freq = 12, start = c(2016, 1))

round(rollapply(parts, list(-seq(12)), FUN = mean))

赠送:

     Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2017   0   0   0   0   0   0   0   0   0   0   1   1

2)rollsumr另一种方法是采取的宽度13的滚动总和,然后减去由关12的电流值和除法:

round((rollsumr(parts, 13) - parts) / 12)
##      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2017   0   0   0   0   0   0   0   0   0   0   1   1
© www.soinside.com 2019 - 2024. All rights reserved.