2017-03-27 84 views
0

我在做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 

如何准确性功能工作时,我不指定精度功能的实际值在第一种情况。

其次什么是正确的方法来计算准确性?

回答

2

在这个答案我假设你使用的功能从forecast包。 答案在accuracy的描述中:

返回预测精度概要度量的范围。如果提供了x,则该函数可以测量基于x-f的样本外(测试集)预测精度。如果未提供x,则函数仅根据f [“x”] - 拟合(f)生成预测的内部样本(训练集)精度度量。 Hyndman和Koehler(2006)对所有措施进行了定义和讨论。

在你的情况下,x是函数的第二个参数。所以,总之,accuracy(fcst)提供了基于训练集的预测误差的估计。

例如:让我们假设您有12个月的时间并预测6个未来。然后,如果您使用accuracy(fcst),则会在12个月内收到该模型的错误(仅限于)。

现在,我们假设x =您预测的6个月的实际需求。而且你没有使用这些数据来构建Arima模型。在这种情况下,accuracy(fcst, x)会给出测试集错误,这是使用此模型(与列车集错误相比)未来将获得的更好的衡量指标。

最佳做法是使用测试集错误,因为此测量不太容易出现偏差(您很可能会在训练集上得到“更好”的预测结果,然后在“隐藏”测试集上得到“更好”的预测结果,但这些结果将是一种“过度配合”)。如果你有一个测试集,你应该使用测试集作为第二个参数。

+0

非常感谢,阿迪...它帮助了很多 –

+0

当然,没问题@ShivamSarin。如果您发现我的答案有帮助,请将其标为正确答案....谢谢。 –