2015-05-26 64 views
0

道歉,如果這是一個簡單的問題/錯誤,但是當我嘗試和使用statsmodels.tsa AR預測時間序列AR時,預測變得非常快速通過我有的數據。這不取決於模型的順序或用於擬合AR模型的數據的長度。自動迴歸模型預測衰減到平坦

我在做什麼錯?

from statsmodels.tsa.ar_model import AR 
section1 = data[0:800]-np.mean(data[0:800]) 
plt.plot(section1) 

enter image description here

x = AR(section1) 
y = x.fit(5) 
z = y.predict(10,1500) 
plt.plot(z) 

enter image description here

+0

您是否知道迴歸模型如何嘗試適合您的數據?預測範圍爲0-800的數據看起來像是從您的訓練集中直接獲得的。 –

+0

是的,我認爲第一個800是訓練集 - 在Ar fit()的文檔字符串中「返回樣本內和樣本外預測」。我想在800以前繼續抽樣並且不會收斂到平均值, – Jonathan

回答

3

沒有什麼錯。這是一個靜態ARMA過程的行爲,其中預測收斂於均值。

如果您有固定的季節性,那麼您可以在季節性滯後時間序列上區別,即使用SARIMA,並且預測會收斂到固定的季節性結構。

如果您有解釋變量,那麼靜態ARMAX的預測將會收斂到由X變量給出的均值。

+0

好的,謝謝。所以也許我用錯誤的想法使用AR模型?我認爲要將2個模型擬合成2個不同的時間序列,併爲每個模型得到一組AR係數。然後,我想抽取第三個時間序列並計算其中的數據點由兩個AR coeff集合中的每一個生成的概率。然後,我可以根據概率將第三個時間序列分類爲更像第一個或第二個模型。然而,作爲「眼球」測試,我希望能夠從每個AR模型生成「假」數據,以查看他們選擇的時間序列類型。 – Jonathan

+0

對不起,我沒有完全理解你的答案。 - 因此一個包含我想要的東西的迴旋答覆。 – Jonathan

+0

如果你想模擬來自ARMA過程的數據,那麼你需要噪音或衝擊來「反彈」時間序列。 statsmodels.tsa中有一個generate_arma_sample函數。 – user333700