Я использую оператор "$", чтобы получить прогнозируемые значения и модель, используемую путем объединения функций stlf
и auto.arima
.
Этот код работает правильно для другого набора данных, но здесь он дает мне эту ошибку.
Я попытался заменить $
на [[ ]]
, но это также приводит к той же ошибке.
Train_df - это временной ряд с 41 строкой и 5 столбцами. Каждый столбец представляет собой разные данные продукта.
Train_df <- ts(Train_df, start=c(2000,1), frequency =12)
fcast <- matrix(NA,nrow=10,ncol=ncol(Train_df))
model <- matrix(NA, nrow = 2, ncol = ncol(Train_df))
colnames(model) <- colnames(Train_df)
acc <- matrix(NA, nrow=ncol(Train_df), ncol=5)
colnames(acc) <- c("ME","RMSE","MAE","MPE","MAPE")
# Combining two models
for(i in 1:ncol(Train_df)){
fc1 <- forecast(stlf(Train_df[,i],h=10)) #forecast using stlf function
fc2 <- forecast(auto.arima(Train_df[,i]),h=10) #forecast using auto.arima function
fcast[,i] <- 0.5*(fc1$mean+fc2$mean) #combining the values from both the forecasts
model[1,i] <- fc1$method
model[2,i] <- fc2$method
acc[i,] <- accuracy(fcast[,i],Test_df[,i]) #Testing for accuracy
}
Этот код приводит к следующей ошибке.
Ошибка: оператор $ недопустим для атомарных векторов.
Может кто-нибудь подсказать, куда я иду не так?