具有自己的功能和预测包(TLSM)的预测

时间:2019-12-12 07:49:40

标签: r lapply forecast

我正在将fpp2软件包中的数据集与预测软件包中的tslm函数组合在一起进行聚类。为了获得更准确的投影,我将数据集分为训练集和测试集。这里的主要思想是使用训练集通过线性回归进行估计,并通过测试集应用此模型。

   # CODE
      library(fpp2) # required for the data
      library(dplyr)
      library(forecast)

      MY_DATA<-uschange[,1:4]
      head(MY_DATA)
      tail(MY_DATA)


   # Training set
    Training_set = window(MY_DATA, start=1970, end=c(2010,4))

    # Test set
    Test_set = window(MY_DATA, start=2011, end=c(2016,3))

      # Built own function            
      FORECASTING_FUNCTION_TSLM <- function(Z, hrz = 16) {
        timeseries <- msts(Z, start = 1970, seasonal.periods = 4)
        forecast <- tslm(timeseries~trend+season,biasadj=TRUE)
      }

      # Whole set-MY_DATA 
      FORECASTING_LIST_TSLM <- lapply(X = MY_DATA, FORECASTING_FUNCTION_TSLM)

      # Training set
      FORECASTING_LIST_TSLM_Training_set<-lapply(Training_set, FORECASTING_FUNCTION_TSLM) 

      # Test_set
      FORECASTING_LIST_TSLM_Test_set <- lapply(1:length(FORECASTING_LIST_TSLM_Training_set),function(i) {tslm(Test_set[,i], model = FORECASTING_LIST_TSLM_Training_set[[i]])})#<-----Problem line

到目前为止很好:)但是当我想将此代码应用于Test_set时出现问题。当我尝试运行此代码的最后一行时,我收到了以下错误消息:

 Error in formula.default(object, env = baseenv()) : invalid formula 

所以有人可以帮助我如何修复此行代码FORECASTING_LIST_TSLM_Test_set以便像之前的示例(整个set-MY_DATA,训练集)那样获得估算值。

为了像上一个示例(带有Test_set的代码行)一样获得预测。

0 个答案:

没有答案