2017-03-27 85 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。如果您發現我的答案有幫助,請將其標爲正確答案....謝謝。 –