Ich habe 3 Monate Daten (jede Zeile entspricht jedem Tag) generiert und möchte eine multivariate Zeitreihenanalyse für dieselbe durchführen:
Die verfügbaren Spalten sind -
Date Capacity_booked Total_Bookings Total_Searches %Variation
Jedes Datum hat 1 Eintrag im Datensatz und Daten für 3 Monate. Ich möchte ein multivariates Zeitreihenmodell anpassen, um auch andere Variablen vorherzusagen.
Bisher war dies mein Versuch und ich habe versucht, dasselbe durch das Lesen von Artikeln zu erreichen.
Ich tat das gleiche -
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]
Ich habe einen Validierungssatz und einen Vorhersagesatz. Die Vorhersagen sind jedoch viel schlechter als erwartet.
Die Diagramme des Datensatzes sind - 1.% Variation
Die Ausgabe, die ich erhalte, ist -
Vorhersage-Datenrahmen -
Validierungsdatenrahmen -
Wie Sie sehen können, sind die Vorhersagen weit von den Erwartungen entfernt. Kann mir jemand einen Weg empfehlen, um die Genauigkeit zu verbessern. Wenn ich das Modell auf ganze Daten anpasse und dann die Prognosen drucke, wird auch nicht berücksichtigt, dass der neue Monat begonnen hat, und daher als solcher vorherzusagen. Wie kann das hier aufgenommen werden? Jede Hilfe wird geschätzt.
BEARBEITEN
Link zu dem Datensatz - Datensatz
Vielen Dank