2011-01-24 69 views
1

我想知道測試時間序列模型的好方法是什麼。假設我在時間域t1,t2,... tN中有一個時間序列。我有輸入,比如zt1,zt2,... ztN和輸出x1,x2 ... xN。現在,如果這是一個經典的數據挖掘問題,我可以使用已知的方法,如交叉驗證,一次性退出,70-30或其他方法。如何測試時間序列模型?

但是,我應該如何處理測試我的模型與時間序列的問題?我應該在第一個t1,t2,... t(N-k)輸入上建立模型,並在最後k個輸入上測試它嗎?但是,如果我們想要最大化預測,而不是k(其中p爲< k)。我正在尋找一個強大的解決方案,我可以將其應用於我的具體案例。

+4

您希望爲您的特定案例提供強大的解決方案,但您對案例的具體情況很少。一個好的_start_將告訴我們你正在使用什麼類型的估計器。您可以在[CrossValidated](http://stats.stackexchange.com/)上獲得更好的問題答案。 – 2011-01-24 15:29:33

回答

3

隨着時間序列擬合,你需要小心使用外的樣本數據,直到後您開發的模型。建模的主要問題是它很容易過度配合。

通常我們所做的是將70%用於樣本內建模,30%用於樣本外測試/驗證。而當我們在生產中使用該模型時,我們每天收集的數據成爲真正的樣本外數據:您從未見過或使用過的數據。

現在,如果您有足夠的數據點,我會建議嘗試滾動窗口擬合方法。對於樣本中的每個時間步,您回顧N個時間步以適合您的模型,並查看模型中的參數隨時間的變化。例如,假設您的模型是線性迴歸,Y = B0 + B1 * X1 + B2 * X2。你會在樣本上做N - window_size迴歸。這樣,你就明白了貝塔斯對時間的敏感程度。

2

這聽起來像你有

  1. 之間進行選擇使用的前幾年數據的創建模型,然後看看它如何預測殘生。

  2. 對輸入條件的某個子集使用所有年份的數據,然後使用剩餘的輸入條件預測其預測效果如何。