Я пытаюсь взять один набор данных и выполнить прогноз по нему, основываясь на различных срезах. Оператор for i запускается, но в итоге говорит, что «замена имеет 76 строк, данные имеют 0»
Вот воспроизводимый пример:
library(tidyverse)
library(forecast)
library(scales)
library(growthcurver)
options(scipen = 12) # Scientific Notation
options(digits = 6) # Specify Digits
noup<-3 #Days without update
claims <- tribble(~perdaycases, 3,1,1,0,0,0,
1,8, 7, 2,
8, 8, 12,
13, 15,
21, 27,
47, 65,
47, 30,
62, 74,
23, 38)
claims$cases <- cumsum(claims$perdaycases)
claims$id<-1:nrow(claims)
inds <- seq(as.Date("2020-03-11"), as.Date(Sys.Date()-noup), by = "day")
set.seed(1)
## Forecast length
h0 = 30
#Here, I create the empty dataset
estimates<-data.frame(Simulation=numeric(),Forecast=numeric()) #Empty Dataset
for(i in 1:length(claims$id)) {
cap<-subset(claims,id<14+i) #First cutoff then it runs again
cts <- ts(cap$cases, start = 1,frequency = 365) #Time Series
cfore <- forecast(auto.arima(cts), h= h0, level = c(80)) #Do the Arima
gc_fit <- SummarizeGrowth(seq(1,nrow(cap)),cap$cases) #Fit the Growth curve
tt <- seq(from=nrow(cap)+1,to=90,by=1)
forelog <- predict(gc_fit$model,newdata=list(t=tt)) #Prediction
forecast<-forelog #Create the item with mean projection
len<-as.numeric(length(forecast)) #Length of each forecast
estimates$Simulation<-as.numeric(rep(i,len)) #id each iteration
estimates$Forecast<-forecast #Here I try to export the forecast
}
Полученная ошибка ...
Ошибка в $<-.data.frame
(*tmp*
, «Симуляция», значение = c (1, 1, 1, 1,: замена имеет 76 строк, данные имеют 0
Я догадываясь, что это связано с последними двумя строками, но после 4 часов борьбы я решил обратиться за помощью.
SOS.
Спасибо,