我正在做TS分析。这两种精确度之间的区别是什么:
fit<-auto.arima(tsdata)
fcast<-forecast(fit,6)
accuracy(fcast) #### First Accuracy
fit<-auto.arima(tsdata)
fcast<-forecast(fit,6)
accuracy(fcast,actual values) #### Second Accuracy当我没有像第一种情况那样在精度函数中指定实际值时,精度函数是如何工作的。
其次,计算精度的正确方法是什么?
发布于 2017-03-27 22:30:31
在这个答案中,我假设您使用的是forecast包中的函数。答案就在accuracy的描述中:
返回预测精度的汇总度量范围。如果提供了x,该函数将基于x-f测量样本外(测试集)预测精度。如果未提供x,则该函数仅根据f"x"-fitted(f)生成预测的样本内(训练集)精度度量。Hyndman和Koehler (2006)对所有度量进行了定义和讨论。
在本例中,x是函数的第二个参数。因此,简而言之,accuracy(fcst)基于训练集提供了预测误差的估计。
例如:假设你有12个月的时间,并预测未来6个月。然后,如果你使用accuracy(fcst),你会得到模型在12个月内的误差(仅)。
现在,让我们假设x =您预测的6个月的实际需求。并且你没有使用这些数据来构建Arima模型。在这种情况下,accuracy(fcst, x)给出了测试集误差,这是一个更好的测量方法,可以更好地衡量您将来使用此模型将获得的结果(与训练集误差相比)。
最佳实践是使用测试集误差,因为这种度量不容易产生偏差(您很可能在训练集上获得比在“隐藏”测试集上“更好”的预测结果,但这些结果将是一种“过拟合”)。如果你有一个测试集,你应该使用测试集作为第二个参数。
https://stackoverflow.com/questions/43048018
复制相似问题