Forecast::accuracy() 函数 returns "Not supported" 和 NA
Forecast::accuracy() function returns "Not supported" and NAs
我使用 forecast() 包和以下代码进行了 365 步提前预测:
##The time series is 3650 daily observations of rainfall
x <- ts(x$obs, start=c(2007, 10), end=c(2017, 9), frequency = 365)
##create training set - first 9 years of observations
x_train <- subset(x, start = 1, end = 3285)
##test set - last year of observations
x_test <- subset(x, start = 3286, end = 3650)
##fit the model
x_train_fit <- auto.arima(x_train, seasonal=FALSE, xreg=fourier(x_train, K=1))
##forecast using the model
x_fcast_test <- forecast(x_train_fit,h=365, xreg=fourier(x_test, K=1))
plot(x_fcast_test, col="black")
lines(x_test,col="red")
问题: 当我 运行 accuracy() 函数来测试此预测的准确性时,输出如下所示:
> accuracy(x_fcast_test)
$`Models`
Call
1 "Not supported"
2 "Not supported"
3 "Not supported"
4 "Not supported"
5 "Not supported"
6 "Not supported"
7 "Not supported"
8 "Not supported"
9 "Not supported"
10 "Not supported"
$Fit.criteria
Min.max.accuracy MAE MAPE MSE RMSE NRMSE.mean NRMSE.median NRMSE.mean.accuracy NRMSE.median.accuracy Efron.r.squared
1 NA NA NA NA NA NA NA NA NA NA
2 NA NA NA NA NA NA NA NA NA NA
3 NA NA NA NA NA NA NA NA NA NA
4 NA NA NA NA NA NA NA NA NA NA
5 NA NA NA NA NA NA NA NA NA NA
6 NA NA NA NA NA NA NA NA NA NA
7 NA NA NA NA NA NA NA NA NA NA
8 NA NA NA NA NA NA NA NA NA NA
9 NA NA NA NA NA NA NA NA NA NA
10 NA NA NA NA NA NA NA NA NA NA
?accuracy() 表示我需要输入一个 class 预测的对象,并且可以选择输入一个相同长度的数值向量或时间序列进行比较。
> class(x_fcast_test)
[1] "forecast"
> class(x_test)
[1] "ts"
以下是我尝试过的一些变体,以确保我能实现这一目标。 None 这些作品中的任一项。
accuracy(x_fcast_test, x_test)
accuracy(x_fcast_test$mean, x_test)
accuracy(x_fcast_test$mean, as.numeric(x_test))
accuracy(x_fcast_test, as.numeric(x_test))
我应该如何解释这些输出?什么可能导致此类错误?
您加载的包似乎覆盖了预测包中的 accuracy()
函数。
我使用 forecast() 包和以下代码进行了 365 步提前预测:
##The time series is 3650 daily observations of rainfall
x <- ts(x$obs, start=c(2007, 10), end=c(2017, 9), frequency = 365)
##create training set - first 9 years of observations
x_train <- subset(x, start = 1, end = 3285)
##test set - last year of observations
x_test <- subset(x, start = 3286, end = 3650)
##fit the model
x_train_fit <- auto.arima(x_train, seasonal=FALSE, xreg=fourier(x_train, K=1))
##forecast using the model
x_fcast_test <- forecast(x_train_fit,h=365, xreg=fourier(x_test, K=1))
plot(x_fcast_test, col="black")
lines(x_test,col="red")
问题: 当我 运行 accuracy() 函数来测试此预测的准确性时,输出如下所示:
> accuracy(x_fcast_test)
$`Models`
Call
1 "Not supported"
2 "Not supported"
3 "Not supported"
4 "Not supported"
5 "Not supported"
6 "Not supported"
7 "Not supported"
8 "Not supported"
9 "Not supported"
10 "Not supported"
$Fit.criteria
Min.max.accuracy MAE MAPE MSE RMSE NRMSE.mean NRMSE.median NRMSE.mean.accuracy NRMSE.median.accuracy Efron.r.squared
1 NA NA NA NA NA NA NA NA NA NA
2 NA NA NA NA NA NA NA NA NA NA
3 NA NA NA NA NA NA NA NA NA NA
4 NA NA NA NA NA NA NA NA NA NA
5 NA NA NA NA NA NA NA NA NA NA
6 NA NA NA NA NA NA NA NA NA NA
7 NA NA NA NA NA NA NA NA NA NA
8 NA NA NA NA NA NA NA NA NA NA
9 NA NA NA NA NA NA NA NA NA NA
10 NA NA NA NA NA NA NA NA NA NA
?accuracy() 表示我需要输入一个 class 预测的对象,并且可以选择输入一个相同长度的数值向量或时间序列进行比较。
> class(x_fcast_test)
[1] "forecast"
> class(x_test)
[1] "ts"
以下是我尝试过的一些变体,以确保我能实现这一目标。 None 这些作品中的任一项。
accuracy(x_fcast_test, x_test)
accuracy(x_fcast_test$mean, x_test)
accuracy(x_fcast_test$mean, as.numeric(x_test))
accuracy(x_fcast_test, as.numeric(x_test))
我应该如何解释这些输出?什么可能导致此类错误?
您加载的包似乎覆盖了预测包中的 accuracy()
函数。