簡體   English   中英

如何修復Python中的ARIMA MODEL錯誤

[英]How to fix ARIMA MODEL bugs in Python

我正在嘗試為我的時間序列數據創建一個ARIMA模型。 我該如何對其代碼進行平滑處理才能使其正常運行?

我正在使用statsmodels在python中創建ARIMA模型,但是卻收到錯誤警告

    indexedDataset_logscale.head(10)
    OUTPUT: 
                Price
    Period  
    2013-02-08  2.515274
    2013-02-11  2.526528
    2013-02-12  2.520113
    2013-02-13  2.515274
    2013-02-14  2.543961
    2013-02-15  2.544040
    2013-02-19  2.530119
    2013-02-20  2.516082
    2013-02-21  2.508786
    2013-02-22  2.5273

    #AR Model
    from statsmodels.tsa.arima_model import ARIMA

    model = ARIMA(indexedDataset_logscale, order=(0, 1, 2))
    results_AR = model.fit(disp = -1)
    plt.plot(datasetLogDiffShifting)
    plt.plot(results_AR.fittedvalues, color = 'red')
    plt.title('RSS: %.4f' %sum((results_AR.fittedvalues-datasetLogDiffShifting['Price'])**2))
    print('Plotting AR Model')



Error messages i get are: 
  • “ ValueWarning:提供了日期索引,但沒有相關的頻率信息,因此在進行預測時將被忽略。例如在進行預測時將被忽略。”,ValueWarning)

  • 8 plt.title('RSS:%.4f'%sum((results_AR.fittedvalues-datasetLogDiffShifting ['Price'])** 2))TypeError:'str'對象不可調用

1)看來您的索引沒有設定頻率嘗試在Arima之前添加此

df.index.freq = 'D'

D是每天的時間戳,似乎您不是線性/有規律的,很難定義問題所在。 檢查熊貓中的其他頻率選項。

為避免警告,請在腳本開頭鍵入以下內容:

#Clear console
import warnings
warnings.filterwarnings("ignore")

問題在於,在您的數據中,索引似乎是每日的,但某些日期不是連續的天。 您可以提供缺少的日期,然后插值這些日期的值,如下所示:

df = df.resample('D').mean()
df["Price"] = df["Price"].interpolate(method='linear', axis=0).ffill().bfill()

然后,您將能夠構建模型並繪制擬合值。

暫無
暫無

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

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