簡體   English   中英

具有 3 個月數據集的多元時間序列預測

[英]Multivariate time series forecasting with 3 months dataset

我生成了 3 個月的數據(每一行對應於每一天),我想對其進行多變量時間序列分析:

可用的列是 -

Date    Capacity_booked Total_Bookings  Total_Searches  %Variation

每個日期在數據集中有 1 個條目,有 3 個月的數據,我想擬合一個多元時間序列 model 來預測其他變量。

到目前為止,這是我的嘗試,我試圖通過閱讀文章來達到同樣的目的。

我也這樣做了-

df['Date'] = pd.to_datetime(Date , format = '%d/%m/%Y')

data = df.drop(['Date'], axis=1)

data.index = df.Date

from statsmodels.tsa.vector_ar.vecm import coint_johansen
johan_test_temp = data
coint_johansen(johan_test_temp,-1,1).eig



#creating the train and validation set
train = data[:int(0.8*(len(data)))]
valid = data[int(0.8*(len(data))):]

freq=train.index.inferred_freq

from statsmodels.tsa.vector_ar.var_model import VAR

model = VAR(endog=train,freq=train.index.inferred_freq)
model_fit = model.fit()


# make prediction on validation
prediction = model_fit.forecast(model_fit.data, steps=len(valid))

cols = data.columns

pred = pd.DataFrame(index=range(0,len(prediction)),columns=[cols])
    for j in range(0,4):
        for i in range(0, len(prediction)):
           pred.iloc[i][j] = prediction[i][j]

我有一個驗證集和預測集。 然而,預測比預期的要糟糕得多。

數據集的圖是 - 1. % Variation 在此處輸入圖像描述

  1. 容量_已預訂在此處輸入圖像描述

  2. 總預訂量和搜索量在此處輸入圖像描述

我收到的 output 是 -

預測 dataframe -

在此處輸入圖像描述

驗證 Dataframe -

在此處輸入圖像描述

如您所見,預測與預期相差甚遠。 任何人都可以提出一種提高准確性的方法。 此外,如果我在整個數據上擬合 model 然后打印預測,則沒有考慮到新月份已經開始並因此進行預測。 怎么可能被納入這里。 任何幫助表示贊賞。

編輯

鏈接到數據集 - 數據集

謝謝

提高准確性的一種方法是查看每個變量的自相關性,如 VAR 文檔頁面中所建議的那樣:

https://www.statsmodels.org/dev/vector_ar.html

特定滯后的自相關值越大,該滯后對過程的用處就越大。

另一個好主意是查看 AIC 標准和 BIC 標准來驗證您的准確性(上面的相同鏈接有一個使用示例)。 較小的值表明您找到真實估計量的可能性更大。

這樣,您可以改變自回歸 model 的順序,並查看提供最低 AIC 和 BIC 的順序,兩者一起分析。 如果 AIC 指示最佳 model 的滯后為 3,而 BIC 指示最佳 model 的滯后為 5,則應分析 3,4 和 5 的值以查看具有最佳結果的值。

最好的情況是擁有更多數據(因為 3 個月並不多),但您可以嘗試這些方法,看看是否有幫助。

暫無
暫無

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

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