我正在使用“$”运算符来获取预测值以及组合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
}
此代码导致以下错误。错误:$ 运算符对原子向量无效。
有人可以建议我哪里出错了吗?