使用 r 中预测包的精度函数进行 MASE 计算

MASE calculation using accuracy function from forecast package in r

关于 R 中的预测...

  1. 我使用循环函数对一些数据应用了朴素预测方法,然后我尝试发现"MAPE"它是成功的。

    MAPE_N1<- matrix(NA, nrow=52, ncol=ncol(TS), 
              dimnames = list(c(Weeks),c(colnames(Master_Data[,-1]))))
    for(i in 1:ncol(TS)) {
      MAPE_N1[,i] <- accuracy(as.vector(F1_N[,i]),TS)["Test set", "MAPE"]
    }
    
  2. 但是,当尝试通过更改 "MASE" 而不是 MAPE 来对 MASE 进行相同的设置时,我收到了错误。

    MAPE_N1 <- matrix(NA, nrow=52, ncol=ncol(TS), 
               dimnames = list(c(Weeks),c(colnames(Master_Data[,-1]))))
    for(i in 1:ncol(TS)) {
      MAPE_N1[,i] <- accuracy(as.vector(F1_N[,i]),TS)["Test set", "MASE"]
    }
    

error description: Error in accuracy(as.vector(F1_N[, i]), TS)["Test set", "MASE"] : subscript out of bounds

注意:除了 MASE 之外,我将排除精度函数中的所有其他错误。

请帮我解决这个问题。

问候 穆尼库马尔

只有在训练数据可用的情况下才能计算 MASE。如果 accuracy 中的第一个参数是 forecast 对象,那么它将找到训练数据并计算 MASE。但是如果你给它一个预测的向量而不是classforecast的对象,那么训练数据是不可用的,也无法计算MASE。