Dự báo chuỗi thời gian đa biến python arima

Dự báo chuỗi thời gian là một lĩnh vực quan trọng của học máy thường bị bỏ qua. Điều này rất quan trọng vì có rất nhiều vấn đề dự đoán liên quan đến thành phần thời gian. Những vấn đề này bị bỏ qua vì chính thành phần thời gian này làm cho các vấn đề về chuỗi thời gian trở nên khó xử lý hơn.

Có rất nhiều yếu tố liên quan đến dự đoán - yếu tố vật lý so với. hành vi tâm lý, hợp lý và không hợp lý, v.v. Tất cả những khía cạnh này kết hợp với nhau để làm cho giá cổ phiếu biến động và rất khó dự đoán với độ chính xác cao. Sử dụng các tính năng như thông báo mới nhất về một tổ chức, kết quả doanh thu hàng quý của họ, v.v. , các kỹ thuật máy học có khả năng khám phá các mẫu và thông tin chi tiết mà chúng tôi chưa từng thấy trước đây và những kỹ thuật này có thể được sử dụng để đưa ra các dự đoán chính xác tuyệt đối

Hãy đọc dữ liệu để dự đoán giá cổ phiếu. Tìm tập lệnh và dữ liệu tại đây

Có nhiều biến trong tập dữ liệu — ngày, mở, cao, thấp, cuối cùng, đóng, tổng_trade_quantity và doanh thu

  • Các cột Mở và Đóng thể hiện giá khởi điểm và giá cuối cùng mà cổ phiếu được giao dịch vào một ngày cụ thể
  • Cao, Thấp và Cuối cùng đại diện cho giá tối đa, tối thiểu và cuối cùng của cổ phiếu trong ngày
  • Tổng số lượng giao dịch là số lượng cổ phiếu được mua hoặc bán trong ngày và Doanh thu [Lacs] là doanh thu của một công ty cụ thể trên một khoảng thời gian nhất định

Ghi chú. thị trường đóng cửa vào cuối tuần và ngày lễ. Lưu ý bảng trên một lần nữa, một số giá trị ngày bị thiếu

Việc tính toán lãi hoặc lỗ thường được xác định bởi giá đóng cửa của một cổ phiếu trong ngày, do đó chúng tôi sẽ coi giá đóng cửa là biến mục tiêu

Di chuyển trung bình

Giá đóng cửa dự đoán cho mỗi ngày sẽ là giá trị trung bình của một tập hợp các giá trị được quan sát trước đó. Thay vì sử dụng trung bình đơn giản, chúng tôi sẽ sử dụng kỹ thuật trung bình động sử dụng bộ giá trị mới nhất cho mỗi dự đoán. Nói cách khác, đối với mỗi bước tiếp theo, các giá trị dự đoán được xem xét trong khi loại bỏ giá trị quan sát cũ nhất khỏi tập hợp. Đây là một con số đơn giản sẽ giúp bạn hiểu điều này rõ ràng hơn

Bước đầu tiên là tạo một khung dữ liệu chỉ chứa các cột Ngày và Giá đóng, sau đó chia nó thành các bộ đào tạo và xác thực để xác minh dự đoán của chúng tôi

RMSE không giúp chúng tôi hiểu mô hình hoạt động như thế nào. Vì vậy, đây là biểu đồ của các giá trị dự đoán cùng với các giá trị thực tế

Giá trị RMSE gần bằng 105 nhưng kết quả không hứa hẹn lắm [bạn có thể thu thập từ biểu đồ]. Các giá trị dự đoán có cùng phạm vi với các giá trị được quan sát trong tập hợp tàu [ban đầu có xu hướng tăng và sau đó giảm dần]

Trong phần tiếp theo, chúng ta sẽ xem xét hai kỹ thuật máy học thường được sử dụng — Hồi quy tuyến tính và kNN, đồng thời xem chúng hoạt động như thế nào trên dữ liệu thị trường chứng khoán của chúng ta

hồi quy tuyến tính

Thuật toán học máy cơ bản nhất có thể được triển khai trên dữ liệu này là hồi quy tuyến tính. chúng tôi không có một tập hợp các biến độc lập. Thay vào đó, chúng tôi chỉ có những ngày tháng. Hãy để chúng tôi sử dụng cột ngày để trích xuất các tính năng như - ngày, tháng, năm, thứ hai/thứ sáu, v.v. và sau đó điều chỉnh mô hình hồi quy tuyến tính

Trước tiên, chúng tôi sẽ sắp xếp tập dữ liệu theo thứ tự tăng dần và sau đó tạo một tập dữ liệu riêng để mọi tính năng mới được tạo không ảnh hưởng đến dữ liệu gốc

Điều này tạo ra các tính năng như

'Năm', 'Tháng', 'Tuần', 'Ngày', 'Ngày của tuần', 'Ngày_của_năm', 'Ngày_cuối_tháng', 'Bắt_đầu_tháng', 'Bắt_đầu_quý', 'Bắt_đầu_quý', 'Cuối_năm' và 'Bắt_đầu_năm'

Ngoài ra, chúng tôi có thể thêm bộ tính năng của riêng mình mà chúng tôi tin rằng sẽ phù hợp với các dự đoán. Chẳng hạn, giả thuyết của tôi là ngày đầu tiên và ngày cuối cùng của tuần có khả năng ảnh hưởng đến giá đóng cửa của cổ phiếu nhiều hơn những ngày khác. Vì vậy, tôi đã tạo một tính năng xác định xem một ngày nhất định là Thứ Hai/Thứ Sáu hay Thứ Ba/Thứ Tư/Thứ Năm

Nếu ngày trong tuần bằng 0 hoặc 4, giá trị cột sẽ là 1, ngược lại là 0. Tương tự, bạn có thể tạo nhiều tính năng. Nếu bạn có một số ý tưởng về các tính năng có thể hữu ích trong việc dự đoán giá cổ phiếu

Giá trị RMSE cao hơn so với kỹ thuật trước đó, điều này cho thấy rõ ràng rằng hồi quy tuyến tính đã hoạt động kém. Hãy xem biểu đồ và hiểu tại sao hồi quy tuyến tính không hoạt động tốt

Một bất lợi trong việc sử dụng các thuật toán hồi quy là mô hình khớp với cột ngày và tháng. Thay vì tính đến các giá trị trước đó từ điểm dự đoán, mô hình sẽ xem xét giá trị từ cùng ngày một tháng trước hoặc cùng ngày/tháng một năm trước

k-Hàng xóm gần nhất

Một thuật toán ML thú vị khác mà người ta có thể sử dụng ở đây là kNN [k hàng xóm gần nhất]. Dựa trên các biến độc lập, kNN tìm ra sự giống nhau giữa các điểm dữ liệu mới và các điểm dữ liệu cũ

Không có sự khác biệt lớn về giá trị RMSE, nhưng biểu đồ cho giá trị dự đoán và giá trị thực tế sẽ mang lại sự hiểu biết rõ ràng hơn

Giá trị RMSE gần giống với mô hình hồi quy tuyến tính và biểu đồ hiển thị cùng một mẫu. Giống như hồi quy tuyến tính, kNN cũng xác định mức giảm vào tháng 1 năm 2018 vì đó là mô hình trong những năm qua. Chúng ta có thể nói rằng các thuật toán hồi quy đã không hoạt động tốt trên bộ dữ liệu này

Kỹ thuật dự báo chuỗi thời gian

ARIMA tự động

ARIMA là một phương pháp thống kê rất phổ biến để dự báo chuỗi thời gian. Các mô hình ARIMA tính đến các giá trị trong quá khứ để dự đoán các giá trị trong tương lai. Có ba thông số quan trọng trong ARIMA

  • p [các giá trị trong quá khứ được sử dụng để dự đoán giá trị tiếp theo]
  • q [lỗi dự báo trong quá khứ được sử dụng để dự đoán các giá trị trong tương lai]
  • d [thứ tự khác biệt]

Điều chỉnh tham số cho ARIMA tiêu tốn rất nhiều thời gian. Vì vậy, chúng tôi sẽ sử dụng ARIMA tự động để tự động chọn kết hợp tốt nhất của [p,q,d] cung cấp ít lỗi nhất. Để đọc thêm về cách ARIMA tự động hoạt động, hãy tham khảo bài viết này

https. //www. phân tíchvidhya. com/blog/2018/10/predicting-stock-price-machine-learningnd-deep-learning-techniques-python/

Bạn có thể sử dụng ARIMA cho chuỗi thời gian đa biến không?

Trong hướng dẫn này, Chúng ta đã học cách xây dựng mô hình chuỗi thời gian đa biến với Auto ARIMA . Chúng tôi đã khám phá cách hoạt động của mô hình Auto ARIMA và cách mô hình này tự động tìm các tham số tốt nhất của mô hình ARIMA. Cuối cùng, chúng tôi đã triển khai mô hình Auto ARIMA. Chúng tôi đã sử dụng mô hình Auto ARIMA để tìm các giá trị p , d và q.

ARIMA là đơn biến hay đa biến?

Ví dụ: mô hình ARIMA có thể dự đoán giá cổ phiếu trong tương lai sau khi quan sát và phân tích giá cổ phiếu trước đó. Mô hình ARIMA sẽ sử dụng biến phụ thuộc thời gian duy nhất [đơn biến] trong chuỗi thời gian để đưa ra dự đoán. Các mô hình ARIMA chỉ hoạt động khi chuỗi thời gian đứng yên.

Làm cách nào để xây dựng mô hình ARIMA trong Python để dự báo chuỗi thời gian?

Hãy bắt đầu nào. .
ARIMA là gì?
Bước 0. Khám phá tập dữ liệu
Bước 1. Kiểm tra tính dừng của chuỗi thời gian
Bước 2. Xác định tham số mô hình ARIMA p, q
Bước 3. Phù hợp với mô hình ARIMA
Bước 4. Đưa ra dự đoán chuỗi thời gian
Không bắt buộc. Tự động điều chỉnh mô hình ARIMA
Bước 5. Đánh giá dự đoán mô hình

Sự khác biệt giữa ARIMA và Arimax là gì?

Mô hình ARIMA được sử dụng để dự báo dữ liệu nhu cầu từ dữ liệu chuỗi thời gian lịch sử, như trong [13]. Trong khi ARIMA là một phương pháp đơn biến, ARIMAX sử dụng nhiều biến để kết hợp dữ liệu ngoài [e. g. , yếu tố môi trường] ngoài dữ liệu nhu cầu lịch sử để dự báo nhu cầu [14].

Chủ Đề