Dự báo chuỗi thời gian đa biến với bộ dữ liệu 3 tháng


12

Tôi có 3 tháng dữ liệu (mỗi hàng tương ứng với mỗi ngày) được tạo và tôi muốn thực hiện phân tích chuỗi thời gian đa biến cho cùng:

các cột có sẵn là -

Date    Capacity_booked Total_Bookings  Total_Searches  %Variation

Mỗi Ngày có 1 mục trong tập dữ liệu và có 3 tháng dữ liệu và tôi muốn điều chỉnh mô hình chuỗi thời gian đa biến để dự báo các biến khác.

Cho đến nay, đây là nỗ lực của tôi và tôi đã cố gắng đạt được điều tương tự bằng cách đọc các bài báo.

Tôi làm giống vậy -

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]

Tôi có một bộ xác nhận và bộ dự đoán. Tuy nhiên, dự đoán là cách tồi tệ hơn dự kiến.

Các lô của bộ dữ liệu là - 1.% Biến đổi nhập mô tả hình ảnh ở đây

  1. Dung lượng_Booked nhập mô tả hình ảnh ở đây

  2. Tổng số đặt và tìm kiếm nhập mô tả hình ảnh ở đây

Đầu ra mà tôi đang nhận là -

Khung dữ liệu dự đoán -

nhập mô tả hình ảnh ở đây

Khung dữ liệu xác nhận -

nhập mô tả hình ảnh ở đây

Như bạn có thể thấy rằng các dự đoán đang tắt đi những gì được mong đợi. Bất cứ ai có thể tư vấn một cách để cải thiện độ chính xác. Ngoài ra, nếu tôi phù hợp với mô hình trên toàn bộ dữ liệu và sau đó in dự báo, thì sẽ không tính đến việc tháng mới đã bắt đầu và do đó để dự đoán như vậy. Làm thế nào mà có thể được kết hợp ở đây. bất kỳ trợ giúp được đánh giá cao.

BIÊN TẬP

Liên kết đến tập dữ liệu - Bộ dữ liệu

Cảm ơn


bạn có thể đăng std của các lớp học
Swarathesh Addanki

@SwaratheshAddanki Tôi đã thêm liên kết đến tập dữ liệu trong câu hỏi ... bạn có thể xem qua.
dper

Bạn có thể thử sử dụng thuật toán học máy cổ điển bằng các tính năng "sản xuất tại nhà". Ví dụ, bạn có thể thử đào tạo một tri giác hoặc một SVM hoặc Rừng ngẫu nhiên trong một ngày bằng 7 ngày qua (tạo một hàng với các tính năng 4 * 7). Bạn cũng có thể tính đến cùng một ngày trong tuần trước (thứ tư nếu bạn muốn dự đoán cho thứ tư) và trung bình của mỗi thứ tư của tháng trước. Đồng thời sử dụng xác thực chéo để có số đo hiệu suất thực tế hơn
politinsa

@politinsa Bạn có thể chia sẻ một ví dụ cho cùng không?
dper

1
Tôi tin rằng bạn không có đủ dữ liệu để phù hợp với một mô hình tốt: tính năng chính dường như là các bước nhảy xuống vào cuối tháng này. Chúng ta chỉ có thể thấy hai trong số các bước nhảy này trong tập dữ liệu và chỉ từ hai lần quan sát sẽ không thể tìm hiểu nhiều về một bước nhảy thông thường trông như thế nào. Tương tự, sự tăng trưởng trong các tháng có vẻ đủ đều để mô hình có thể cố gắng mô tả hình dạng của các đường cong này, nhưng có rất ít thông tin về việc các giá trị sẽ tăng bao nhiêu trong một tháng thông thường. Với điều này, "tháng sau bằng với tháng trước" có thể là một mô hình đủ tốt?
jochen

Câu trả lời:


1

Một cách để cải thiện độ chính xác của bạn là xem xét tự động tương quan của từng biến, như được đề xuất trong trang tài liệu VAR:

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

Giá trị tự tương quan càng lớn đối với độ trễ cụ thể, độ trễ này sẽ hữu ích hơn cho quy trình.

Một ý tưởng hay khác là tìm đến tiêu chí AIC và tiêu chí BIC để xác minh tính chính xác của bạn (cùng một liên kết ở trên có một ví dụ về cách sử dụng). Các giá trị nhỏ hơn chỉ ra rằng có một xác suất lớn hơn mà bạn đã tìm thấy công cụ ước tính thực sự.

Bằng cách này, bạn có thể thay đổi thứ tự của mô hình tự phát và xem mô hình cung cấp AIC và BIC thấp nhất, cả hai được phân tích cùng nhau. Nếu AIC chỉ ra mô hình tốt nhất có độ trễ là 3 và BIC chỉ ra mô hình tốt nhất có độ trễ là 5, bạn nên phân tích các giá trị 3,4 và 5 để xem mô hình nào có kết quả tốt nhất.

Kịch bản tốt nhất sẽ có nhiều dữ liệu hơn (vì 3 tháng là không nhiều), nhưng bạn có thể thử các phương pháp này để xem nó có giúp ích không.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.