簡體   English   中英

如何測試時間序列模型?

[英]How to test time series model?

我想知道測試時間序列模型的好方法是什么。 假設我在時域t1,t2,... tN中有一個時間序列。 我有輸入,例如zt1,zt2,... ztN和輸出x1,x2 ... xN。

現在,如果這是一個經典的數據挖掘問題,我可以采用已知的方法,例如交叉驗證,留一法,70-30或其他方法。

但是,我應該如何解決按時間序列測試模型的問題? 我是否應該在第一個t1,t2,... t(Nk)輸入上構建模型,並在最后k個輸入上進行測試? 但是,如果我們想最大化對p個步長而不是k個步長(其中p <k)的預測。 我正在尋找一種可靠的解決方案,可以將其應用於我的特定案例。

聽起來您可以選擇

  1. 使用前幾年的數據創建模型,然后查看其對剩余年份的預測情況。

  2. 將所有年份的數據用於輸入條件的某些子集,然后查看其如何使用其余輸入條件進行預測。

隨着時間序列擬合,你必須要小心, 不要在你出的樣本數據,直到您開發的模型之后。 建模的主要問題在於,它很容易過度擬合。

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

現在,如果您有足夠的數據點,建議您嘗試滾動窗口擬合方法。 對於樣本中的每個時間步,您將回顧N個時間步以適合模型,並查看模型中的參數如何隨時間變化。 例如,假設您的模型是線性回歸,其中Y = B0 + B1 * X1 + B2 * X2。 您將對樣本進行N-window_size時間的回歸。 這樣,您將了解Beta相對於時間的敏感程度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM