ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU Đối tượng: Dữ liệu là tập hợp các giá trị được ghi lại theo thời gian Phạm vi nghiên cứu: Bài toán dự báo trên chuỗi thời gian đa biến bằng việc xây dựng
TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Trong bối cảnh công nghệ phát triển nhanh chóng và thông tin gia tăng, khai thác dữ liệu trở nên thiết yếu để đáp ứng nhu cầu xã hội và quốc gia Dự báo chuỗi thời gian đóng vai trò quan trọng trong việc phân tích và dự đoán xu hướng, giúp đưa ra quyết định chính xác trong lập kế hoạch sản xuất, quản lý rủi ro, và xác định chiến lược tiếp thị và phân phối.
Trong dự báo chuỗi thời gian đơn biến, mô hình Feedforward Neural Network (FFNN) thường không đạt hiệu suất tối ưu do thiếu sự tương tác và phụ thuộc giữa các yếu tố Tuy nhiên, khi áp dụng dự báo cho nhiều chuỗi dữ liệu với nhiều biến độc lập, kết quả có thể cải thiện đáng kể Chẳng hạn, trong dự báo thời tiết, việc kết hợp các yếu tố như nhiệt độ, độ ẩm và tốc độ gió giúp nâng cao độ chính xác trong dự đoán nhiệt độ tương lai.
Mô hình Vector Autoregressive Neural Network (VARNN) là lựa chọn tối ưu cho dự báo đa biến, nhờ vào khả năng linh hoạt trong xử lý các tương tác đa biến và mô hình hóa yếu tố thời gian cùng tương quan giữa các biến đầu vào VARNN cung cấp dự đoán đa bước trong tương lai một cách hiệu quả, từ đó nâng cao độ chính xác và hiệu quả trong quá trình ra quyết định dựa trên dữ liệu.
MỤC TIÊU CỦA ĐỀ TÀI
Nghiên cứu phương pháp, từ đó xây dựng mô hình VARNN áp dụng lên chuỗi thời gian đa biến trong bài toán dự báo trên chuỗi thời gian.
PHƯƠNG PHÁP NGHIÊN CỨU
Sau khi hoàn thành tiểu luận chuyên ngành về dự báo chuỗi thời gian bằng mạng nơ-ron hồi tiếp (FFNN), tôi đã tiến hành tìm hiểu và thu thập thông tin, tài liệu liên quan đến dự báo chuỗi thời gian đa biến bằng mạng nơ-ron hồi tiếp biến thể (VARNN) Từ đó, tôi đã lựa chọn các công trình nghiên cứu phù hợp với chủ đề để sử dụng trong bài luận này.
Nghiên cứu của Marco Peixeiro trong cuốn sách “Time Series Forecasting in Python” [1] được xuất bản năm 2020 Cuốn sách cung cấp một nghiên cứu toàn diện về
Nghiên cứu này tập trung vào hai lĩnh vực chính: học sâu và thống kê, đặc biệt là trong phân tích dữ liệu chuỗi thời gian và các kỹ thuật dự báo chuỗi thời gian Qua các ví dụ thực tế sử dụng ngôn ngữ lập trình Python, bài viết sẽ hướng dẫn triển khai các mô hình từ những phương pháp đơn giản đến những phương pháp phức tạp hơn.
Nghiên cứu của Gabriel BAILL trong luận án "Autoregressive Time Series Forecasting with Neural Networks" vào năm 2022, dưới sự hướng dẫn của Giáo sư Rainer von Sachs, tập trung vào dự báo chuỗi thời gian bằng mô hình Auto-Regressive Neural Network(p) với các tham số được tối ưu hóa Nghiên cứu đánh giá hiệu suất của mô hình này trong việc dự báo một bước tiến và so sánh với mô hình tuyến tính Auto-Regressive(p) qua nhiều kiến trúc và siêu tham số khác nhau.
Trong nghiên cứu "THE VARNN MODEL FOR MULTIVARIATE TIME SERIES FORECASTING" của Dhoriva U Wutsqa, mô hình Vector Autoregressive Neural Network (VARNN) được trình bày như một giải pháp cho dự báo chuỗi thời gian đa biến Mô hình này là một dạng phi tuyến và phi tham số, được phát triển từ mô hình Vector Autoregressive (VAR) Tài liệu cung cấp thông tin chi tiết về kiến trúc và phương pháp ước lượng của VARNN, đồng thời đánh giá hiệu suất của nó trong việc dự báo chuỗi thời gian phi tuyến.
- Phân tích, xây dựng mô hình VARNN
- Kiểm thử, nhận xét và đánh giá kết quả của mô hình VARNN.
KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC
Sau khi xây dựng mô hình dự đoán chuỗi thời gian đa biến bằng mô hình VARNN để dự đoán xu hướng, dự kiến kết quả đạt được:
- Nắm được lý thuyết về phân tích dữ liệu chuỗi thời gian đa biến trên mô hình VARNN
- Xây dựng được mô hình VARNN dùng cho việc phân tích trên chuỗi thời gian đa biến trên một số tập dữ liệu
Mô hình VARNN được so sánh hiệu suất với các mô hình khác như VAR, ARIMA, FFNN và LSTM để đánh giá khả năng dự đoán trong việc xử lý chuỗi thời gian phi tuyến.
TỔNG QUAN VỀ CHUỖI THỜI GIAN VÀ DỰ BÁO TRÊN CHUỖI THỜI GIAN
CHUỖI THỜI GIAN
1.1.1 Khái niệm chuỗi thời gian
Chuỗi thời gian là khái niệm thiết yếu trong phân tích dữ liệu và dự báo, liên quan đến việc thu thập và tổ chức dữ liệu theo thời gian Nó giúp phân tích xu hướng, mô hình hóa và dự đoán các thay đổi trong tương lai.
Trong chuỗi thời gian, mỗi điểm dữ liệu được liên kết với một thời điểm cụ thể và có thứ tự thời gian Các điểm dữ liệu này có thể được ghi lại với tần suất khác nhau, từ giây, phút, giờ, ngày, tháng đến năm, tùy thuộc vào tần suất quan sát và mục đích nghiên cứu Điều này có nghĩa là mỗi điểm dữ liệu trong chuỗi thời gian đều có giá trị và thời gian tương ứng.
Chuỗi thời gian cung cấp thông tin về sự biến đổi của một biến số theo thời gian, cho phép phân tích xu hướng, mô hình hóa quy luật và dự đoán giá trị tương lai Nó được ứng dụng rộng rãi trong các lĩnh vực như kinh tế học, tài chính, khoa học môi trường, y học, hệ thống điện và giao thông vận tải.
Hình 1 1: Doanh thu hàng quý của công ty Johnson & Johnson bằng USD từ năm 1960 đến năm
1.1.2 Các thành phần của chuỗi thời gian
Tất cả các chuỗi thời gian đều có thể phân rã thành ba thành phần chính: xu hướng, mùa vụ và phần còn lại Việc phân tích các thành phần này giúp nâng cao hiểu biết và khám phá sâu hơn về chuỗi thời gian.
Phân rã chuỗi thời gian là một nhiệm vụ thống kê quan trọng giúp tách biệt các thành phần của dữ liệu, cho phép chúng ta trực quan hóa từng phần riêng lẻ Việc này hỗ trợ nhận diện xu hướng và mùa vụ trong dữ liệu, điều mà thường khó khăn khi chỉ nhìn vào tập dữ liệu tổng thể.
Một ví dụ về phân rã chuỗi thời gian để hiểu rõ về các thành phần:
Hình 1 2: Thu nhập mỗi cổ phiếu hàng quý của Johnson & Johnson
Xu hướng là sự thay đổi chậm và liên tục theo thời gian, thể hiện xu hướng chung hoặc dài hạn của dữ liệu trong một khoảng thời gian nhất định Xu hướng có thể là tăng dần (xu hướng tích cực), giảm dần (xu hướng tiêu cực) hoặc ổn định (xu hướng phẳng) Đây là một tính chất đặc trưng trong dữ liệu chuỗi thời gian Ví dụ, xu hướng ban đầu có thể phẳng nhưng sau đó tăng mạnh, cho thấy có một xu hướng tăng trong dữ liệu.
Hình 1 3: Tính xu hướng của cổ phiếu hàng quý của Johnson & Johnson
Tính mùa vụ là sự biến đổi có chu kỳ lặp lại trong dữ liệu, thường bị ảnh hưởng bởi các yếu tố tự nhiên hoặc hành vi kinh tế, chính trị Những biến đổi này có thể diễn ra theo mùa hoặc theo chu kỳ hàng ngày, hàng tuần, hàng tháng, hoặc hàng năm Ví dụ, trong một năm hoặc bốn quý, lợi nhuận trên mỗi cổ phiếu thường bắt đầu thấp, sau đó tăng lên và giảm vào cuối năm.
Hình 1 4: Tính mùa vụ của cổ phiếu hàng quý của Johnson & Johnson
Residuals là phần còn lại sau khi loại bỏ xu hướng và thành phần mùa vụ từ chuỗi dữ liệu gốc Chúng đại diện cho sự khác biệt giữa giá trị quan sát thực tế và giá trị dự đoán của mô hình Residuals được sử dụng để kiểm tra tính phù hợp của mô hình và phân tích các biến động không thể giải thích bằng xu hướng và mùa vụ.
Hình 1 5: Residuals của cổ phiếu hàng quý của Johnson & Johnson
Chuỗi dừng là một khái niệm quan trọng trong phân tích chuỗi thời gian, được xác định khi các thuộc tính thống kê của chuỗi không thay đổi theo thời gian Một chuỗi thời gian được coi là dừng khi nó có trung bình, phương sai và tự tương quan không đổi, cho thấy các thuộc tính này không phụ thuộc vào thời gian.
7 có nghĩa là các thông số thống kê của chuỗi dừng không thay đổi qua các khoảng thời gian khác nhau.[1]
Một chuỗi thời gian dừng là điều kiện cần thiết để áp dụng các mô hình dự báo hiệu quả Nếu chuỗi không dừng, như khi có xu hướng, biến động ngẫu nhiên hoặc yếu tố mùa vụ, các mô hình dự báo sẽ không chính xác và kết quả dự đoán sẽ không đáng tin cậy.
1.1.3.2 Phương pháp kiểm định chuỗi dừng
Khi phân tích chuỗi thời gian, việc xác định tính chất dừng của chuỗi là rất quan trọng để đảm bảo hiệu quả của quá trình phân tích Có nhiều phương pháp để kiểm tra tính dừng, và một trong những phương pháp phổ biến là
Bài kiểm tra hình ảnh cho phép nhận diện các đặc điểm của chuỗi dữ liệu thông qua việc vẽ biểu đồ, giúp phát hiện dấu hiệu biến đổi trung bình và phương sai theo thời gian Nếu biểu đồ cho thấy xu hướng tăng giảm hoặc biến động kéo dài, điều này chỉ ra rằng chuỗi dữ liệu có thể không ổn định và cần được chuyển đổi để đạt tính dừng.
Để kiểm tra tính dừng của chuỗi thời gian, một phương pháp hiệu quả là phân tích các thống kê tổng quan như giá trị trung bình và phương sai Việc tính toán những tham số này giúp xác định sự biến đổi của chuỗi theo thời gian Nếu các giá trị này không có sự thay đổi đáng kể, chuỗi thời gian có thể được xem là dừng.
Doanh thu từ vở nhạc kịch Broadway 'Wicked' có sự biến động, nhưng giá trị trung bình và độ lệch chuẩn của các con số này vẫn duy trì ổn định, cho thấy đây vẫn là một chuỗi dừng hiệu quả.
Để kiểm tra tính dừng của chuỗi thời gian, các kiểm tra thống kê là công cụ quan trọng, trong đó hai phương pháp phổ biến nhất là Augmented Dickey-Fuller (ADF) và Kwiatkowski Phillips Schmidt Shin (KPSS) Những kiểm tra này giúp xác định xem các kỳ vọng về tính dừng có được đáp ứng hay không.
BÀI TOÁN DỰ BÁO TRÊN CHUỖI THỜI GIAN ĐA BIẾN
Dự báo chuỗi thời gian là quá trình dự đoán giá trị của một biến theo thời gian dựa trên các quan sát trong quá khứ Khái niệm này đã thu hút sự quan tâm đáng kể từ cộng đồng khoa học dữ liệu và nghiên cứu trong nhiều thập kỷ.
Trong phân tích chuỗi thời gian, việc nhận diện và hiểu các mẫu, xu hướng và biến động trong dữ liệu là rất quan trọng Điều này giúp chúng ta nắm bắt mối tương quan giữa các giá trị quá khứ và tương lai, từ đó hỗ trợ việc dự đoán và ước lượng giá trị của các biến trong tương lai.
Sự tương quan giữa các giá trị trong quá khứ và tương lai của chuỗi thời gian là rất quan trọng, đặc biệt trong dự đoán chuỗi thời gian đa biến Ngoài ra, việc hiểu rõ sự tương tác giữa các biến cũng giúp làm sáng tỏ mối quan hệ giữa chúng, từ đó nâng cao độ chính xác của kết quả dự đoán.
Dự báo chuỗi thời gian nhằm mục đích xác định mô hình hoặc thuật toán thích hợp để dự đoán giá trị tương lai dựa trên dữ liệu quá khứ Các phương pháp dự báo chuỗi thời gian được phân loại thành hai nhóm chính: phương pháp thống kê và phương pháp học máy.
1.2.2 Các mô hình dự báo chuỗi thời gian đa biến
- Mô hình Vector Autoregression (VAR):
Mô hình VAR (Vector Autoregression) là một công cụ thống kê quan trọng trong phân tích chuỗi thời gian đa biến, cho phép mô hình hóa sự phụ thuộc đồng thời giữa nhiều biến trong một hệ thống Khác với mô hình autoregression đơn biến (AR), mô hình VAR không chỉ dự đoán giá trị của một biến dựa trên các giá trị quá khứ của chính nó, mà còn có khả năng dự đoán giá trị của tất cả các biến trong hệ thống dựa trên các giá trị quá khứ của chúng.
Mô hình VAR (Vector Autoregression) giả định rằng mỗi biến trong hệ thống được mô hình hóa dựa trên lịch sử của chính nó và lịch sử của các biến khác Điều này cho phép phân tích mối quan hệ giữa các biến và dự đoán các giá trị tương lai một cách hiệu quả.
Công thức của AR: yt = C + ϕ1yt-1 + ϕ2yt-2 +⋅⋅⋅+ ϕpyt-p + ϵt (1.6) Trong đó:
- yt: giá trị của chuỗi thời gian tại thời điểm t
- ϕ1, ϕ2, , ϕp: các hệ số tương ứng với giá trị quá khứ của chuỗi thời gia
- εt: độ nhiễu của chuỗi thời gian tại thời điểm t
Mô hình VAR(1) cho phép mô hình hóa các chuỗi thời gian đa biến, trong đó mỗi chuỗi có thể ảnh hưởng đến chuỗi khác Để minh họa, xem xét hai chuỗi thời gian được ký hiệu là y1,t và y2,t, mà từ đó có thể biểu diễn mô hình bằng ký hiệu ma trận.
VAR cho phép mô hình hóa mối quan hệ đồng thời giữa các biến, giúp phân tích tác động của chúng lên nhau trong hệ thống một cách hiệu quả.
- Mô hình Multivariate autoregressive integrated moving average (VARIMA)
Mô hình VARIMA là một phương pháp phân tích chuỗi thời gian đa biến, được phát triển từ mô hình VAR Trong mô hình này, mỗi biến được dự đoán dựa trên các giá trị trễ của chính nó và các biến khác trong hệ thống Đặc biệt, VARIMA còn sử dụng các giá trị trung bình trượt của các biến để cải thiện độ chính xác trong dự đoán.
Giá trị trung bình trượt là một phương pháp thống kê quan trọng giúp ước lượng giá trị trung bình của chuỗi dữ liệu theo thời gian Phương pháp này được áp dụng để làm mịn dữ liệu, loại bỏ nhiễu và nhận diện xu hướng một cách hiệu quả.
- 𝑋t: vector biến ngẫu nhiên đa biến tại thời điểm t
- Φ1, Φ2, , Φp: ma trận hệ số tự hồi quy (autoregressive)
- 𝑋t-1, 𝑋t-1, , 𝑋t-p: các vector giá trị trễ của biến ngẫu nhiên đa biến
- 𝐵1, 𝐵2, , 𝐵p: ma trận hệ số trung bình trượt (moving average)
VARIMA là mô hình kết hợp giữa tự hồi quy và trung bình trượt, cho phép mô hình hóa các mẫu không tuyến tính phức tạp hơn so với VAR Tuy nhiên, việc sử dụng VARIMA cũng đòi hỏi một số giả định về tính chất dữ liệu, làm cho quá trình ước lượng và dự báo trở nên phức tạp hơn.
- Mô hình Multivariate autoregressive integrated moving average (VECM)
Mô hình VECM (Vector Error Correction Model) là một phương pháp trong kinh tế lượng giúp mô hình hóa mối quan hệ dài hạn giữa các biến trong một hệ thống Phương pháp này thường được áp dụng trong phân tích chuỗi thời gian đa biến, nhằm nghiên cứu và dự báo các quan hệ đồng tích hợp (cointegration) giữa các biến.
Cointegration là khái niệm quan trọng trong phân tích chuỗi thời gian đa biến, cho thấy rằng các biến có thể di chuyển cùng nhau trong dài hạn, mặc dù có sự biến động ngắn hạn Mô hình VECM được sử dụng để mô hình hóa mối quan hệ cointegration bằng cách chuyển đổi chuỗi dữ liệu gốc thành hệ thống chuỗi dữ liệu mới, trong đó các sai số của các biến được kết hợp để tạo ra các thành phần cointegrating.
- Δyt: vector các biến chênh lệch tại thời điểm t
- Π: ma trận hệ số long-run (cointegrating) và đại diện cho sự điều chỉnh dài hạn từ sai số cointegrating
- B1, B2, , Bp: các ma trận hệ số short-run (transitory) và đại diện cho tương tác ngắn hạn giữa các biến
- Yt-1, ΔYt-1, ΔYt-2, , ΔYt-p: các vector biến phụ thuộc và biến chênh lệch tại các thời điểm trước đó
- εt: vector sai số ngẫu nhiên tại thời điểm t
Mô hình VECM là sự phát triển của mô hình Vector Autoregression (VAR), cho phép mô hình hóa các biến dựa trên lịch sử của chính chúng và các biến khác trong hệ thống Trong khi VAR không xử lý được các mối quan hệ đồng liên kết (cointegration), VECM khắc phục điều này bằng cách sử dụng sai số điều chỉnh đồng liên kết (error correction term) để mô hình hóa các quan hệ dài hạn giữa các biến.
- Mô hình K-Nearest Neighbors (KNN):
Mô hình KNN (K-Nearest Neighbors) là một phương pháp học máy không tham số, được áp dụng cho cả phân loại và hồi quy Nguyên lý hoạt động của KNN dựa trên sự tương đồng giữa các điểm dữ liệu, trong đó một điểm dữ liệu sẽ được phân loại hoặc dự đoán giá trị dựa vào các hàng xóm gần nhất.
Hình 1 8: Mô hình K-Nearest Neighbors
Cách hoạt động của KNN:
MÔ HÌNH VECTOR AUTOREGRESSIVE NEURAL NETWORK (VARNN)
MÔ HÌNH AUTOREGRESSIVE (AR)
Mô hình tự hồi quy (AR) là một phương pháp tuyến tính dự đoán giá trị hiện tại dựa trên các giá trị quá khứ Trong mô hình này, giá trị hiện tại được tính bằng tổng các giá trị quá khứ nhân với hệ số tương ứng Mô hình được ký hiệu là AR(p), trong đó “p” đại diện cho thứ tự của mô hình, cho biết số lượng giá trị trễ mà chúng ta muốn sử dụng để dự đoán.
- Xt: giá trị tại thời điểm t
- c: hằng số (có thể bằng 0)
- φk: các hệ số tương ứng với giá trị quá khứ của chuỗi thời gian
- Xt-k: những giá trị trễ
- εt : độ nhiễu của chuỗi thời gian tại thời điểm t
Bậc p của mô hình AR xác định số lần quan sát dừng quá khứ được sử dụng để xây dựng hàm tự tương quan Mô hình AR(1) chỉ phụ thuộc vào giá trị trước đó, trong khi mô hình AR(2) phụ thuộc vào hai giá trị trước đó Điều kiện dừng cho mô hình là tổng các tham số phân tích hồi quy phải nhỏ hơn 1.
Điều kiện 𝜑 1 + 𝜑 2 + ⋯ + 𝜑 p < 1 giúp ngăn chặn sự phụ thuộc quá mạnh giữa giá trị hiện tại và các giá trị quá khứ Điều này rất quan trọng để tránh hiện tượng phân kỳ trong chuỗi thời gian, từ đó đảm bảo rằng các dự đoán của mô hình sẽ chính xác và đáng tin cậy.
Quá trình hoạt động của mô hình AR bắt đầu bằng việc ước lượng các hệ số autoregressive (AR coefficients), thể hiện mức độ ảnh hưởng của các giá trị quá khứ lên giá trị hiện tại của biến Để ước lượng các hệ số này, mô hình AR thường áp dụng các phương pháp như Yule-Walker hoặc Maximum Likelihood Estimation (MLE).
Phương pháp Yule-Walker ước lượng các hệ số AR thông qua các phương trình Yule-Walker, dựa vào việc giải hệ phương trình tương quan tự Tuy nhiên, phương pháp này không hiệu quả với kích thước mẫu nhỏ, dẫn đến ước lượng không chính xác và không ổn định cho các hệ số AR.
Phương pháp ước lượng tối đa (MLE) là một kỹ thuật hiệu quả cho các mẫu nhỏ, sử dụng quy tắc cực đại hóa hàm hợp lý để xác định giá trị của các hệ số.
AR tốt nhất dựa trên dữ liệu quan sát được
Trong đó ∅̂ là giá trị ước lượng của vector tham số θ mà tối đa hóa hàm likelihood L(θ|x)
Sau khi ước lượng các hệ số AR, mô hình AR sẽ dựa vào các giá trị quá khứ của biến để dự đoán giá trị hiện tại theo công thức của mô hình này.
2.1.3 Kết quả là một dự đoán cho giá trị hiện tại của biến
Mô hình AR cho phép lặp lại quá trình dự đoán để xác định giá trị trong tương lai Sau khi dự đoán giá trị hiện tại, giá trị này có thể được xem như một giá trị quá khứ để tiếp tục dự đoán cho thời điểm tiếp theo Quá trình này có thể kéo dài cho đến khi đạt được thời điểm dự đoán mong muốn.
MÔ HÌNH VECTOR AUTOREGRESSION (VAR)
Mô hình VAR (Vector Autoregression) là một công cụ thống kê quan trọng trong phân tích chuỗi thời gian đa biến, mở rộng từ mô hình autoregression đơn biến (AR) Mô hình này cho phép dự đoán giá trị của tất cả các biến trong hệ thống dựa trên lịch sử của cả chính nó và các biến khác, từ đó phản ánh sự phụ thuộc đồng thời giữa nhiều biến VAR giả định rằng mỗi biến được mô hình hóa không chỉ dựa vào quá khứ của chính nó mà còn dựa vào quá khứ của các biến khác trong hệ thống.
Mô hình AR có thể được mở rộng để mô phỏng các chuỗi thời gian đa biến, trong đó mỗi chuỗi tác động đến chuỗi khác Cụ thể, với hai biến thời gian y1,t và y2,t, mô hình VAR(1) có thể được biểu diễn dưới dạng ma trận, cho phép phân tích mối quan hệ giữa các chuỗi thời gian này.
- y1,t và y2,t: giá trị của hai biến tại thời điểm t
- 𝜙1,1, 𝜙 1,2, 𝜙 2,1 và 𝜙 2.2: các tham số biểu thị mức độ tương quan và mức độ ảnh hưởng của biến quá khứ lên biến hiện tại
- ε1,t và ε2,t: các thành phần nhiễu ngẫu nhiên có phân phối Gaussian và có trung bình bằng 0 và phương sai không đổi
Vector nhiễu trắng là một chuỗi các biến ngẫu nhiên không phụ thuộc vào nhau và có những đặc điểm sau:
Giá trị trung bình của tín hiệu nhiễu trắng là 0, điều này có nghĩa là tất cả các mẫu dữ liệu đều không tạo ra tác động có ý nghĩa.
- Phương sai là hằng số: Phương sai của nhiễu trắng có độ biến thiên của nhiễu trắng không thay đổi theo thời gian hoặc không gian
Không có sự tự tương quan giữa các biến, nghĩa là giá trị của một biến tại một thời điểm nhất định không ảnh hưởng đến giá trị của nó trong các thời điểm tiếp theo.
2.2.3 Ước lượng và kiểm định
Xác định độ trễ trong mô hình là quá trình quyết định số chu kỳ thời gian trước đó mà giá trị của một biến có thể tác động đến giá trị hiện tại của các biến khác trong mô hình và chính biến đó.
Trong quá trình xác định độ trễ, việc hiểu rõ mối quan hệ giữa các biến số là rất quan trọng Nếu có thông tin đáng tin cậy về ảnh hưởng của biến A đối với biến B trong một khoảng thời gian cụ thể, chúng ta có thể sử dụng kiến thức này để ước lượng độ trễ phù hợp cho mô hình.
Một cách phổ biến để thực hiện việc xác định độ trễ là sử dụng phương pháp kiểm tra AIC (Akaike Information Criterion) có công thức:
- k là số lượng tham số trong mô hình
- L là giá trị của hàm hợp lý (likelihood) tại các ước lượng tham số tối ưu
AIC (Akaike Information Criterion) là một chỉ số thống kê quan trọng dùng để đánh giá sự phù hợp của mô hình với dữ liệu, đồng thời kiểm soát độ phức tạp của mô hình nhằm giảm thiểu nguy cơ overfitting Mô hình có giá trị AIC thấp nhất thường được ưu tiên lựa chọn, vì nó cân bằng giữa số lượng tham số ước lượng và khả năng khớp dữ liệu một cách hiệu quả.
Việc áp dụng kiểm định nhân quả Granger giúp xác định mối quan hệ nhân quả giữa các biến, từ đó cung cấp thông tin quan trọng để xác định độ trễ phù hợp trong phân tích dữ liệu.
2.2.3.2 Kiểm định nhân quả Granger
Kiểm định nhân quả Granger là một phương pháp thống kê quan trọng nhằm xác định khả năng dự báo của một biến số đối với một biến số khác Cụ thể, biến X được xem là nhân quả Granger của biến Y nếu việc sử dụng các giá trị hiện tại và quá khứ của X giúp cải thiện độ chính xác trong việc dự đoán Y.
X có khả năng cải thiện độ chính xác trong việc dự đoán giá trị tương lai của Y, đồng thời giảm thiểu phương sai của sai số dự báo Phương trình hồi quy trong kiểm định Granger được thể hiện qua dạng cụ thể.
- k: độ trễ tối đa lựa chọn của mô hình
- Xt, Yt: các giá trị của chuỗi thời gian tại thời điểm t của X và Y
- βj, δj, 𝜃 𝑗 , 𝛾 𝑗 : các hệ số hồi quy của mô hình
- Ut, Vt: sai số ngẫu nhiên hay được gọi là vector nhiễu trắng
Với sự thay đổi của các hệ số hồi quy βj, δj, mối quan hệ giữa hai biến Xt và Yt được xác định như sau:
Nếu các hệ số hồi quy βj khác không và có ý nghĩa thống kê, trong khi các hệ số δj không có ý nghĩa, thì có thể kết luận rằng biến Xt là nguyên nhân gây ra sự thay đổi của biến Yt.
Trong trường hợp các hệ số βj không có ý nghĩa, nhưng các hệ số δj khác không bằng 0 và có ý nghĩa thống kê, biến Yt sẽ được xem là nguyên nhân gây ra sự thay đổi của biến Xt.
Khi cả hai hệ số βj và δj đều khác 0 và có ý nghĩa thống kê, chúng ta có thể kết luận rằng giữa Xt và Yt tồn tại mối quan hệ tác động qua lại.
Trường hợp 4: Nếu βj và δj đều không có ý nghĩa thống kê thì X và Y là độc lập với nhau
2.2.4 Hàm phản ứng và phân rã phương sai
Hàm phản ứng (Impulse Response Function) là một công cụ quan trọng trong mô hình VAR, giúp đánh giá cách các biến trong hệ thống phản ứng theo thời gian sau khi xảy ra cú sốc ngẫu nhiên Khi một biến trong hệ thống VAR gặp sự thay đổi đột ngột, IRF cho phép xác định cách mà các biến khác điều chỉnh và hội tụ về trạng thái cân bằng mới.
Quá trình phân tích IRF bắt đầu bằng việc áp dụng một sự thay đổi đột ngột vào một trong các biến của mô hình VAR Sau đó, các nhà kinh tế và nhà nghiên cứu tính toán và theo dõi phản ứng của tất cả các biến khác trong hệ thống tại các thời điểm khác nhau Phân tích này giúp họ hiểu rõ hơn về sự lan truyền và tác động của các sự thay đổi trong kinh tế, như lãi suất hoặc chính sách tài khóa, lên các biến kinh tế khác.
Hình 2 1: Ảnh hưởng của Income đến Investment
MÔ HÌNH FEED-FORWARD NEURAL NETWORK (FFNN)
Thuật toán FFNN là một phương pháp học sâu mạnh mẽ, dùng để huấn luyện và ánh xạ dữ liệu đầu vào tới đầu ra tương ứng Với cấu trúc tiến thuật đơn giản, thông tin trong mạng nơ-ron này chỉ di chuyển theo một hướng từ lớp đầu vào đến lớp đầu ra, không có phản hồi ngược FFNN đặc biệt hiệu quả trong việc xử lý dữ liệu chuỗi thời gian không cố định, cho phép dự báo gần đúng và khái quát hóa mối quan hệ tuyến tính cũng như phi tuyến tính với độ chính xác linh hoạt Mạng nơ-ron có khả năng học hỏi và mô hình hóa các mẫu, xu hướng và quy luật phức tạp trong dữ liệu chuỗi thời gian.
Hình 2 4: Mô phỏng mô hình FFNN
- w: trọng số giữa hai nơ-ron
- x: giá trị của biến đầu vào
- g(): hàm truyền phi tuyến tính
Kiến trúc của mô hình FFNN cơ bản bao gồm lớp đầu vào (input layer), các lớp ẩn (hidden layers) và lớp đầu ra (output layer)
Lớp đầu vào của mô hình bao gồm các nơ-ron đại diện cho từng đặc trưng đầu vào Mỗi nơ-ron trong lớp này nhận giá trị đầu vào tương ứng với đặc trưng riêng biệt của nó.
Các lớp ẩn nằm giữa lớp đầu vào và lớp đầu ra, bao gồm nhiều nơ-ron Mỗi nơ-ron trong lớp ẩn thực hiện các phép tính trung gian bằng cách áp dụng hàm kích hoạt cho tổ hợp tuyến tính của các giá trị đầu vào từ các lớp trước đó.
Lớp đầu ra: Lớp này chứa các nơ-ron đại diện cho kết quả đầu ra của mô hình
Số lượng nơ-ron trong lớp đầu ra phụ thuộc vào bài toán cụ thể mà mô hình đang giải quyết
Mỗi nơ-ron trong mạng FFNN sử dụng hàm kích hoạt phi tuyến như sigmoid hoặc ReLU để tính toán giá trị đầu ra từ tổ hợp tuyến tính của giá trị đầu vào Quá trình này diễn ra theo chiều truyền thẳng từ lớp đầu vào đến lớp đầu ra.
Kiến trúc FFNN có khả năng học các mô hình phức tạp thông qua việc điều chỉnh trọng số và ngưỡng của nơ-ron trong quá trình huấn luyện Thuật toán lan truyền ngược (backpropagation) thường được sử dụng để tính toán độ lỗi và cập nhật trọng số, giúp mô hình đạt hiệu suất tối ưu trên dữ liệu huấn luyện.
2.3.3 Ứng dụng Feed-Forward Neural Network vào bài toán dự báo dữ liệu chuỗi thời gian
Mô hình FFNN mang lại nhiều lợi ích quan trọng khi áp dụng vào dữ liệu chuỗi thời gian Đầu tiên, kiến trúc của FFNN đơn giản và dễ triển khai, giúp việc ứng dụng trở nên thuận tiện hơn.
Xây dựng và huấn luyện mô hình FFNN không yêu cầu nhiều tài nguyên tính toán, giúp tiết kiệm thời gian và công sức trong việc triển khai Điều này đặc biệt có lợi khi xử lý dữ liệu chuỗi thời gian lớn và phức tạp.
Một trong những ưu điểm nổi bật của mạng nơ-ron hồi tiếp (FFNN) là khả năng học hỏi các mô hình phi tuyến Dữ liệu chuỗi thời gian thường chứa nhiều mẫu không đồng đều và các mối quan hệ phức tạp không tuyến tính Với khả năng nắm bắt và mô hình hóa những mối quan hệ này, FFNN cho phép dự đoán và hiểu rõ hơn về các biến đổi trong dữ liệu.
VECTOR AUTOREGRESSIVE NEURAL NETWORK (VARNN)
2.4.1 Nguyên lý hoạt động Để có thể dự đoán chuỗi thời gian đa biến thì với khả năng tự hồi quy của mô hình VAR cũng đã có thể đưa ra các kết quả tốt cho các dự đoán Tuy vậy, các chuỗi thời gian đa biến trong thực tế đều chứa chứa các mẫu không đồng đều và các mối quan hệ phức tạp không tuyến tính, làm mô hình VAR có thể sẽ bị hạn chế trong việc tối ưu các dự đoán Do đó, việc kết hợp với mô hình FFNN có thể giải quyết được vấn đề này, mô hình FFNN sẽ cung cấp khả năng học mô hình phi tuyến tính trong các chuỗi thời gian Vì vậy, mô hình VARNN sẽ đưa ra các kết quả tối ưu nhất cho các chuỗi thời gian đa biến
Trong mô hình này, lớp đầu vào bao gồm các biến từ các quan sát trước đó của mỗi biến đầu ra Các phép ước lượng phi tuyến được thực hiện trong lớp ẩn thông qua một hàm chuyển đổi Cuối cùng, kết quả từ lớp ẩn được ước lượng tuyến tính ở lớp đầu ra bằng công thức của VAR.
Cho zt=(z1,t, , zm,t) là các giá trị của m biến trong chuỗi thời gian đa biến chịu ảnh hưởng bởi các độ trễ p Đầu vào của mô hình được xác định là z = (z1,t-1, , z1,t-p, , zm,t-1, , zm,t-p).
Hình 2 5: Kiến trúc mô hình VARNN
Số nơ-ron ở lớp đầu vào được xác định bởi công thức p x m Trong đó, h đại diện cho số lượng đơn vị ẩn (hidden units) Ma trận trọng số cho lớp ẩn có kích thước (p × m) × h, với p là độ trễ trước đó và m là số lượng biến.
Các nơ-ron trong lớp đầu vào không đổi được sử dụng trong kiến trúc và kết nối với từng nơ-ron trong lớp ẩn và lớp đầu ra Điều này tạo ra các bias 𝛼 (𝛼 1 , 𝛼 2 , , 𝛼 ℎ ) tại lớp ẩn và 𝛽 = (𝛽 1 , 𝛽 2 , , 𝛽 𝑚 ) ở lớp đầu ra Với m biến trong lớp đầu ra, ma trận trọng số cho lớp đầu ra sẽ có dạng nhất định.
Cuối cùng công thức để tính đầu ra của mô hình VARNN được định nghĩa như sau:
- zt: giá trị lớp đầu ra
- 𝜆: trọng số của lớp đầu ra
2.4.3 Quá trình huấn luyện mô hình Để xác định mô hình VARNN tốt nhất, quá trình huấn luyện sẽ được thực hiện thông qua các bước sau:
- Chia tập dữ liệu thành tập train để huấn luyện mô hình và tập test để đánh giá hiệu suất của mô hình
Để xác định độ trễ phù hợp cho các biến trong tập dữ liệu, cần xác định số lượng bước thời gian trước đó của biến phụ thuộc sẽ được sử dụng làm đầu vào cho mô hình Việc này giúp tối ưu hóa hiệu suất của mô hình và cải thiện độ chính xác trong dự đoán.
Để xác định số nơ-ron phù hợp cho lớp ẩn trong mạng nơ-ron, cần xem xét độ phức tạp của vấn đề và lượng dữ liệu có sẵn Quyết định này ảnh hưởng trực tiếp đến hiệu suất của mô hình.
Khởi tạo ngẫu nhiên các trọng số kết nối giữa lớp đầu vào và lớp ẩn, cũng như giữa tầng ẩn và tầng đầu ra, là bước quan trọng để bắt đầu quá trình huấn luyện.
Để tính toán đầu ra của các nơ-ron trong lớp ẩn, chúng ta sử dụng hàm kích hoạt sigmoid logistic Đầu vào được đưa qua các kết nối tới tầng ẩn, sau đó áp dụng hàm kích hoạt này để xử lý phi tuyến tính dữ liệu từ đầu vào, từ đó thu được đầu ra của các nơ-ron trong tầng ẩn.
Tính toán đầu ra của các nơ-ron trong lớp đầu ra bằng cách áp dụng công thức của mô hình VAR Kết quả từ lớp ẩn được sử dụng để thực hiện các phép tính tuyến tính, từ đó thu được kết quả cuối cùng.
- Tính toán gradient lỗi cho mỗi nơ-ron trong lớp đầu ra dựa trên sự khác biệt giữa đầu ra dự đoán và giá trị mục tiêu thực tế
Cập nhật trọng số cho lớp đầu ra là bước quan trọng trong quá trình học máy, nơi mà các trọng số được điều chỉnh dựa trên gradient lỗi và tốc độ học đã được xác định Mục tiêu của bước này là giảm thiểu lỗi dự đoán, từ đó cải thiện độ chính xác của mô hình.
Cập nhật trọng số trong tầng đầu ra là một bước quan trọng, trong đó các sửa đổi trọng số được áp dụng từ bước trước nhằm cải thiện hiệu suất của mô hình.
Để tính toán gradient lỗi cho từng nơ-ron trong lớp ẩn, cần dựa vào đóng góp lỗi từ lớp đầu ra và trọng số kết nối giữa lớp ẩn và lớp đầu ra.
Để tối ưu hóa mô hình, cần tính toán và điều chỉnh trọng số cho lớp ẩn Việc cập nhật trọng số này dựa trên gradient lỗi và tỷ lệ học, nhằm giảm thiểu sai số được truyền từ tầng đầu ra đến tầng ẩn Quá trình này giúp cải thiện độ chính xác của mô hình bằng cách tinh chỉnh các trọng số một cách hiệu quả.
- Áp dụng các sửa đổi trọng số thu được ở bước trước để cập nhật các trọng số trong lớp ẩn
Để đánh giá độ chính xác dự đoán của mô hình VARNN, chúng ta sử dụng các chỉ số như Mean Absolute Percentage Error (MAPE) và Mean Squared Error (MSE) Quy trình này giúp xác định mô hình có hiệu suất tối ưu nhất dựa trên các tiêu chí đánh giá đã được lựa chọn.
CÀI ĐẶT CÁC MÔ HÌNH
LOẠI BỎ WARNING
Khi sử dụng các hàm và thư viện của Python trên Jupyter Notebook, người dùng thường gặp phải các warning không ảnh hưởng đến mã code Để loại bỏ những warning này, bạn có thể sử dụng hàm filterwarnings() từ thư viện warnings bằng cách nhập lệnh: import warnings và warnings.filterwarnings('ignore').
Với hàm filterwarnings() trong thư viện warnings, truyền vào chuỗi string là ignore, python sẽ tự động loại bỏ tất cả các warnings.
ĐỌC DỮ LIỆU
Để đưa dữ liệu vào mô hình dự đoán, cần chuyển đổi dữ liệu sang định dạng phù hợp Thư viện pandas cung cấp hàm read_csv() để đọc dữ liệu từ file CSV và chuyển đổi thành DataFrame Bạn có thể sử dụng cú pháp sau: import pandas as pd và dataFrame = pd.read_csv().
Để sử dụng đoạn mã trên, bạn chỉ cần thay thế bằng đường dẫn thực tế tới tập dữ liệu CSV mà bạn muốn đọc Sau khi thực hiện, dữ liệu sẽ được đọc và chuyển đổi thành DataFrame, cho phép bạn dễ dàng thao tác và sử dụng trong quá trình xây dựng mô hình dự đoán.
TIỀN XỬ LÝ DỮ LIỆU
Trong thực tế, các tập dữ liệu thường chứa nhiều giá trị Null và empty, có thể ảnh hưởng đến quá trình dự đoán và kết quả của mô hình Để khắc phục và giảm tác động của các yếu tố này, việc làm sạch dữ liệu là cần thiết Sử dụng các hàm có sẵn trong thư viện pandas sẽ giúp cải thiện chất lượng của các tập dữ liệu được sử dụng.
Để thay thế các giá trị NaN trong DataFrame, bạn có thể sử dụng phương thức fillna() trong thư viện pandas Để thay đổi DataFrame ban đầu, hãy đặt tham số inplace=True Ví dụ: dataFrame.fillna(0, inplace=True).
Phương thức fillna() trong DataFrame cho phép thay thế tất cả các giá trị NaN bằng giá trị được chỉ định, ví dụ như 0 Người dùng có thể tùy chỉnh giá trị thay thế này theo nhu cầu cụ thể của mình.
Trong tập dữ liệu chưa qua xử lý, các giá trị có sự cách biệt rõ ràng, vì vậy cần chuẩn hóa chúng về cùng một phạm vi để đảm bảo tính nhất quán Để thực hiện điều này, có thể sử dụng MinMaxScaler từ thư viện sklearn Cụ thể, ta có thể áp dụng scaler với cú pháp: `scaler = MinMaxScaler(feature_range=(0, 1))` và sau đó chuẩn hóa dữ liệu bằng cách sử dụng `dataFrame = scaler.fit_transform()`.
Tạo một instance của MinMaxScaler và sử dụng phương thức fit_transform() để chuẩn hóa DataFrame đã cho Kết quả sẽ được gán lại cho biến dataFrame, với các giá trị được chuẩn hóa nằm trong khoảng từ 0 đến 1.
Khi mô hình hóa bài toán dự báo chuỗi thời gian, sự liên tục của thời gian là yếu tố quan trọng để đảm bảo chất lượng dự đoán Tuy nhiên, trong các tập dữ liệu thực tế, việc thiếu dữ liệu tại một số thời điểm là điều khó tránh khỏi Do đó, cần lấp đầy các vị trí thiếu bằng cách đơn giản là sử dụng giá trị của thời điểm trước đó.
TRÍCH XUẤT CHUỖI CON
Sau khi đọc dữ liệu bằng thư viện pandas, dữ liệu sẽ được trình bày dưới dạng chuỗi thời gian liên tục, bắt đầu từ ngày đầu tiên và kết thúc vào ngày cuối cùng trong tập dữ liệu Tuy nhiên, việc sử dụng dữ liệu này trực tiếp trong mô hình dự đoán có thể gặp một số khó khăn.
Để nâng cao độ chính xác trong dự đoán, việc trích xuất các chuỗi con từ tập dữ liệu ban đầu là rất quan trọng Sau khi trích xuất, các chuỗi con này có thể được chuyển đổi thành mảng bằng hàm "array" của thư viện NumPy Quá trình này cho phép chúng ta sử dụng các chuỗi con để cải thiện mô hình dự đoán Đoạn mã dưới đây minh họa cách thực hiện việc này: ```pythonimport numpy as np def to_sequences_multivariate(dataset, p): x = [] y = [] for i in range(p, len(dataset)): x.append(dataset[i - p:i, 0:dataset.shape[1]]) y.append(dataset[i:i + 1, 0:dataset.shape[1]]) x = np.array(x) y = np.array(y) return x, y.reshape(y.shape[0], y.shape[2]) ```
Hàm to_sequences_multivariate() sẽ được truyền vào các tham số như chỉ số độ trễ p và tập dữ liệu, từ đó, hàm sẽ trả về input và output.
MÔ HÌNH VECTOR AUTOREGRESSION NEURAL NETWORK
Đối với quá trình train mô hình VARNN sẽ sử dụng các hàm của thư viện sau:
To effectively split a dataset into training and testing subsets, you can use the following function: `def split_dataframe(dataframe, ratio):` This function calculates the size of the training set by multiplying the total number of data points by the specified ratio The remaining data points are allocated to the testing set The function then returns two subsets: the training data, which consists of the first portion of the dataset, and the testing data, which includes the rest.
Hàm split_dataframe() nhận vào hai tham số chính: tập dữ liệu và tỷ lệ chia Hàm này sẽ trả về hai tập dữ liệu là train và test được phân chia từ tập dữ liệu ban đầu.
The Sequential() function from the TensorFlow library allows for the creation of neural network models in a straightforward manner To begin, import TensorFlow with `import tensorflow as tf` Next, prepare your data by transforming it into sequences using the function `to_sequences_multivariate(train, p)` for training data and `to_sequences_multivariate(test, p)` for testing data, where `p` represents the delay Define the number of output variables with `num_outputs = ` Construct the feedforward neural network model using `ffnn_model = tf.keras.models.Sequential([` followed by a Flatten layer to reshape the input with `tf.keras.layers.Flatten(input_shape=(p, ))`, which flattens the lagged input, and then add a Dense layer with a specified number of hidden neurons and ReLU activation function with `tf.keras.layers.Dense(, activation='relu')`.
The CustomModel class, derived from tf.keras.Model, integrates a feedforward neural network (FFNN) and a variable model In its constructor, it initializes both models, allowing for a seamless connection between them During the call method, the model processes inputs through the FFNN, obtaining an output that is subsequently fed into the variable model to generate the final output This architecture exemplifies a modular approach to building complex neural networks in TensorFlow.
51 custom_model.compile(optimizer='adam', loss='mse') custom_model.fit(trainX, trainY, verbose=0, epochs=, batch_size=, validation_split=0.2)
Sau khi trích xuất chuỗi từ tập train và test thành input và output, chúng ta khởi tạo lớp ẩn FFNN bằng cách sử dụng tf.keras.models.Sequential Mạng này bao gồm một lớp đầu vào Flatten để làm phẳng dữ liệu, và một lớp ẩn Dense với số nơ-ron được chỉ định Tiếp theo là lớp đầu ra, một lớp Dense với số lượng đầu ra là num_outputs, không có hàm kích hoạt, tượng trưng cho VAR CustomModel kế thừa từ tf.keras.Model và định nghĩa phương thức call để xử lý đầu vào và trả về kết quả dự đoán của mô hình.
Hàm Sequential() trong thư viện Keras cung cấp chức năng save_weights() cho phép người dùng lưu trữ trọng số tốt nhất vào thư mục được chỉ định.
QUÁ TRÌNH KIỂM TRA
Sau khi hoàn tất quá trình huấn luyện mô hình, bước tiếp theo là áp dụng mô hình để dự đoán trên các tập dữ liệu khác, chẳng hạn như tập test Để thực hiện điều này, bạn sẽ sử dụng hàm predict() từ thư viện Keras.
- Hàm predict(): testPredict = model.predict()
Hàm Sequential() trong thư viện Keras cung cấp chức năng load_weights(), cho phép người dùng tải lại trọng số tốt nhất từ đường dẫn thư mục đã chỉ định.
- Hàm load_weights(): model.load_weights('.h5')
ĐÁNH GIÁ ĐỘ CHÍNH XÁC
Sau khi các mô hình hoạt động và đưa ra giá trị dự đoán, việc đánh giá độ chính xác là rất quan trọng để xác định mức độ tối ưu của mô hình Chỉ số đánh giá được sử dụng trong quá trình này là MSE (Mean Squared Error).
52 from sklearn.metrics import mean_squared_error mse = mean_squared_error(, )
Hàm mean_squared_error() được sử dụng để ước lượng sai số bình phương giữa giá trị thực tế và giá trị dự đoán Nó tính toán khoảng cách từ các điểm thực tế đến các điểm dự đoán, gọi là sai số, và sau đó bình phương các sai số này để đưa ra kết quả chính xác hơn.
- Hàm mean_absolute_error(): from sklearn.metrics import mean_absolute_error mae= mean_absolute_error(, )
Hàm mean_absolute_error() được sử dụng để đo lường độ chênh lệch trung bình giữa giá trị thực tế và giá trị dự đoán Nó tính toán giá trị trung bình của khoảng cách giữa các giá trị thực tế và dự đoán của mô hình.
- Hàm sqrt() và mean_squared_error(): from sklearn.metrics import mean_squared_error from math import * rmse= sqrt(mean_squared_error(, ))
RMSE (Root Mean Squared Error) là một chỉ số quan trọng để đánh giá sự khác biệt giữa giá trị thực tế và giá trị dự đoán Để tính toán RMSE, cần tính sai số bình phương giữa hai chuỗi dữ liệu dự đoán và thực tế Hàm mean_squared_error() trong thư viện scikit-learn được sử dụng để tính sai số bình phương, sau đó kết quả được lấy căn bậc hai bằng hàm sqrt() trong thư viện math.
THỜI GIAN THỰC THI
Khi triển khai mô hình học sâu cho một bài toán, việc đánh giá và tối ưu độ chính xác của mô hình là rất quan trọng, nhưng thời gian thực thi cũng đóng vai trò then chốt không kém.
Để đánh giá hiệu suất và độ phù hợp của mô hình với bài toán, thư viện time trong Python có thể hỗ trợ hiệu quả Bạn có thể sử dụng cú pháp sau: `import time`, sau đó ghi lại thời gian bắt đầu và kết thúc mô hình bằng `start_ = time.time()` và `end_ = time.time()`.
Hàm time() trong thư viện time của Python giúp xác định thời gian thực hiện các quá trình Biến start_ lưu trữ thời gian bắt đầu dự đoán, trong khi end_ ghi lại thời gian kết thúc Thời gian thực thi được tính bằng hiệu giữa end_ và start_.
THỰC NGHIỆM ĐÁNH GIÁ KẾT QUẢ
DỮ LIỆU THỰC NGHIỆM
Trong nghiên cứu này, chúng tôi sử dụng tổng cộng 6 tập dữ liệu, bao gồm 2 tập dữ liệu liên quan đến thời tiết và 3 tập dữ liệu về giá cổ phiếu của ba công ty tập đoàn khác nhau Tập dữ liệu cuối cùng cung cấp thông tin tổng quan về tình hình kinh tế vĩ mô của Việt Nam.
4.1.1 Tập dữ liệu thời tiết
Tập dữ liệu thời tiết WS Beutenberg ở Munich của Đức là bộ dữ liệu do Viện Hóa sinh Max Planck ghi lại
Nguồn dữ liệu: https://www.bgc-jena.mpg.de/wetter/weather_data.html
Dữ liệu bao gồm 22 thuộc tính như nhiệt độ, áp suất, độ ẩm, v.v., được ghi lại
Dữ liệu nhóm được thu thập từ 1/1/2010 đến 9/11/2023 với hơn 700.000 bản ghi, sau đó được lấy mẫu lại một điểm mỗi ngày, cho ra 5.060 bản ghi Biểu đồ nhiệt độ qua các năm cho thấy sự biến động nhiệt độ quanh năm nhưng có tính lặp lại, chứng tỏ tập dữ liệu này có tính mùa vụ Các thuộc tính được chọn cũng được phân tích kỹ lưỡng.
- Pressure: Áp suất khí quyển tính bằng milibar
- Temperature: Nhiệt độ hằng ngày
Áp suất hơi nước bão hòa, được đo bằng đơn vị mbar, là áp suất mà hơi nước đạt được khi bão hòa trong không khí ở một nhiệt độ nhất định.
Hiệu áp suất hơi nước (Vapor Pressure Deficit) được đo bằng mbar, thể hiện sự chênh lệch giữa áp suất hơi nước thực tế và áp suất hơi nước bão hòa.
Độ ẩm cụ thể là lượng hơi nước có trong một kilogram không khí, được đo bằng gram Đây là một chỉ số quan trọng để đánh giá độ ẩm của không khí và ảnh hưởng đến các điều kiện khí hậu.
- Airtight: Mật độ không khí Đơn vị đo là gram trên mét khối (g/m^3)
- Wind speed: Đo lường tốc độ di chuyển của gió Đơn vị đo là mét trên giây (m/s)
Hình 4 1: Mô tả nhiệt độ hằng ngày của tập dữ liệu WS Beutenberg - Munich
Tập dữ liệu WEATHER_HCM chứa thông tin về tập dữ liệu thời tiết ở Hồ Chí Minh từ năm 2009- 2021 được ghi lại theo từng ngày
Nguồn dữ liệu: https://www.kaggle.com/datasets/khitrng1111/tp-d-liu-v-thi-tip- ca-thnh-ph-h-ch-minh
Tập dữ liệu bao gồm 4550 bản ghi với 8 cột, cho thấy nhiệt độ cao nhất mỗi ngày qua các năm có sự biến động quanh năm nhưng cũng có sự lặp lại theo mùa Điều này chứng tỏ tính mùa vụ của dữ liệu nhiệt độ.
- max: Nhiệt độ cao nhất tại khu vực theo ngày
- min: Nhiệt độ thấp nhất tại khu vực theo ngày
- wind: Tốc độ gió của khu vực theo ngày
- Rain: Lượng mưa theo ngày
- humidity: Độ ẩm của không khí theo từng khu vực, ngày
- cloud: Mức độ che phủ của mây theo từng khu vực, ngày
- pressure: Áp suất không khí theo khu vực, ngày
- date: Ngày tháng năm của khu vực
Hình 4 2: Mô tả nhiệt độ tối đa của tập dữ liệu Ho Chi Minh
4.1.2 Tập dữ liệu chứng khoán
Các tập dữ liệu chứng khoán như APPLE, AMAZON và GOOGLE được thu thập từ Yahoo Finance thông qua thư viện yfinance của Python Yahoo Finance là nguồn tài nguyên đáng tin cậy và phong phú về dữ liệu cũng như công cụ thị trường tài chính, giúp người dùng tìm kiếm các cơ hội đầu tư hấp dẫn Những tập dữ liệu này bao gồm nhiều thuộc tính quan trọng.
- Date: xác định ngày giao dịch
- High: giá tối đa trong ngày
- Low: giá tối thiểu trong ngày
- Close: giá đóng được điều chỉnh cho các lần chia tách
- Volume: số lượng cổ phiếu đã đổi chủ trong một ngày nhất định
Chi tiết hơn về mỗi tập dữ liệu:
Tập dữ liệu chứng khoán Apple (AAPL) bao gồm tất cả các số liệu thống kê hàng ngày về giao dịch của công ty trong khoảng thời gian 8 năm, từ ngày 12 tháng 4 năm 2015 đến ngày 1 tháng 12 năm 2023.
2012 bản ghi Tại Hình 4.3 đang thể hiện mã chứng khoán có xu hướng đi lên và biến động tăng giảm liên tục
Hình 4 3: Mô tả giá đóng chứng khoán của tập dữ liệu APPLE
Dữ liệu chứng khoán của AMAZON ghi nhận lịch sử giá cổ phiếu trong 8 năm từ 12/2/2015 đến 1/12/2023 với 2014 bản ghi Biểu đồ trong hình 4.4 cho thấy sự biến động của mã chứng khoán này, với xu hướng đi lên và có sự tăng giảm liên tục Cụ thể, giá cổ phiếu đã tăng mạnh từ năm 2016 đến 2017, sau đó giảm mạnh vào năm 2020 và gần đây đã có dấu hiệu tăng trở lại.
Hình 4 4: Mô tả tập giá đóng chứng khoán của tập dữ liệu AMAZON
Dữ liệu chứng khoán GOOGLE ghi nhận lịch sử giao dịch giá cổ phiếu trong 8 năm, từ 4/12/2015 đến 1/12/2023, với tổng cộng 2012 bản ghi Hình 4.5 cho thấy sự biến động của giá cổ phiếu, đặc biệt là giai đoạn 2016 đến 2022 có sự tăng trưởng rõ rệt, sau đó giảm dần vào năm 2023 trước khi phục hồi tăng trưởng trở lại.
Hình 4 5: Mô tả giá đóng chứng khoán của tập dữ liệu GOOGLE
4.1.3 Tập dữ liệu kinh tế vĩ mô Việt Nam
Tập dữ liệu chứa thông tin tổng quan về kinh tế vĩ mô của Việt Nam từ năm
2017 đến năm 2023 Tập dữ liệu được ghi lại theo từng tháng gồm có 86 bản ghi và 30 cột
Nguồn dữ liệu: https://vbma.org.vn/vi/market-data/macro-economic-heatmap Các thuộc tính được chọn:
- Thương mại % YoY: tăng trưởng của ngành thương mại so với cùng kỳ năm trước
- Thực phẩm % YoY: sự thay đổi của giá thực phẩm so với cùng kỳ năm trước
Tăng trưởng GDP thực tế % YoY phản ánh sự biến động của tổng sản phẩm quốc nội (GDP) đã điều chỉnh theo yếu tố lạm phát, so với cùng kỳ năm trước.
Hình 4 6: Mô tả giá trị tăng trưởng của thương mại theo thời gian của tập dữ liệu VN
TIÊU CHÍ ĐÁNH GIÁ
4.2.1 Độ chính xác Độ chính xác của mô hình được đánh giá bằng các chỉ số sau:
Hàm sai số bình phương trung bình (Mean Squared Error - MSE) là chỉ số đo lường độ chính xác của mô hình dự báo, được tính bằng cách bình phương sai số giữa giá trị dự báo và giá trị thực tế, sau đó lấy trung bình của các bình phương lỗi MSE cung cấp một con số đại diện cho mức độ sai lệch trung bình của mô hình trên toàn bộ tập dữ liệu.
- 𝑌 𝑡 : giá trị thực tế thời điểm t
- 𝑌̂ 𝑡 : giá trị dự báo thời điểm t (ứng với quan sát t)
- n: số lượng mẫu trong tập dữ liệu
Hàm sai số trung bình tuyệt đối (Mean Absolute Error - MAE) được tính bằng tổng giá trị tuyệt đối của sai số chia cho số lượng mẫu, không xem xét hướng của sai số Kết quả MAE nhỏ cho thấy mô hình có độ chính xác cao hơn.
- 𝑌 𝑡 : giá trị thực tế thời điểm t
- 𝑌̂ 𝑡 : giá trị dự báo thời điểm t (ứng với quan sát t)
- n: số lượng mẫu trong tập dữ liệu
Hàm sai số bình phương trung bình (Root Mean Squared Error - RMSE):
RMSE, hay căn bậc hai của giá trị trung bình của các sai số bình phương, là chỉ số quan trọng trong việc đo lường độ lệch chuẩn của các phần dư (sai số dự đoán) giữa giá trị dự đoán và giá trị quan sát.
- 𝑌 𝑡 : giá trị thực tế thời điểm t
- 𝑌̂ 𝑡 : giá trị dự báo thời điểm t (ứng với quan sát t)
- n: số lượng mẫu trong tập dữ liệu
Thời gian thực thi cho quá trình training: Được tính từ lúc bắt đầu chạy chương trình đến lúc tìm được tham số mô hình tốt nhất
Thời gian thực thi testing: Được tính từ lúc đọc dữ liệu vào đến lúc ra kết quả dự đoán (kết thúc).
CÁC TRƯỜNG HỢP THỰC NGHIỆM
4.3.1 Thực nghiệm tìm các tham số tốt nhất cho mô hình VARNN Ở thực nghiệm này thì sẽ tìm các tham số tốt nhất cho từng tập dữ liệu, xem mức độ ảnh hưởng của các tham số đến từng mô hình Các tham số đã được xác định sẽ là giá trị mặc định cho việc train cho các tham số tiếp theo lần lượt là độ trễ và số nơ-ron ẩn Từ những tham số đã được tối ưu đó sẽ vẽ biểu đồ so sánh giá trị thực tế và giá trị dự đoán trên tập test cũng như thể hiện thời gian thực thi và MSE của mô hình
4.3.2 So sánh mô hình VARNN với các mô hình khác Ở thực nghiệm này sẽ so sánh mô hình VARNN với nhiều mô hình khác bao gồm cả mô hình đơn biến FFNN và ARIMA cùng với mô hình đa biến VAR và LSTM Bằng cách tối ưu các mô hình và so sánh thời gian huấn luyện, thời gian dự đoán và độ chính xác với mô hình VARNN Ở mô hình đơn biến, do phải huấn luyện từng biến đơn lẻ nên thời gian huấn luyện và thời gian dự đoán sẽ được cộng lại còn độ chính xác sẽ tính trung bình cộng giữa các biến
4.3.3 So sánh từng biến của mô hình VARNN với các mô hình khác Ở thực nghiệm này sẽ so sánh từng biến đã được dự đoán bởi mô hình VARNN với các mô hình với nhiều mô hình khác bao gồm cả mô hình đơn biến FFNN và ARIMA cùng với mô hình đa biến VAR và LSTM Đánh giá độ chính xác của các mô hình trong từng biến một.
KẾT QUẢ THỰC NGHIỆM
4.4.1 Thực nghiệm tìm các tham số tốt nhất cho mô hình VARNN
4.4.1.1 Tìm độ trễ tốt nhất
Trong thực nghiệm này, sáu tập dữ liệu được chia thành tập huấn luyện và tập kiểm tra với tỷ lệ 80% cho tập huấn luyện và 20% cho tập kiểm tra, sử dụng một lớp ẩn Các tham số epochs và batch size đã được tối ưu hóa trước cho từng tập dữ liệu, trong khi các tham số khác chưa được tối ưu sẽ được chọn ngẫu nhiên Để xác định độ trễ tốt nhất cho mô hình, quá trình lặp sẽ được thực hiện Bảng 4.1 trình bày các tham số đầu vào cho từng tập dữ liệu.
Bảng 4 1: Các tham số của mô hình với độ trễ tốt nhất
Hidden neural Epochs Batch size Độ trễ
Với các tham số trong bảng 4.1, chúng ta đã xác định được độ trễ tối ưu giúp giảm thiểu lỗi cho tập dữ liệu Để có cái nhìn tổng quát hơn, chúng ta sẽ phân tích các biểu đồ thể hiện xu hướng lỗi của 6 tập dữ liệu: WS BEUTENBERG, Ho Chi Minh, AAPL, AMAZON, GOOGLE và VN ECONOMIC, thông qua các hình 4.7, 4.8, 4.9, 4.10, 4.11 và 4.12.
Hình 4 7: Biểu đồ xu hướng lỗi dự báo đối với sự thay đổi độ trễ của tập WS BEUTENBERG
63 Hình 4 8: Biểu đồ xu hướng lỗi dự báo đối với sự thay đổi độ trễ của tập Ho Chi Minh
Hình 4 9: Biểu đồ xu hướng lỗi dự báo đối với sự thay đổi độ trễ của AAPL
64 Hình 4 10: Biểu đồ xu hướng lỗi dự báo đối với sự thay đổi độ trễ của AMAZON
Hình 4 11: Biểu đồ xu hướng lỗi dự báo đối với sự thay đổi độ trễ của GOOGLE
Hình 4 12: Biểu đồ xu hướng lỗi dự báo đối với sự thay đổi độ trễ của VN ECONOCMIC
Thông qua hình 4.7, 4.8, 4.9, 4.10, 4.11 và 4.12 đang thể hiện xu hướng lỗi của
Các tập dữ liệu WS BEUTENBERG, Ho Chi Minh, AAPL, AMAZON, GOOGLE và VN ECONOMIC đạt giá trị nhỏ nhất với độ trễ lần lượt là 7, 16, 17, 3, 28 và 1 Kết quả cho thấy các mô hình hội tụ về kết quả tốt nhất khá nhanh, tuy nhiên độ lỗi của các mô hình tăng dần theo thời gian Đặc biệt, với tập dữ liệu VN ECONOMIC, độ trễ để đạt hiệu quả tối ưu chỉ là 1 do số quan sát trong tập dữ liệu này khá ít so với các tập khác.
Không có sự tương đồng giữa hai nhóm dữ liệu thời tiết (WS BEUTENBERG và Ho Chi Minh) và dữ liệu chứng khoán (AAPL, AMAZON, GOOGLE) Mỗi mô hình thể hiện điểm hội tụ và độ trễ khác nhau để đạt được kết quả tối ưu Điều này cho thấy mô hình VARNN chỉ cần một độ trễ ngắn để đạt được kết quả tốt, trong khi mỗi mô hình sẽ có độ trễ riêng biệt tùy thuộc vào tập dữ liệu.
4.4.1.2 Tìm số nơ-ron lớp ẩn tốt nhất
Trong thí nghiệm này, sáu tập dữ liệu được chia thành tập huấn luyện và tập kiểm tra với tỷ lệ 80% cho tập huấn luyện và 20% cho tập kiểm tra Số lớp ẩn được sử dụng là một Các tham số như epochs, kích thước lô (batch size) và độ trễ đã được tối ưu hóa trước cho từng tập dữ liệu, trong khi các tham số khác chưa được tối ưu sẽ được chọn ngẫu nhiên.
Để xác định độ trễ tối ưu cho mô hình, quá trình lặp sẽ được thực hiện Bảng 4.2 cung cấp thông tin về các tham số đầu vào cho từng tập dữ liệu.
Bảng 4 2: Các tham số của mô hình với số nơ-ron lớp ẩn tốt nhất
Hidden neural Epochs Batch size Độ trễ
Dựa trên các tham số trong bảng 4.2, chúng tôi đã xác định được số lượng nơ-ron tối ưu trong lớp ẩn, giúp giảm thiểu độ lỗi của tập dữ liệu Để có cái nhìn khách quan hơn, chúng tôi sẽ phân tích các biểu đồ tổng quát để đánh giá xu hướng lỗi của các tập dữ liệu WS BEUTENBERG, Ho Chi Minh, AAPL, AMAZON, GOOGLE và VN ECONOMIC, được trình bày qua các hình 4.13 đến 4.19.
Hình 4 13: Biểu đồ xu hướng lỗi dự báo đối với sự thay đổi số nơ-ron ẩn của tập WS
Hình 4 14: Biểu đồ xu hướng lỗi dự báo đối với sự thay đổi số nơ-ron ẩn của tập Ho Chi Minh từ 1 đến 30
Hình 4 15: Biểu đồ xu hướng lỗi dự báo đối với sự thay đổi số nơ-ron ẩn của tập Ho Chi Minh từ 5 đến 150
Hình 4 16: Biểu đồ xu hướng lỗi dự báo đối với sự thay đổi số nơ-ron ẩn của tập AAPL
69 Hình 4 17: Biểu đồ xu hướng lỗi dự báo đối với sự thay đổi số nơ-ron ẩn của tập AMAZON
Hình 4 18: Biểu đồ xu hướng lỗi dự báo đối với sự thay đổi số nơ-ron ẩn của tập GOOGLE
Hình 4 19: Biểu đồ xu hướng lỗi dự báo đối với sự thay đổi số nơ-ron ẩn của tập VN
Theo hình 4.13 đến 4.19, xu hướng lỗi của 5 tập dữ liệu WS BEUTENBERG, Ho Chi Minh, AAPL, AMAZON, GOOGLE và VN ECONOMIC đạt giá trị nhỏ nhất khi độ trễ của các mô hình lần lượt là 16 và 40.
Quá trình hội tụ để đạt được kết quả tốt nhất cho số nơ-ron ẩn diễn ra nhanh và ổn định hơn so với việc tìm độ trễ tối ưu Đặc biệt, trong tập dữ liệu Ho Chi Minh, mặc dù hội tụ nhanh, nhưng số nơ-ron ẩn cần thiết để đạt kết quả tối ưu lại khá cao.
4.4.2 So sánh mô hình VARNN với các mô hình đơn biến
Sau khi xác định các tham số tối ưu cho mô hình VARNN, quá trình huấn luyện sẽ được thực hiện để đạt kết quả tốt nhất Đồng thời, hai mô hình đơn biến là FFNN và ARIMA cũng sẽ được tối ưu hóa để nâng cao hiệu suất Cuối cùng, sẽ tiến hành so sánh mô hình VARNN với hai mô hình đơn biến nhằm đánh giá xem VARNN có vượt trội hơn hay không.
Bảng 4 3: Các tham số tốt nhất cho từng tập dữ liệu
Hidden neural Epochs Batch size Độ trễ
Trong bảng 4.4, mô hình LSTM cho tập dữ liệu WS BEUTENBERG đạt hiệu quả tốt nhất, nhưng thời gian huấn luyện lại rất cao Ngược lại, mô hình VARNN có hiệu quả tương đương LSTM nhưng thời gian huấn luyện ngắn hơn nhiều, giúp đạt được kết quả tối ưu.
Bảng 4 4: Kết quả các mô hình của tập dữ liệu WS BEUTENBERG
VARNN FFNN ARIMA VAR LSTM
MSE 0.003258 0.003466 0.006359 0.003302 0.003208 RMSE 0.05707 0.05887 0.08265 0.05746 0.05664 MAE 0.03932 0.03977 0.06126 0.03942 0.03883 MSE giá trị thực 27.77 29.548 41.632 28.149 27.348
Mô hình VARNN cho tập dữ liệu Ho Chi Minh thể hiện hiệu quả vượt trội so với các mô hình khác, bao gồm cả LSTM, với khả năng tối ưu hơn về hiệu suất và thời gian huấn luyện cũng như dự đoán.
Bảng 4 5: Kết quả các mô hình của tập dữ liệu Ho Chi Minh
VARNN FFNN ARIMA VAR LSTM
MSE 0.004688 0.004859 0.00641 0.004707 0.005544 RMSE 0.06847 0.06971 0.08006 0.06861 0.07446 MAE 0.04821 0.04853 0.05763 0.04813 0.05275 MSE giá trị thực 17.431 18.234 22.137 17.464 18.548
Trong bảng 4.6, mô hình VARNN cho tập dữ liệu AAPL thể hiện hiệu quả tốt hơn so với các mô hình đơn biến, tuy nhiên lại kém hiệu quả hơn so với các mô hình đa biến.
Bảng 4 6: Kết quả mô hình của tập AAPL
VARNN FFNN ARIMA VAR LSTM
MSE 0.0001938 0.0002472 0.000244 0.0001877 0.0001776 RMSE 0.01392 0.01572 0.01562 0.0137 0.01332 MAE 0.01048 0.01199 0.01176 0.00997 0.00985 MSE giá trị thực 5.892 7.501 7.385 5.704 5.397 RMSE giá trị thực 2.427 2.738 2.717 2.388 2.323 MAE giá trị thực 1.827 2.089 2.045 1.737 1.716 Time(s) Train 66.11 858.271 58.613 0.0078 2139.778
Mô hình VARNN cho tập dữ liệu AMAZON thể hiện hiệu quả vượt trội so với các mô hình khác trong bảng 4.7 Mặc dù sự chênh lệch giữa các chỉ số so với LSTM không lớn, nhưng thời gian huấn luyện của VARNN luôn ngắn hơn so với LSTM.
Bảng 4 7: Kết quả mô hình của tập AMAZON
VARNN FFNN ARIMA VAR LSTM
MSE 0.0002528 0.0003189 0.000343 0.0002821 0.0002554 RMSE 0.0159 0.01785 0.01852 0.01679 0.01598 MAE 0.01133 0.01326 0.01333 0.01146 0.01158 MSE giá trị thực 6.685 8.440 9.079 7.458 6.754 RMSE giá trị thực 2.585 2.905 3.013 2.730 2.598 MAE giá trị thực 1.843 2.158 2.168 1.865 1.884
Trong bảng 4.8, đối với tập dữ liệu GOOGLE, mô hình VARNN cho thấy hiệu quả tốt hơn so với các mô hình đơn biến, nhưng lại kém hiệu quả hơn so với các mô hình đa biến.
Bảng 4 8: Kết quả mô hình của tập GOOGLE
VARNN FFNN ARIMA VAR LSTM
MSE giá trị thực 4.565 5.434 5.312 4.361 4.523 RMSE giá trị thực 2.136 2.331 2.304 2.088 2.126 MAE giá trị thực 1.569 1.728 1.719 1.478 1.519
XÂY DỰNG WEBSITES DỰ ĐOÁN GIÁ TRỊ CHUỖI THỜI GIAN
Ứng dụng dự đoán giá trị chuỗi thời gian được phát triển trên nền tảng Flask, cho phép người dùng thực hiện dự đoán trên các tập dữ liệu đã tối ưu hóa tham số mô hình và lưu trữ mô hình dưới định dạng file h5 Người dùng cũng có thể tải dữ liệu từ máy tính cá nhân để áp dụng các thuật toán như VARNN, FFNN, LSTM, VAR và ARIMA cho việc dự đoán giá trị chuỗi thời gian.
Hình 4 26: Giao diện chính của Website
Khi người dùng nhấn nút "Load Data", ứng dụng sẽ loại bỏ các giá trị không hợp lệ từ các cột kiểu dữ liệu string và datetime, đồng thời xử lý các giá trị NaN (Not a Number) Điều này giúp chuẩn bị dữ liệu cho việc dự đoán bởi các thuật toán một cách chính xác và hiệu quả.
Hình 4 27: Màn hình của ứng dụng khi tải dữ liệu thành công
Sau khi dữ liệu được tải thành công, người dùng có thể xem thông tin chi tiết về tập dữ liệu và khám phá các xu hướng thuộc tính thông qua biểu đồ đường.
Để dự đoán giá trị chuỗi thời gian trong ứng dụng, người dùng cần chọn cột dữ liệu và thuật toán phù hợp cho quá trình dự đoán.
Hình 4 29: Màn hình dự đoán sau khi người dụng đã chọn thuật toán và cột dữ liệu để dự đoán
Người dùng có thể thực hiện dự đoán trên toàn bộ tập dữ liệu kiểm tra hoặc chỉ định một chuỗi nhỏ, dựa trên mô hình đã tối ưu hóa các tham số Ngoài ra, họ cũng có thể tự nhập dữ liệu các tham số theo nhu cầu của mình.
Hình 4 30: Màn hình nhập dữ liệu cho các tham số của mô hình VARNN
Hình 4 31: Màn hình kết quả dự đoán trên toàn bộ dữ liệu kiểm tra thuộc tính Open của tập dữ liệu APPLE
Hình 4 32: Màn hình kết quả dự đoán trên chuỗi nhỏ của dữ liệu kiểm tra thuộc tính Open của tập dữ liệu APPLE
Sau khi hoàn thành dự đoán, người dùng có thể kiểm tra các chỉ số đánh giá như MSE, RMSE và MAE cho cả giá trị đã được chuẩn hóa và giá trị thực tế Bên cạnh đó, người dùng còn có thể xem biểu đồ so sánh giữa giá trị thực tế và giá trị dự đoán dựa trên thuật toán cụ thể.
KẾT QUẢ ĐẠT ĐƯỢC CỦA ĐỀ TÀI
Sau khi hoàn thành đề tài dự báo chuỗi thời gian đa biến bằng mô hình VARNN, nhóm đã nắm vững kiến thức về chuỗi thời gian đa biến và bài toán dự báo, cũng như cách xác định các thông số tối ưu cho mô hình qua 06 tập dữ liệu thực tế Đặc biệt, VARNN đã được so sánh với các mô hình dự đoán đa biến khác như LSTM, FFNN, VAR và ARIMA, cho thấy VARNN mang lại kết quả dự báo tốt hơn, ngay cả với các tập dữ liệu có số lượng quan sát ít.
Sau khi tối ưu hóa mô hình với các thông số phù hợp, độ chính xác của mô hình trong việc dự đoán đã đạt mức cao, cho thấy khả năng học hỏi mạnh mẽ từ dữ liệu lịch sử Mô hình này không chỉ dự đoán giá chứng khoán mà còn có khả năng dự đoán thời tiết trong tương lai.
Mô hình VARNN nổi bật với tốc độ vượt trội so với các mô hình như LSTM, mặc dù có thể kém chính xác hơn trong một số tập dữ liệu, nhưng sự chênh lệch này không đáng kể Tốc độ nhanh chóng của VARNN làm cho nó trở thành lựa chọn lý tưởng cho các tác vụ yêu cầu phản hồi nhanh, chẳng hạn như dự đoán giá cổ phiếu hoặc thời tiết, như đã được chứng minh qua các thử nghiệm với các tập dữ liệu cụ thể.
HẠN CHẾ
Trong quá trình thực hiện đề tài, do thời gian và kinh nghiệm của nhóm còn gặp khó khăn trong việc triển khai đề tài
- Cấu hình máy còn yếu nên chưa đánh giá mô hình trên các tập dữ liệu có kích thước lớn với các hình dạng chuỗi khác nhau
- Thời gian còn hạn chế nên chưa hoàn thiện app với các tính năng filter, các hiệu ứng, để tăng trải nghiệm người dùng.
HƯỚNG PHÁT TRIỂN
Do những yếu tố khách quan liên quan đến kinh nghiệm của nhóm và thời gian triển khai đề tài, nhóm đã xác định hướng phát triển cho đề tài này.
- Triển khai mô hình trên nhiều tập dữ liệu với kích thước lớn hơn để có được độ tin cậy cao hơn trong mô hình
Cải thiện ứng dụng bằng cách phát triển các chức năng và tiện ích mới, như thống kê có bộ lọc và các hiệu ứng hấp dẫn, nhằm nâng cao trải nghiệm và hiệu suất cho người dùng.