我正在进行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
当我没有像第一种情况那样指定精度函数中的实际值时,精度函数如何工作。
其次,计算准确度的正确方法是什么?
答案 0 :(得分:2)
在这个答案中,我假设您正在使用forecast
包中的功能。
答案在accuracy
的描述中:
返回预测准确度的汇总度量范围。如果提供x,则该函数基于x-f测量样本外(测试集)预测准确度。如果未提供x,则该函数仅基于f [&#34; x&#34;] - 拟合(f)生成预测的样本内(训练集)准确度度量。所有措施都在Hyndman和Koehler(2006)中定义和讨论。
在你的情况下x
是函数的第二个参数。因此,简而言之accuracy(fcst)
提供了基于训练集的预测误差的估计。
例如:假设您有12个月并预测6个未来。然后,如果您使用accuracy(fcst)
,则会在12个月内(仅)获得模型的错误。
现在,让我们假设x
=您预测的6个月的实际需求。并且您没有使用此数据来构建Arima模型。在这种情况下,accuracy(fcst, x)
会为您提供测试集错误,这是使用此模型将来获得的更好的衡量标准(与列车集错误相比)。
最佳做法是使用测试集错误,因为此测量不太容易出现偏差(您最有可能获得&#34;更好&#34;训练集上的预测结果然后在&#34;隐藏处&# 34;测试集,但这些结果将是一种过度拟合&#34;)。如果你有一个测试集,你应该使用测试集作为第二个参数。