Saya memiliki 3 bulan data (setiap baris yang sesuai dengan setiap hari) dihasilkan dan saya ingin melakukan analisis deret waktu multivarian untuk hal yang sama:
kolom yang tersedia adalah -
Date Capacity_booked Total_Bookings Total_Searches %Variation
Setiap Tanggal memiliki 1 entri dalam dataset dan memiliki 3 bulan data dan saya ingin menyesuaikan model deret waktu multivarian untuk memperkirakan variabel lain juga.
Sejauh ini, ini adalah usaha saya dan saya mencoba untuk mencapai hal yang sama dengan membaca artikel.
Saya melakukan hal yang sama -
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]
Saya memiliki satu set validasi dan prediksi. Namun prediksi jauh lebih buruk dari yang diharapkan.
Plot dataset adalah - 1.% Variasi
Output yang saya terima adalah -
Kerangka data prediksi -
Kerangka Data Validasi -
Seperti yang Anda lihat, prediksi jauh dari yang diharapkan. Adakah yang bisa menyarankan cara untuk meningkatkan akurasi. Juga, jika saya cocok dengan model pada seluruh data dan kemudian mencetak perkiraan, itu tidak memperhitungkan bahwa bulan baru telah dimulai dan karenanya untuk memprediksi seperti itu. Bagaimana itu bisa dimasukkan di sini. bantuan apa pun dihargai.
EDIT
Tautan ke dataset - Dataset
Terima kasih
Jawaban:
Salah satu cara untuk meningkatkan akurasi Anda adalah dengan melihat autokorelasi masing-masing variabel, seperti yang disarankan di halaman dokumentasi VAR:
https://www.statsmodels.org/dev/vector_ar.html
Semakin besar nilai autokorelasi untuk jeda tertentu, semakin bermanfaat jeda ini untuk proses.
Ide bagus lainnya adalah melihat ke kriteria AIC dan kriteria BIC untuk memverifikasi keakuratan Anda (tautan yang sama di atas memiliki contoh penggunaan). Nilai yang lebih kecil menunjukkan bahwa ada kemungkinan lebih besar bahwa Anda telah menemukan penaksir yang sebenarnya.
Dengan cara ini, Anda dapat memvariasikan urutan model autoregresif Anda dan melihat salah satu yang menyediakan AIC dan BIC terendah, keduanya dianalisis bersama. Jika AIC menunjukkan model terbaik dengan lag 3 dan BIC menunjukkan model terbaik memiliki lag 5, Anda harus menganalisis nilai 3,4 dan 5 untuk melihat satu dengan hasil terbaik.
Skenario terbaik adalah memiliki lebih banyak data (karena 3 bulan tidak banyak), tetapi Anda dapat mencoba pendekatan ini untuk melihat apakah itu membantu.
sumber