Пытаясь выяснить, для петель - PullRequest
0 голосов
/ 05 сентября 2018

Я просто пытаюсь заставить цикл For увеличивать скользящее окно с шагом в 1 месяц и определять параметры HW при каждом увеличении.

ss<-c(29,36,36,48,93,28,35,28,37,50,37,3,25,28,40,45,38,43,34,44,43,25,33,34)
ss2<-t(ss)
for (i in 1:12){
sseries<-ts(ss2[c(i:11+i)],frequency=12)
ssforecasts <- HoltWinters(sseries, beta=FALSE, gamma=FALSE)
ssforecasts
}

Но я получаю:

Ошибка в ts (cbind (xhat = final.fit $ level [-len - 1], level = final.fit $ level [-len -: Объект 'ts' должен иметь одно или несколько наблюдений

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

ОК, мне пришлось использовать оператор print (ssforecasts), чтобы получить результаты.

0 голосов
/ 06 сентября 2018

Вы называете срез правильно, но порядок оценки R не оценивается так, как вы этого хотите. Когда вы добираетесь до i=11, вы получаете это:

> i:11+i
[1] 22

что и дает ошибку, попробуйте вместо этого:

ss<-c(29,36,36,48,93,28,35,28,37,50,37,3,25,28,40,45,38,43,34,44,43,25,33,34)
ss2<-t(ss)
for (i in 1:12){
  sseries<-ts(ss2[c(i:(11+i))],frequency=12)
  ssforecasts <- HoltWinters(sseries, beta=FALSE, gamma=FALSE)
  ssforecasts
}
...