HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA --- TRẦN DUY LỘC ỨNG DỤNG PHÁT HIỆN CHUỖI CON BẤT THƯỜNG TRONG DỰ BÁO DỮ LIỆU CHUỖI THỜI GIAN BẰNG PHƯƠNG PHÁP HOLT-WINTERS CHUYÊN NGÀNH: Khoa học
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA -
TRẦN DUY LỘC
ỨNG DỤNG PHÁT HIỆN CHUỖI CON BẤT THƯỜNG TRONG DỰ BÁO DỮ LIỆU CHUỖI THỜI GIAN BẰNG PHƯƠNG PHÁP HOLT-WINTERS
CHUYÊN NGÀNH: Khoa học máy tính
MÃ SỐ: 60.48.01
LUẬN VĂN THẠC SĨ
TP HỒ CHÍ MINH, tháng 09 năm 2014
Trang 2ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA -
TRẦN DUY LỘC
ỨNG DỤNG PHÁT HIỆN CHUỖI CON BẤT THƯỜNG TRONG DỰ BÁO DỮ LIỆU CHUỖI THỜI GIAN BẰNG PHƯƠNG PHÁP HOLT-WINTERS
CHUYÊN NGÀNH: Khoa học máy tính
MÃ SỐ: 60.48.01
LUẬN VĂN THẠC SĨ
TP HỒ CHÍ MINH, tháng 09 năm 2014
Trang 3CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học: PGS.TS Dương Tuấn Anh
Cán bộ chấm nhận xét 1: TS Võ Thị Ngọc Châu
Cán bộ chấm nhận xét 2: TS Võ Đình Bảy
Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG TP.HCM ngày 14 tháng 07 năm 2014
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
1 Chủ tịch hội đồng: TS Nguyễn Văn Minh Mẫn
2 Cán bộ hướng dẫn: PGS TS Dương Tuấn Anh
3 Cán bộ chấm nhận xét 1: TS Võ Thị Ngọc Châu
4 Cán bộ chấm nhận xét 2: TS Võ Đình Bảy
5 Thư ký: TS Lê Thanh Vân
Xác nhận của Chủ tịch Hội đồng đánh giá Luận văn và Trưởng khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)
CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA
Trang 4
ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
- -oOo -
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ và tên học viên: Trần Duy Lộc MSHV: 12070518 Ngày, tháng, năm sinh: 24/05/1988 Nơi sinh: TP.HCM Chuyên ngành: Khoa học máy tính Mã số: 60.48.01
III NGÀY GIAO NHIỆM VỤ:
Trang 5LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành và sâu sắc đến PGS.TS Dương Tuấn Anh, người thầy đã luôn tận tình hướng dẫn và tạo mọi điều kiện để tôi có thể hoàn thành luận văn này Tôi xin cảm ơn quý thầy cô, những người đã chỉ bảo và giảng dạy giúp tôi có những kiến thức cần thiết để thực hiện luận văn này
Tôi cũng xin cảm ơn gia đình và bạn bè đã quan tâm giúp đỡ và động viên tôi để tôi có thể tiếp tục theo đuổi việc học tập và nghiên cứu
Tôi xin gửi lời cảm ơn chân thành và sâu sắc đến tất cả mọi người
Trang 6TÓM TẮT LUẬN VĂN
Dữ liệu chuỗi thời gian ngày càng được sử dụng rộng rãi trong nhiều lĩnh vực và đóng một vai trò rất quan trọng Vì vậy dự báo dữ liệu chuỗi thời gian ngày càng nhận được nhiều sự quan tâm của cộng đồng nghiên cứu Nhiều phương pháp và mô hình dự báo đã được đề xuất và đã mang lại nhiều kết quả thiết thực Phương pháp dự báo dữ liệu chuỗi thời gian dùng mô hình Holt-Winters áp dụng được trên các dữ liệu có tính xu hướng
(Trend) và tính mùa (Seasonal) là một phương pháp rất được ưu chuộng vì tính đơn giản,
dễ hiện thực, cần ít dữ liệu quá khứ để dự báo và kết quả dự báo tốt Tuy nhiên, đối với chuỗi dữ liệu thời gian có chứa đựng yếu tố bất thường thì chất lượng dự báo bằng mô hình Holt-Winters bị suy giảm đáng kể
Trong luận văn này, chúng tôi đề xuất và xây dựng một phương pháp cải tiến chất lượng
dự báo trên dữ liệu chuỗi thời gian bằng mô hình Holt-Winters Ý tưởng là cần khắc phục khuyết điểm của mô hình Holt-Winters khi dữ liệu có chứa đựng yếu tố bất thường Đầu tiên chúng tôi áp dụng giải thuật phát hiện bất thường chân phương để phát hiện bất thường trên dữ liệu chuỗi thời gian Sau đó, tiến hành xử lý bất thường phát hiện được bằng cách làm trơn bất thường đó bằng phương pháp trung bình di động đơn giản để loại bỏ hoặc giảm thiểu yếu tố bất thường khỏi dữ liệu chuỗi thời gian Sau đó, chúng tôi tiến hành dự báo trên dữ liệu chuỗi thời gian đã xử lý bất thường bằng mô hình Holt-Winters
Qua thực nghiệm dự báo trên các bộ dữ liệu chuỗi thời gian có chứa đựng yếu tố bất thường, phương pháp chúng tôi đề xuất cho kết quả dự báo tốt hơn nhiều so với mô hình Holt-Winters truyền thống
Trang 7ABSTRACT
Nowadays, time series forecasting is used in several important situations So time series forecasting is getting more attention from the community Numerous methods have been developed to forecast time series data and have been achieved many accomplishments The Holt-Winters method is popular because it is simple, has low data-storage requirements, easy to implement, and has good results It can adapt to changes in trends and seasonal patterns in data when they occur But Holt-Winters has an issue when forecast with time series that contains anomaly The forecast results are worse as a consequence
In this thesis, we proposed a method to improve the Holt-Winters's prediction result when the time series contains anomaly First, we use the brute force algorithm to discover time series discords Then we use simple moving average to smooth anomaly The smoothed time series is forecasted using Holt-Winters method
The experiments's results show that our method is much better than the classic Winters method when time series has anomaly
Trang 8Holt-LỜI CAM ĐOAN
Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác như đã ghi
rõ trong luận văn, các công việc trình bày trong luận văn là do chính tôi thực hiện và chưa
có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở trường này hoặc trường khác
Ngày 06 tháng 09 năm 2014
Trần Duy Lộc
Trang 9MỤC LỤC
MỤC LỤC v
DANH MỤC CÁC HÌNH MINH HỌA vii
DANH MỤC CÁC BẢNG xi
I MỞ ĐẦU 1
II NỘI DUNG 2
Chương 1: Phát biểu vấn đề 2
1.1 Dữ liệu chuỗi thời gian 2
1.2 Phát hiện bất thường trên dữ liệu chuỗi thời gian 2
1.3 Dự báo trên dữ liệu chuỗi thời gian 3
1.4 Mục tiêu và giới hạn của đề tài 3
1.5 Cấu trúc luận văn 3
Chương 2: Cơ sở lý thuyết 4
2.1 Một số khái niệm cơ bản 4
2.2 Hệ số tự tương quan, hàm tự tương quan, hàm tự tương quan riêng phần 6
2.3 Các thành phần của chuỗi thời gian 7
2.4 Dự báo dữ liệu chuỗi thời gian bằng phương pháp làm trơn hàm mũ Holt Winters [5] 11 2.5 Các phương pháp đánh giá sai số trong dự báo chuỗi thời gian 15
2.6 Kết luận 17
Chương 3: Tổng thuật các công trình liên quan 18
3.1 Các phương pháp tính độ đo tương tự 18
3.2 Các phương pháp biểu diễn dữ liệu chuỗi thời gian 21
3.3 Các giải thuật phát hiện bất thường 24
3.4 Các mô hình dự báo chuỗi thời gian khác 27
3.5 Kết luận 31
Chương 4: Hiện thực và thực nghiệm 32
4.1 Mô hình hiện thực 32
Trang 104.2 Thực nghiệm 35
4.3 So sánh và đánh giá kết quả thực nghiệm 62
Chương 5: Kết luận 63
5.1 Tổng kết 63
5.2 Kết quả đạt được 63
5.3 Hướng phát triển 64
III DANH MỤC CÁC TÀI LIỆU THAM KHẢO 65 PHỤ LỤC A: BẢNG ĐỐI CHIẾU THUẬT NGỮ ANH-VIỆT A1 PHỤ LỤC B: HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH B1 PHỤ LỤC C: LÝ LỊCH TRÍCH NGANG C1
Trang 11DANH MỤC CÁC HÌNH MINH HỌA
Hình 1.1: Chuỗi thời gian biểu diễn số lượng khách đi máy bay 2
Hình 2.1: Chuỗi con C và M sinh ra từ cửa sổ trượt và M khớp được với C 5
Hình 2.2: Chuỗi con C khớp tầm thường với chuỗi con ngay chính vị trí của nó dịch sang trái hay sang phải một vài điểm giá trị 5
Hình 2.3: Tính xu hướng của dữ liệu chuỗi thời gian 8
Hình 2.4: Hàm tự tương quan của dữ liệu có tính xu hướng 8
Hình 2.5: Giá trị dự báo được xấp xỉ 9
Hình 2.6: Tính mùa của dữ liệu chuỗi thời gian 9
Hình 2.7: Hàm tự tương quan của dữ liệu có tính mùa 10
Hình 2.8: Tính chu trình của dữ liệu chuỗi thời gian 10
Hình 2.9: Tính chu kỳ như là một phần của thành phần xu hướng 11
Hình 3.1: Độ đo Minkowski giữa hai chuỗi con 19
Hình 3.2: Độ đo xoắn thời gian động giữa hai chuỗi con 20
Hình 3.3: Phép biến đổi PAA 21
Hình 3.4: Mẫu dữ liệu được vẽ có tính chất tuyến tính cho thấy dữ liệu tuân theo phân bố Gauss [1] 22
Hình 3.5: Bảng thống kê dùng để tra những điểm ngắt theo phân bố Gauss với số vùng phân bố từ 3 đến 10 [1] 23
Hình 3.6: Rời rạc hóa về chuỗi ký tự cho một chuỗi có chiều dài n = 128, w = 8, a = 3 [1] 23
Hình 3.7: Giải thuật Brute Force trong phát hiện bất thường [4] 25
Hình 3.8: Giải thuật phát hiện chuỗi con bất thường HOTSAX [4] 26
Hình 3.9: Hai cấu trúc dữ liệu hỗ trợ giải thuật HOTSAX [4] 27
Hình 3.10: Kiến trúc của một ANN cho dự báo chuỗi thời gian với 5 ngõ vào, một tầng ẩn 10 nơ ron và 2 ngõ ra (là giá trị dự báo) [8] 30
Hình 4.1: Giao diện chương trình – Phát hiện và xử lý bất thường 36
Hình 4.2: Giao diện chương trình – Kết quả dự báo 37
Hình 4.3: Giao diện chương trình – Biểu diễu kết quả dự báo 37
Bảng 4.1: Chức năng của các thành phần trên giao diện chương trình 38
Bảng 4.2: Kết quả thực nghiệm cho bộ dữ liệu AirPassengers (có một bất thường) 39
Hình 4.4: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu AirPassengers (có một bất thường) 39
Hình 4.5: Kết quả dự báo khi xử lý và không xử lý bất thường cho bộ dữ liệu AirPassengers (có một bất thường) 39
Bảng 4.3: Kết quả thực nghiệm cho bộ dữ liệu AirPassengers (có hai bất thường) 40
Trang 12Hình 4.6: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu AirPassengers (có hai bất thường) 40Hình 4.7: Kết quả dự báo khi xử lý và không xử lý bất thường cho bộ dữ liệu AirPassengers (có hai bất thường) 40Bảng 4.4: Kết quả thực nghiệm cho bộ dữ liệu CO2 (có một bất thường) 41Hình 4.8: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu CO2 (có một bất thường) 41Hình 4.9: Kết quả dự báo khi xử lý và không xử lý bất thường cho bộ dữ liệu CO2 (có một bất thường) 42Bảng 4.5: Kết quả thực nghiệm cho bộ dữ liệu CO2 (có hai bất thường) 42Hình 4.10: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu CO2 (có hai bất thường) 42Hình 4.11: Kết quả dự báo khi xử lý và không xử lý bất thường cho bộ dữ liệu CO2 (có hai bất thường) 43Bảng 4.6: Kết quả thực nghiệm cho bộ dữ liệu Mdeaths (có một bất thường) 43Hình 4.12: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu Mdeaths (có một bất thường) 44Hình 4.13: Kết quả dự báo khi xử lý và không xử lý bất thường cho bộ dữ liệu Mdeaths (có một bất thường) 44Bảng 4.7: Kết quả thực nghiệm cho bộ dữ liệu Mdeaths (có hai bất thường) 44Hình 4.14: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu Mdeaths (có hai bất thường) 45Hình 4.15: Kết quả dự báo khi xử lý và không xử lý bất thường cho chuỗi Mdeaths (có hai bất thường) 45Bảng 4.8: Kết quả thực nghiệm cho bộ dữ liệu Fancy (có một bất thường) 46Hình 4.16: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu Fancy (có một bất thường) 46Hình 4.17: Kết quả dự báo khi xử lý và không xử lý bất thường cho bộ dữ liệu Fancy (có một bất thường) 46Bảng 4.9: Kết quả thực nghiệm cho bộ dữ liệu Fancy (có hai bất thường) 47Hình 4.18: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu Fancy (có hai bất thường) 47Hình 4.19: Kết quả dự báo khi xử lý và không xử lý bất thường cho bộ dữ liệu Fancy (có hai bất thường) 47Bảng 4.10: Kết quả thực nghiệm cho bộ dữ liệu UKgas (có một bất thường) 48Hình 4.20: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu UKgas (có một bất thường) 48
Trang 13Hình 4.21: Kết quả dự báo khi xử lý và không xử lý bất thường cho bộ dữ liệu UKgas (có một bất thường) 49Bảng 4.11: Kết quả thực nghiệm cho bộ dữ liệu UKgas (có hai bất thường) 49Hình 4.22: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu UKgas (có hai bất thường) 49Hình 4.23: Kết quả dự báo khi xử lý và không xử lý bất thường cho bộ dữ liệu UKgas (có hai bất thường) 50Bảng 4.12: Kết quả thực nghiệm cho bộ dữ liệu Milk (có một bất thường) 50Hình 4.24: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu Milk (có một bất thường) 51Hình 4.25: Kết quả dự báo khi xử lý và không xử lý bất thường cho bộ dữ liệu Milk (có một bất thường) 51Bảng 4.13: Kết quả thực nghiệm cho bộ dữ liệu Milk (có hai bất thường) 51Hình 4.26: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu Milk (có hai bất thường) 52Hình 4.27: Kết quả dự báo khi xử lý và không xử lý bất thường cho bộ dữ liệu Milk (có hai bất thường) 52Bảng 4.14: Kết quả thực nghiệm cho bộ dữ liệu Sales (có một bất thường) 53Hình 4.28: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu Sales (có một bất thường) 53Hình 4.29: Kết quả dự báo khi xử lý và không xử lý bất thường cho bộ dữ liệu Sales (có một bất thường) 53Bảng 4.15: Kết quả thực nghiệm cho bộ dữ liệu Sales (có hai bất thường) 54Hình 4.30: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu Sales (có hai bất thường) 54Hình 4.31: Kết quả dự báo khi xử lý và không xử lý bất thường cho bộ dữ liệu Sales (có hai bất thường) 54Bảng 4.16: Kết quả thực nghiệm cho bộ dữ liệu Expenditure (có một bất thường) 55Hình 4.32: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu Expenditure (có một bất thường) 55Hình 4.33: Kết quả dự báo khi xử lý và không xử lý bất thường cho bộ dữ liệu Expenditure (có một bất thường) 56Bảng 4.17: Kết quả thực nghiệm cho bộ dữ liệu Expenditure (có hai bất thường) 56Hình 4.34: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu Expenditure (có hai bất thường) 56Hình 4.35: Kết quả dự báo khi xử lý và không xử lý bất thường cho bộ dữ liệu Expenditure (có hai bất thường) 57
Trang 14Bảng 4.18: Kết quả thực nghiệm cho bộ dữ liệu BeerProduction (có một bất thường) 57Hình 4.36: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu BeerProduction (có một bất thường) 58Hình 4.37: Kết quả dự báo khi xử lý và không xử lý bất thường cho bộ dữ liệu BeerProduction (có một bất thường) 58Bảng 4.19: Kết quả thực nghiệm cho bộ dữ liệu BeerProduction (có hai bất thường) 58Hình 4.38: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu BeerProduction (có hai bất thường) 59Hình 4.39: Kết quả dự báo khi xử lý và không xử lý bất thường cho bộ dữ liệu BeerProduction (có hai bất thường) 59Bảng 4.20: Kết quả thực nghiệm cho bộ dữ liệu Plan (có một bất thường) 60Hình 4.40: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu Plan (có một bất thường) 60Hình 4.41: Kết quả dự báo khi xử lý và không xử lý bất thường cho bộ dữ liệu Plan (có một bất thường) 60Bảng 4.21: Kết quả thực nghiệm cho bộ dữ liệu Plan (có hai bất thường) 61Hình 4.42: Kết quả phát hiện và xử lý bất thường cho bộ dữ liệu Plan (có hai bất thường) 61Hình 4.43: Kết quả dự báo khi xử lý và không xử lý bất thường cho bộ dữ liệu Plan (có hai bất thường) 61
Trang 15DANH MỤC CÁC BẢNG
Bảng 4.1: Chức năng của các thành phần trên giao diện chương trình 38
Bảng 4.2: Kết quả thực nghiệm cho bộ dữ liệu AirPassengers (có một bất thường) 39
Bảng 4.3: Kết quả thực nghiệm cho bộ dữ liệu AirPassengers (có hai bất thường) 40
Bảng 4.4: Kết quả thực nghiệm cho bộ dữ liệu CO2 (có một bất thường) 41
Bảng 4.5: Kết quả thực nghiệm cho bộ dữ liệu CO2 (có hai bất thường) 42
Bảng 4.6: Kết quả thực nghiệm cho bộ dữ liệu Mdeaths (có một bất thường) 43
Bảng 4.7: Kết quả thực nghiệm cho bộ dữ liệu Mdeaths (có hai bất thường) 44
Bảng 4.8: Kết quả thực nghiệm cho bộ dữ liệu Fancy (có một bất thường) 46
Bảng 4.9: Kết quả thực nghiệm cho bộ dữ liệu Fancy (có hai bất thường) 47
Bảng 4.10: Kết quả thực nghiệm cho bộ dữ liệu UKgas (có một bất thường) 48
Bảng 4.11: Kết quả thực nghiệm cho bộ dữ liệu UKgas (có hai bất thường) 49
Bảng 4.12: Kết quả thực nghiệm cho bộ dữ liệu Milk (có một bất thường) 50
Bảng 4.13: Kết quả thực nghiệm cho bộ dữ liệu Milk (có hai bất thường) 51
Bảng 4.14: Kết quả thực nghiệm cho bộ dữ liệu Sales (có một bất thường) 53
Bảng 4.15: Kết quả thực nghiệm cho bộ dữ liệu Sales (có hai bất thường) 54
Bảng 4.16: Kết quả thực nghiệm cho bộ dữ liệu Expenditure (có một bất thường) 55
Bảng 4.17: Kết quả thực nghiệm cho bộ dữ liệu Expenditure (có hai bất thường) 56
Bảng 4.18: Kết quả thực nghiệm cho bộ dữ liệu BeerProduction (có một bất thường) 57
Bảng 4.19: Kết quả thực nghiệm cho bộ dữ liệu BeerProduction (có hai bất thường) 58
Bảng 4.20: Kết quả thực nghiệm cho bộ dữ liệu Plan (có một bất thường) 60
Bảng 4.21: Kết quả thực nghiệm cho bộ dữ liệu Plan (có hai bất thường) 61
Trang 16I MỞ ĐẦU
Trong thời đại thông tin ngày nay, lượng dữ liệu sinh ra ngày càng lớn và nhanh chóng Một vấn đề quan trọng là làm sao để sử dụng tốt những dữ liệu đó để phục vụ cho cuộc sống Từ nhu cầu thực tế đó nảy sinh một vấn đề quan trọng là làm thế nào để rút trích được những thông tin quan trọng từ các nguồn dữ liệu rất lớn Các nguồn dữ liệu rất lớn này có thể đuợc sinh ra từ nhiều lĩnh vực khác nhau như chứng khoán, y tế, thời tiết, Khai phá dữ liệu là một trong những lĩnh vực quan trọng giúp rút trích những thông tin quan trọng và có giá trị từ những nguồn dữ liệu rất lớn Một nhu cầu thực tế là đưa ra những thông tin dự báo dựa trên những dữ liệu thu thập được theo thời gian
Một mô hình dự báo đơn giản mà cho kết quả tốt là mô hình dự báo bằng phương pháp làm trơn hàm mũ Holt Winters, cho phép dự báo trên các chuỗi dữ liệu thời gian có
tính xu hướng (Trend) và tính mùa (Seasonal) Tuy nhiên, một khuyết điểm của mô hình
dự báo này là bị ảnh huởng bởi yếu tố bất thường trên dữ liệu chuỗi thời gian Nếu dữ liệu chuỗi thời gian có chứa những yếu tố bất thường thì kết quả dự báo của mô hình này sẽ giảm rõ rệt
Đề tài này đưa ra một hướng giải quyết khuyết điểm của mô hình dự báo bằng phương pháp làm trơn hàm mũ Holt-Winters bằng cách phát hiện và loại trừ bất thường trên dữ liệu chuỗi thời gian sau đó tiến hành dự báo trên chuỗi thời gian đã loại bỏ bất thường bằng phương pháp làm trơn hàm mũ Holt-Winters
Trang 17II NỘI DUNG
Chương 1: Phát biểu vấn đề
1.1 Dữ liệu chuỗi thời gian
Dữ liệu chuỗi thời gian là dữ liệu đo đạc được tuần tự theo thời gian Dữ liệu chuỗi thời gian được sinh ra trong nhiều ứng dụng thực tế, từ các lĩnh vực khoa học kỹ
thuật cho đến kinh tế (Hình 1.1) Tầm quan trọng của dữ liệu chuỗi thời gian là rất lớn
Vì vậy, dữ liệu chuỗi thời gian đã thu hút rất nhiều sự quan tâm và đã có nhiều nghiên cứu về dữ liệu chuỗi thời gian
Hình 1.1: Chuỗi thời gian biểu diễn số lượng khách đi máy bay 1.2 Phát hiện bất thường trên dữ liệu chuỗi thời gian
Hiện nay, dữ liệu thời gian ngày càng nhiều và có mặt trong rất nhiều lĩnh vực quan trọng trong cuộc sống như y tế, kinh tế, thời tiết, âm nhạc, Dữ liệu chuỗi thời gian vốn rất lớn và có tốc độ phát sinh rất nhanh nên việc tính toán và xử lý trên dữ liệu chuỗi thời gian đòi hỏi chi phí cao về tài nguyên và thời gian thực thi Bên cạnh đó việc xử lý trên dữ liệu chuỗi thời gian còn vấp phải một khó khăn nữa là dữ liệu chuỗi thời gian thường chứa đựng yếu tố bất thường trong đó Yếu tố bất thường này làm cho việc xử lý trên dữ liệu chuỗi thời gian gặp nhiều khó khăn và làm cho kết quả dự báo không còn chính xác Vì vậy, việc phát hiện và loại bỏ bất thường khỏi chuỗi thời gian là rất cần thiết
Trang 181.3 Dự báo trên dữ liệu chuỗi thời gian
Dự báo trên dữ liệu chuỗi thời gian là dựa trên dữ liệu chuỗi thời gian và tìm kiếm
các mối liên kết, các mẫu và các quy luật biến đổi để từ đó có thể dự đoán được các giá trị
trong tương lai
Ngày nay, dự báo trên dữ liệu chuỗi thời gian đóng vai trò rất quan trọng và được
ứng dụng trong nhiều lĩnh vực như dự báo thời tiết, thiên tai, động đất, lạm phát kinh tế
hay sự biến động của thị trường chứng khoán Từ những kết quả dự báo ta có thể đưa ra
các biện pháp để ngăn chặn các sự kiện không mong muốn hay tìm cách giảm thiểu thiệt
hại xảy ra
1.4 Mục tiêu và giới hạn của đề tài
Dự báo dữ liệu chuỗi thời gian hiện nay là một nhu cầu thực tế quan trọng và cần
thiết và ngày càng thu hút được nhiều sự quan tâm Một phương pháp dự báo trên dữ liệu
chuỗi thời gian đơn giản và thường dùng là phương pháp làm trơn hàm mũ Holt-Winters
Mô hình này có thể làm việc hiệu quả trên chuỗi thời gian có tính xu hướng và tính mùa
nhưng không thể làm việc tốt trên dữ liệu chuỗi thời gian có chứa bất thường Đối với dữ
liệu chuỗi thời gian có chứa bất thường mô hình này cho kết quả không tốt
Mục tiêu của đề tài này là đưa ra một hướng khắc phục điểm yếu này của mô hình
Holt-Winters để có thể dự báo tốt hơn trên chuỗi dữ liệu thời gian có chứa bất thường
Trong nghiên cứu này, chúng tôi đề xuất phát hiện và loại bỏ bất thường khỏi chuỗi
thời gian bằng một giải thuật phát hiện bất thường để đảm bảo chuỗi dữ liệu đầu vào giảm
thiểu bất thường sau đó mới tiến hành dự báo bằng phương pháp làm trơn hàm mũ
Holt-Winters Với sự kết hợp này có thể đem lại kết quả dự báo chính xác hơn khi dữ liệu chuỗi
thời gian có chứa đựng bất thường
1.5 Cấu trúc luận văn
Phần còn lại của luận văn được tổ chức theo cấu trúc sau:
Chương II: trình bày cơ sở lý thuyết của luận văn bao gồm một số khái niệm cơ bản, lý
thuyết về chuỗi thời gian, dự báo và kỹ thuật làm trơn hàm mũ
Chương III: tổng thuật các công trình liên quan đến khai phá bất thuờng, một số mô hình
dự báo dữ liệu chuỗi thời gian
Chương IV: trình bày mô hình hiện thực và thực nghiệm trên dữ liệu mẫu để so sánh và
đánh giá phương pháp đề xuất
Chương V: những kết luận sau khi thực hiện luận văn, hướng phát triển của luận văn.
Trang 19Chương 2: Cơ sở lý thuyết
Chương này trình bày một số khái niệm cơ bản về dữ liệu chuỗi thời gian, dự báo dữ liệu chuỗi thời gian bằng các phương pháp làm trơn hàm mũ và các phương pháp đánh giá sai số trong dự báo dữ liệu chuỗi thời gian
2.1 Một số khái niệm cơ bản
2.1.1 Dữ liệu chuỗi thời gian (Time series)
Dữ liệu chuỗi thời gian (Time series): Một dữ liệu chuỗi thời gian T = t 1 …t n là một
tập hợp có thứ tự của n mẫu giá trị thực được đo đạc tại những thời khoảng liên tục
bằng nhau
2.1.2 Chuỗi con (Subseries)
Chuỗi con (subseries): Cho một dữ liệu chuỗi thời gian T có chiều dài là n, một chuỗi con C trong T có chiều dài m là một mẫu của những giá trị liên tục trích từ T, C
= tp,…,tp+m-1 với 1 ≤ p ≤ n – m + 1
2.1.3 Cửa sổ trượt (Sliding Window)
Cửa sổ trượt (Sliding Window): Cho một dữ liệu chuỗi thời gian T có chiều dài n, một cửa sổ có kích thước w do người dùng định nghĩa (thường w << n) sẽ trượt qua từng điểm giá trị trên chuỗi T, kết quả là ta được một danh sách n-w+1 các chuỗi con
có kích thước w được rút trích từ chuỗi T
Một chuỗi con được sinh ra từ cửa sổ trượt cần đuợc kiểm tra xem có tương tự với một chuỗi con khác trong tất cả những chuỗi con còn lại hay không dựa vào một hàm
tính khoảng cách Ý tưởng này được gọi là khớp (match)
2.1.4 Khớp (Match)
Khớp (Match): Cho một số thực R (thường do người dùng định nghĩa) và một dữ liệu chuỗi thời gian T chứa một chuỗi con C bắt đầu tại vị trí p và một chuỗi con M bắt đầu tại vị trí q, nếu hàm tính khoảng cách từ C đến M ký hiệu D(C, M) ≤ R thì ta nói là
chuỗi con M khớp được với chuỗi con C (Hình 2.1)
Trang 20Hình 2.1: Chuỗi con C và M sinh ra từ cửa sổ trượt và M khớp được với C
Định nghĩa về khớp của hai chuỗi con thì rất rõ ràng và trực quan, tuy nhiên chúng
ta cũng cần định nghĩa khái niệm khớp tầm thường (trivial match) Hiển nhiên ta thấy một chuỗi con sẽ khớp tối đa (best match) với một chuỗi con khác mà gần nhất là chính
nó, là chuỗi con mà cửa sổ trượt sinh ra khi trượt về bên trái hay bên phải của chính nó chỉ một vài điểm giá trị Do đó trong định nghĩa bất thường cần phải loại bỏ những trường hợp khớp tầm thường này
2.1.5 Khớp tầm thường (Trivial match)
Khớp tầm thường (Trivial match): Cho một dữ liệu chuỗi thời gian T và một chuỗi con C bắt đầu tại vị trí p và một chuỗi con M khớp được với C bắt đầu tại vị trí q Chúng
ta nói chuỗi con M là khớp tầm thường với chuỗi con C nếu p = q hoặc không tồn tại một chuỗi M’ nào bắt đầu tại vị trí q’ sao cho D(C, M’) > R và q < q’ < p hoặc p < q’
< q (Hình 2.2)
Hình 2.2: Chuỗi con C khớp tầm thường với chuỗi con ngay chính vị trí của nó
dịch sang trái hay sang phải một vài điểm giá trị
Trang 212.1.6 Bất thường (Anomaly)
Bất thường (Anomaly): Cho một dữ liệu chuỗi thời gian T có chiều dài n, một chuỗi con C trong T là bất thường nếu khoảng cách từ C đến chuỗi con láng giềng gần nhất của nó là lớn nhất Nói cách khác chuỗi con C là chuỗi con khác biệt nhất trong T
2.2 Hệ số tự tương quan, hàm tự tương quan, hàm tự tương quan riêng phần 2.2.1 Hệ số tự tương quan (AutoCorrelation)
Trong chuỗi thời gian các giá trị ở những thời điểm khác nhau có mối tương quan với nhau Sự tương quan này được đánh giá bằng hệ số tự tương quan
Tự tương quan là sự tương quan của một biến với chính nó theo những độ trễ thời
gian khác nhau [9] Hệ số tự tương quan là đại lượng biểu diễn mức độ tự tương quan
và được tính theo công thức sau:
𝜌𝑘 = 𝐸[(𝑋𝑡− 𝜇)(𝑋𝑡+𝑘 − 𝜇)]
√𝑉𝑎𝑟(𝑋𝑡)𝑉𝑎𝑟(𝑋𝑡+𝑘)
Ở đây 𝜌k là hệ số tự tương quan của X ở độ trễ k, 𝜇 là giá trị trung bình của X t , E(X)
là kỳ vọng của biến ngẫu nhiên X, Var(X) là phương sai của biến ngẫu nhiên X
2.2.2 Hàm tự tương quan (AutoCorrelation Function - ACF)
Các hệ số tự tương quan của một biến ngẫu nhiên theo các độ trễ khác nhau được biểu diễn trên một đồ thị có trục hoành là các độ trễ và trục tung là các hệ số tự tương quan tạo thành hàm tự tương quan của biến đó Hàm tự tương quan là một công cụ quan trọng giúp xác định các thành phần cơ bản của chuỗi thời gian
𝜌𝑘
̂ = ∑𝑇−𝑘𝑡=1(𝑋𝑡− 𝑋̅) (𝑋𝑡+𝑘− 𝑋̅)
∑𝑇 (𝑋𝑡− 𝑋̅)2 𝑡=1
2.2.3 Hàm tự tương quan riêng phần (Partial AutoCorrelation Function - PACF)
Dùng để xác định bậc của một mô hình dự báo, cung cấp thông tin cụ thể và chi tiết hơn ACF Chúng ta có thể biểu diễn lại công thức của ACF theo từng thời đoạn là:
𝜌𝑘 = 𝛾𝑘
𝛾0
Và các giá trị của được tính như sau:
0 = 11 + 22 + + pp + 2
Trang 22- Nếu p = 1 (bậc 1) thì 1 = 1 và ta có ’ 1 = ’ 1 Vậy ’ 1 sẽ được gán cho a 1
- Nếu p = 2 (bậc 2) thì chúng ta có thể ước lượng được ’ 1 và ’ 2 Vậy ’ 1 sẽ
được gán cho a 1 và ’ 2 sẽ được gán cho a 2
Biểu diễn cho sự thay đổi dần dần của dữ liệu chuỗi thời gian, mô tả sự biến động
của các xu hướng có hướng đi lên hay đi xuống [9] Xu hướng thường là kết quả của
những nhân tố dài hạn như mật độ dân số, nhân khẩu, công nghệ, xu hướng của người
tiêu dùng (Hình 2.3)…
Trang 23Hình 2.3: Tính xu hướng của dữ liệu chuỗi thời gian
Ta có thể xác định một chuỗi thời gian có chứa thành phần xu hướng hay không
bằng việc kiểm tra hàm tự tương quan (Hình 2.4) của nó Nếu một chuỗi thời gian có
thành phần xu hướng sẽ có hệ số tự tương quan rất lớn ở những độ trễ đầu tiên và giảm dần về 0 khi độ trễ tăng lên
Hình 2.4: Hàm tự tương quan của dữ liệu có tính xu hướng
Có thể được xấp xỉ bằng 1 đường thẳng hoặc đường cong trơn (Hình 2.5)
Trang 24Hình 2.5: Giá trị dự báo được xấp xỉ 2.3.2 Thành phần mùa (Seasonal)
Là thành phần thể hiện sự biến đổi lặp đi lặp lại tại từng thời điểm cố định theo từng
năm của chuỗi thời gian [9] Nó có thể diễn ra trong phạm vi 1 quý (Hình 2.6), 1 tuần
hay 1 ngày
Hình 2.6: Tính mùa của dữ liệu chuỗi thời gian
Đối với chuỗi thời gian có thành phần mùa thì giá trị tại những thời điểm cố định theo từng năm sẽ có sự tương quan lớn với nhau Việc xác định một chuỗi thời gian có thành phần xu hướng hay thành phần mùa hay không rất quan trong trong bài toán dự báo chuỗi thời gian Nó giúp ta lựa chọn được mô hình dự báo phù hợp hay giúp cải tiến mô hình đã có chính xác hơn
Trang 25Hệ số tự tương quan tại những thời điểm cố định theo từng năm sẽ có sự tương quan
lớn với nhau (Hình 2.7)
Hình 2.7: Hàm tự tương quan của dữ liệu có tính mùa 2.3.3 Thành phần chu kỳ (Cyclical)
Là chuỗi biến đổi dạng sóng lên xuống quanh xu hướng (Hình 2.8) [9] Trong thực
tế thành phần này rất khó xác định và người ta thường xem nó như là một phần của
thành phần xu hướng (Hình 2.9)
Hình 2.8: Tính chu trình của dữ liệu chuỗi thời gian
Trang 26Hình 2.9: Tính chu kỳ như là một phần của thành phần xu hướng 2.3.4 Thành phần bất thường (Irregular)
Là thành phần thể hiện sự biến đổi ngẫu nhiên không thể đoán được của chuỗi
thời gian [9]
2.4 Dự báo dữ liệu chuỗi thời gian bằng phương pháp làm trơn hàm mũ Holt
Winters [5]
Các phương pháp làm trơn là tập hợp các phương pháp, trong đó các giá trị dự báo mới
ở thời điểm tiếp theo sẽ được ước lượng bằng việc kết hợp giá trị dự báo và giá trị quan sát
ở thời điểm ngay trước đó Đây là một trong những kĩ thuật đơn giản nhưng hiệu quả để sử dụng dự báo đối với dữ liệu chuỗi thời gian có tính chất tuyến tính Gồm có các phương pháp sau:
2.4.1 Dự báo dữ liệu chuỗi thời gian bằng phương pháp làm trơn theo hàm
mũ đơn giản (Simple Exponential Smoothing)
Mô hình này được giới thiệu vào năm 1957 bởi C.C Holt [6] và được dùng cho các
chuỗi thời gian không có tính xu hướng (Trend) và không có tính mùa (Seasonal) Trong
mô hình này, giá trị dự báo mới ở thời điểm tiếp theo (t+1) sẽ được tính theo công thức:
𝑌̂𝑡+1 = 𝛼𝑌𝑡 + (1 − 𝛼)𝑌̂𝑡 (1) 𝑌̂𝑡+1 = 𝑌̂𝑡 + 𝛼(𝑌𝑡− 𝑌̂𝑡) Trong đó:
- 𝑌̂𝑡+1: giá trị dự báo ở thời điểm t+1
- 𝑌̂𝑡: giá trị dự báo ở thời điểm t
Trang 27- 𝑌𝑡: giá trị thật quan sát được ở thời điểm t
- Tham số α được gọi là hệ số làm trơn (0 < α < 1)
Đây là phương pháp đơn giản nhất trong các phương pháp làm trơn dữ liệu Từ công thức (1), ta có thể biến đổi thành:
𝑌̂𝑡+1 = 𝛼𝑌𝑡+ 𝛼(1 − 𝛼)𝑌𝑡−1+ 𝛼(1 − 𝛼)2𝑌𝑡−2+ 𝛼(1 − 𝛼)3𝑌𝑡−3+ ⋯ 𝑌̂𝑡+1 = 𝛼[𝑌𝑡+ (1 − 𝛼)𝑌𝑡−1+ (1 − 𝛼)2𝑌𝑡−2+ (1 − 𝛼)3𝑌𝑡−3+ ⋯ Giá trị quan sát gần nhất có trọng số 𝛼, các giá trị kế tiếp có trọng số 𝛼(1 − 𝛼), 𝛼(1 − 𝛼)2, … Vì thế phương pháp này mới được gọi là phương pháp làm
trơn theo hàm mũ Đối với giá trị α ta hoàn toàn có thể ước lượng giá trị α bằng cách
sử dụng các phương pháp ước lượng tối thiểu bằng các hàm sai số SSE (Sum Squared Error), MSE (Mean Squared Error), MAE (Mean Absolute Error)…
Nếu các giá trị dự đoán ổn định và biến đổi ngẫu nhiên ít, thì chọn giá trị α nhỏ, ngược lại nếu muốn tốc độ đáp ứng nhanh thì chọn α lớn
2.4.2 Dự báo dữ liệu chuỗi thời gian bằng phương pháp làm trơn theo hàm
mũ Holt
Đối với dữ liệu chuỗi thời gian có tính xu hướng rõ rệt, việc sử dụng phương pháp
làm trơn đơn giản không còn hiệu quả Vì thế, năm 1958 C.C Holt [6] đưa ra một
phương pháp cải tiến có khả năng dự báo dữ liệu có xu huớng đó là phương pháp làm trơn hàm mũ Holt Trong phương pháp này, dữ liệu chuỗi thời gian được tách thành hai
thành phần là thành phần biên độ (level) và thành phần xu hướng (trend) Hai thành
phần này phải được cập nhật lại tại mỗi thời điểm, khi đó giá trị dự báo tại thời điểm
(t+p) sẽ được tính bởi công thức:
Trang 28Đây chính là một sự mở rộng từ phương pháp làm trơn đơn giản nếu cho thành phần
xu hướng trong dữ liệu bằng không
2.4.3 Dự báo dữ liệu chuỗi thời gian bằng phương pháp làm trơn theo hàm
mũ Holt-Winters
Đặc biệt, đối với dữ liệu chuỗi thời gian có tính xu hướng và tính mùa thì phương pháp làm trơn theo hàm mũ Holt không còn hiệu quả Năm 1960, Winter đưa ra một
phương pháp mới mở rộng từ phương pháp của Holt để có thể ước lượng tính mùa [7]
Do đó, phương pháp này còn có tên là phương pháp làm trơn hàm mũ Holt-Winters Phương pháp này thêm vào một tham số để giải quyết tính mùa và có hai mô hình hiện thực tùy thuộc vào tính mùa của dữ liệu:
Mô hình có tính nhân (Multiplicative Seasonal Model): mô hình nhân hiệu quả nhất khi sự biến thiên của chuỗi thời gian tăng cùng với biên độ và tăng dần theo thứ tự thời gian Nghĩa là các giá trị của chuỗi trải rộng ra khi xu hướng tăng gần và tập hợp các giá trị quan sát có hình phễu
Thành phần mùa được xem là một thành phần nhân trong chuỗi thời gian
Thành phần mùa được xem là một thành phần cộng trong chuỗi thời gian
𝑌𝑡+𝑘 = (𝐿𝑡+ 𝑘 𝑇𝑡) + 𝑆𝑡+𝑘−𝑠
𝐿𝑡 = 𝛼(𝑌𝑡 − 𝑆𝑡−𝑠) + (1 − 𝛼)(𝐿𝑡−1+ 𝑇𝑡−1)
Trang 29𝑇𝑡 = 𝛽(𝐿𝑡− 𝐿𝑡−1) + (1 − 𝛽)𝑇𝑡−1
𝑆𝑡 = 𝛾(𝑌𝑡− 𝐿𝑡) + (1 − 𝛾)𝑠𝑡−𝑠Trong đó:
- 𝐿𝑡, 𝑇𝑡, 𝑆𝑡 lần lượt là các thành phần biên độ, thành phần xu hướng và thành phần mùa của chuỗi thời gian
- s là chiều dài của thành phần mùa
- Tham số α, 𝛽, 𝛾 lần lượt là hệ số làm trơn cho thành phần bậc, xu hướng và mùa (0 ≤ α, β, γ ≤1)
Nếu hệ số 𝛾 bằng 0, nghĩa là trong dữ liệu không có thành phần mùa, phương
pháp này trở thành phương pháp làm trơn hàm mũ Holt Nếu hệ số β bằng 0, nghĩa
là trong dữ liệu không có thành phần xu hướng, phương pháp này trở thành phương pháp làm trơn hàm mũ đơn giản Như vậy, phương pháp này là phương pháp tổng quát nhất trong ba phương pháp
2.4.4 Ước lượng tham số dự báo tối ưu cho mô hình Holt-Winters
Đối với dự báo bằng mô hình Holt-Winters thì một trong các yếu tố rất quan trọng
quyết định tính chính xác của kết quả dự báo là chọn được bộ tham số α, 𝛽, 𝛾 phù hợp
để giảm thiểu sai số dự báo Trong phần này chúng tôi sử dụng giải thuật tìm kiếm lưới
tìm kiếm tuần tự và giải thuật mô phỏng luyện kim để tìm ra một bộ tham số α, 𝛽, 𝛾 tối
ưu cho chuỗi dữ liệu đầu vào dựa theo tiêu chí bộ tham số tối ưu sẽ làm giảm thiểu sai
số dự báo
a Ước lượng tham số dùng giải thuật tìm kiếm lưới (Grid Search)
Mỗi tham số α, 𝛽, 𝛾 nằm trong khoảng [0, 1] Giải thuật tìm kiếm lưới bắt đầu với bộ tham số α = 0, 𝛽 = 0, 𝛾 = 0 và bắt đầu quá trình dự báo trên bộ tham số này
rồi tính toán sai số trung bình bình phương của kết quả dự báo Sau đó ghi nhận bộ tham số và sai số dự báo tương ứng Tiếp tục tạo ra các bộ tham số dự báo mới bằng
cách tăng lần lượt các tham số α, 𝛽, 𝛾 lên 0.1 sau đó tiến hành dự báo và tính toán
sai số tương ứng Như vậy, sau 103 lần vét cạn ta sẽ chọn được bộ tham số α, 𝛽, 𝛾
tối ưu là bộ tham số có sai số dự báo trung bình bình phương là nhỏ nhất
b Ước lượng tham số dùng giải thuật mô phỏng luyện kim (Simulated Annealing - SA)
Khác với giải thuật tìm kiếm lưới phải tính sai số trung bình bình phương của
toàn bộ không gian trạng thái của các tham số α, 𝛽, 𝛾 Đối với giải thuật mô phỏng
luyện kim ta sẽ làm như sau:
Trang 30 Gọi T 0 là trạng thái hiện tại của bộ ba hệ số α, 𝛽, 𝛾 Tính sai số trung bình bình phương dựa trên T 0
Sau đó ta sẽ tìm trạng thái tốt hơn tiếp theo của T 0 Gọi a 0 là giá trị của α ứng với trạng thái T 0 Ở trạng thái tốt hơn tiếp theo, giá trị α có ba khả năng xảy
ra: tăng 0.1 hoặc giảm 0.1 hoặc không thay đổi Như vậy sẽ có ba trường hợp
xảy ra với giá trị α, 𝛽, 𝛾 Do đó, ta có tổng cộng 27 (3 x 3 x 3) trạng thái kế tiếp của T 0 Ta sẽ vét cạn trong 27 trạng thái này để tìm trạng thái tốt hơn rồi nhảy đến đó
Điều kiện dừng: trong trường hợp không tìm được trạng thái tốt hơn từ trạng thái hiện tại, ta sẽ sinh ngẫu nhiên một giá trị trong khoảng [0, 1] Nếu giá trị này nhỏ hơn 0.1 ta sẽ nhảy đến trạng thái mới (tức là đối với phương pháp này ta sẽ có 10% xác suất nhảy đến trạng thái mới dù nó nó không tốt hơn trạng thái cũ) Nếu ngược lại, ta sẽ kết thúc quá trình tìm kiếm
Ưu điểm của giải thuật này là giúp giảm khả năng rơi vào điểm cực trị cục
bộ của không gian trạng thái
2.4.5 Nhược điểm của dự báo dữ liệu chuỗi thời gian bằng làm trơn hàm mũ Holt-Winters
Một nhược điểm của phương pháp dự báo làm trơn hàm mũ Holt-Winters là không
làm trơn được thành phần bất thường trong dữ liệu chuỗi thời gian [14] Vì vậy, đối với
các chuỗi thời gian có chứa bất thường thì phương pháp làm trơn hàm mũ Holt-Winters không hiệu quả
Một vấn đề quan trọng đặt ra là làm sao có thể khắc phục được nhược điểm của phương pháp làm trơn hàm mũ Holt-Winters đối với các dữ liệu chuỗi thời gian có chứa yếu tố bất thường
2.5 Các phương pháp đánh giá sai số trong dự báo chuỗi thời gian
2.5.1 Sai số phần trăm trung bình tuyệt đối (Mean Absolute Percentage Error – MAPE)
Phương pháp này dùng để đánh giá mức độ chính xác đối với từng khoảng giá trị của dữ liệu chuỗi thời gian và nó được biểu diễn chính xác như là một tỷ lệ phần trăm theo công thức sau:
𝑀𝐴𝑃𝐸 = ∑ |(𝑦𝑡 − 𝑦′𝑡)/𝑦𝑡|
𝑛 × 100 (𝑦𝑡 ≠ 0) Trong đó, tính tại từng thời điểm:
- 𝑦𝑡: giá trị thực sự
Trang 31- 𝑦′𝑡: giá trị tương đương với mỗi giá trị dữ liệu quan sát được
- 𝑛: số lượng dữ liệu quan sát được trong một khoảng thời gian
2.5.2 Sai số trung bình tuyệt đối (Mean Absolute Error – MAE)
Phương pháp này dùng để đánh giá mức độ chính xác trong một đơn vị dữ liệu, mô
tả mức độ chấp nhận được của số lượng lỗi trên tập dữ liệu thực sự đó và được tính theo công thức sau:
𝑀𝐴𝐸 = ∑ |𝑦𝑡 − 𝑦′𝑡|
𝑛Trong đó, tính tại từng thời điểm:
- 𝑦𝑡: giá trị thực sự
- 𝑦′𝑡: giá trị tương đương với mỗi giá trị dữ liệu quan sát được
- 𝑛: số lượng dữ liệu quan sát được trong một khoảng thời gian
2.5.3 Sai số trung bình bình phương (Mean Square Error – MSE)
Phương pháp này là một phương pháp chính xác hơn MAE dùng để đánh giá mức
độ chính xác trong một tập dữ liệu lỗi lớn không bình thường và được tính theo công thức sau:
𝑀𝑆𝐸 = ∑(𝑦𝑡 − 𝑦′𝑡)2
𝑛Trong đó, tính tại từng thời điểm:
- 𝑦𝑡: giá trị thực sự
- 𝑦′𝑡: giá trị tương đương với mỗi giá trị dữ liệu quan sát được
- 𝑛: số lượng dữ liệu quan sát được trong một khoảng thời gian
2.5.4 Sai số bình phương tổng (Sum Square Error – SSE)
Phương pháp này dùng trong việc đánh giá kết quả dự báo của kỹ thuật sử dụng mạng nơron và được tính theo công thức sau:
𝑆𝑆𝐸 = ∑(𝑌𝑡 − 𝑂𝑡)2
𝑁
𝑡=1
Ở đây n là số điểm trong tập dữ liệu dùng để kiểm tra mạng, Y t và O t lần lượt là giá
trị mong muốn trong bộ dữ liệu và giá trị xuất của mạng nơron Mạng nơron có tổng bình phương lỗi càng nhỏ càng tốt
Trang 322.6 Kết luận
Từ cơ sở lý thuyết đã nêu, luận văn này đề xuất một phương pháp khắc phục nhược điểm đã nêu của phương pháp dự báo làm trơn hàm mũ Holt-Winters Để so sánh và đánh giá kết quả dự báo của phương pháp đề xuất luận văn này sử dụng các phương pháp đánh giá sai số đã nêu trong chương này
Trang 33Chương 3: Tổng thuật các công trình liên quan
Chương này trình bày một số khái niệm cơ bản được sử dụng trong khai phá bất thường của dữ liệu chuỗi thời gian và trình bày một số giải thuật khai phá bất thường của dữ liệu chuỗi thời gian Sau đó giới thiệu một số công trình liên quan về dự báo dữ liệu chuỗi thời gian
3.1 Các phương pháp tính độ đo tương tự
Trong các vấn đề liên quan đến dữ liệu chuỗi thời gian, việc tính mức độ tương tự giữa hai chuỗi con đóng vai trò rất quan trọng Khi so sánh hai chuỗi con có tương tự với nhau hay không ta phải dùng một phương pháp để tính mức độ tương tự giữa chúng gọi là hàm khoảng cách Nếu như khoảng cách giữa hai chuỗi con bằng không, ta nói hai chuỗi con là giống hệt nhau Nếu như khoảng cách giữa hai chuỗi con càng lớn (càng xa) thì mức độ khác biệt của hai chuỗi con càng cao Phương pháp tính độ đo trong luận văn này chỉ đề cập những phương pháp tính độ đo trên hai chuỗi con có chiều dài bằng nhau
Cho các chuỗi con x, y và z, D gọi là hàm khoảng cách giữa hai chuỗi con thì D phải
Đơn giản, dễ tính toán
Thích hợp với nhiều phương pháp biểu diễn dữ liệu
Sử dụng được cho nhiều loại dữ liệu khác nhau với độ chính xác chấp nhận được
Là chuẩn mực cho nhiều phương pháp biểu diễn khác dùng để định nghĩa hàm tính độ đo tương tự Đa số các phương pháp biểu diễn đều định nghĩa hàm tính
Trang 34độ đo tương tự trong không gian thu giảm thỏa mãn điều kiện chặn dưới so với hàm Euclid
Nhược điểm:
Không thích hợp khi ta sử dụng các phép biến đổi và rời rạc hóa dữ liệu DFT, DWT, PAA, APCA, SAX,
3.1.2 Độ đo Minkowski
Hầu hết các công trình nghiên cứu trên dữ liệu chuỗi thời gian dựa trên độ đo
Minkowski để tính khoảng cách (hay mức độ tương tự) giữa hai chuỗi con (Hình 3.1)
Hàm tính khoảng cách Minkowski được định nghĩa theo công thức sau:
D(X, Y) = √∑𝑛 (𝑥𝑖− 𝑦𝑖)𝑝
𝑖=1
𝑝
Khi p = 1 ta có khoảng cách Manhattan
Khi p = 2 ta có khoảng cách Euclid
Khi p = ∞ ta có khoảng cách Max
Hình 3.1: Độ đo Minkowski giữa hai chuỗi con
Ưu điểm:
Dễ tính toán
Sử dụng được cho nhiều bài toán khác như phân loại, gom cụm Đặc biệt là rất thích hợp khi ta sử dụng các phép biến đổi và rời rạc hóa dữ liệu DFT, DWT, PAA, APCA, SAX,
Nhược điểm:
Nhạy cảm với dữ liệu nhiễu
Trang 35 Không hiệu quả khi dữ liệu có đường cơ bản khác nhau, ví dụ như hai chuỗi giá chứng khoán A và B thay đổi rất giống nhau nhưng A giao động ở mức 100 còn
B giao động ở mức 40 như vậy độ tương tự của A và B rất khác nhau mặc dù hình dạng rất giống nhau
Không thích hợp với dữ liệu có biên độ dao động khác nhau, giá chứng khoán của A và B thay đổi rất giống nhau nhưng biên độ giao động của A là 20-80 còn của B là 30-50 thì độ tương tự của A và B rất khác nhau mặc dù hình dạng rất giống nhau
3.1.3 Độ đo xoắn thời gian động (Dynamic Time Warping - DTW)
Với phương pháp Minkowski so sánh từng cặp điểm là không thể trong trường hợp hai chuỗi này sẽ rất giống nhau nếu như ta kéo giãn hoặc thu hẹp một khoảng nào đó theo trục thời gian thì kết quả của phương pháp Minkowski sẽ là rất lớn (hai chuỗi rất khác nhau) Để khắc phục nhược điểm này của phương pháp Minkowski bằng cách từ một điểm trong chuỗi này có thể ánh xạ tới nhiều điểm trong chuỗi kia và những ánh
xạ này là không thẳng hàng (Hình 3.2) Độ đo này gọi là độ đo xoắn thời gian động
(Dynamic Time Warping - DTW) do Bernt Clifford đề xuất năm 1994
Hình 3.2: Độ đo xoắn thời gian động giữa hai chuỗi con
Ưu điểm:
Cho kết quả chính xác hơn so với độ đo Minkowski
Cho phép nhận dạng những mẫu có hình dạng giống nhau nhưng có chiều dài khác nhau
Nhược điểm:
Độ phức tạp tính toán cao, chạy lâu gấp nhiều lần so với phương pháp
Minkowski Với một chuỗi có chiều dài n thì độ phức tạp tính toán là O(n2)
Trang 363.2 Các phương pháp biểu diễn dữ liệu chuỗi thời gian
Kích thước của dữ liệu chuỗi thời gian thường rất lớn cho nên chi phí truy xuất, tính toán trên dữ liệu thô là rất cao Do đó, để giảm kích thước dữ liệu người ta dùng phương
pháp thu giảm số chiều (dimensionality reduction) giúp nâng cao hiệu suất truy xuất và tính toán Các phương pháp rời rạc hóa (discretization) dữ liệu dưới dạng chuỗi bit hay
chuỗi ký tự nhằm khai thác các kỹ thuật nén dữ liệu cũng như kỹ thuật khai phá dữ liệu
văn bản (text mining) Ngoài ra chúng ta cũng cần chuẩn hóa dữ liệu (normalization) trước
khi bắt đầu biểu diễn nhằm tránh những vấn đề dữ liệu có đường cơ bản khác nhau hoặc biên độ dao động khác nhau
3.2.1 Phương pháp xấp xỉ gộp từng đoạn (Piecewise Aggregate
Approximation - PAA)
Phương pháp xấp xỉ gộp từng đoạn (PAA) do E Keogh và cộng sự đề xuất năm
2000 [3] Phương pháp PAA tuần tự xấp xỉ k điểm giá trị liền kề nhau thành cùng một
giá trị trung bình cộng của k điểm đó Quá trình được thực hiện từ trái sang phải và kết
quả cuối cùng ta được một đường dạng bậc thang (Hình 3.3)
Hình 3.3: Phép biến đổi PAA
Ưu điểm:
Thời gian tính toán rất nhanh
Hỗ trợ nhiều phương pháp tính khoảng cách
Hỗ trợ truy vấn với chiều dài khác nhau
Nhược điểm:
Xây dựng lại chuỗi ban đầu là rất khó, thường sinh lỗi
Không quan tâm đến những điểm đặc biệt (điểm cực trị) trong từng đoạn xấp xỉ
vì tính giá trị trung bình
Trang 373.2.2 Phương pháp xấp xỉ gộp ký hiệu hóa (Symbolic Aggregate
approXimation - SAX)
Từ dữ liệu chuỗi thời gian nguyên thủy, sau khi đã thu giảm số chiều bằng phương pháp PAA, dữ liệu sẽ tiếp tục được xử lý rời rạc hóa về chuỗi những ký tự rời rạc Rời
rạc hóa là một quá trình ánh xạ từng đoạn trong dữ liệu đã biến đổi vào một bit hoặc
một ký tự Kết quả của quá trình rời rạc hóa là ta chuyển một dữ liệu chuỗi thời gian
nguyên thủy về một chuỗi bit hoặc chuỗi ký tự
Phương pháp rời rạc hóa được dùng nhiều nhất là phương pháp xấp xỉ gộp ký hiệu hóa (Symbolic Aggregate approXimation - SAX) chuyển dữ liệu chuỗi thời gian về
chuỗi các ký tự Phương pháp này do J Lin đề xuất năm 2003 [1], dữ liệu ban đầu được
rời rạc hóa bằng phương pháp PAA, mỗi đoạn xấp xỉ trong chuỗi PAA sẽ được ánh xạ
với một ký tự tương ứng dựa trên phân bố chuẩn (Gauss) (Hình 3.6) Bấy giờ bài toán
so trùng chuỗi trên dữ liệu chuỗi thời gian được chuyển về bài toán so trùng ký tự Với dữ liệu chuỗi thời gian đã chuẩn hóa thường tuân theo một xác suất phân bố
Định nghĩa 1: Những điểm ngắt (Breakpoints): những điểm ngắt là một danh sách
có thứ tự B = β1, …, βa-1 bên dưới mật độ phân bố xác suất N(0,1) của đường cong
Gauss, giá trị βi đến βi+1 = 1/a, β0 = -∞ và βa = ∞ (Hình 3.5)
Trang 38Hình 3.5: Bảng thống kê dùng để tra những điểm ngắt theo phân bố Gauss với số
vùng phân bố từ 3 đến 10 [1]
Tất cả các hệ số PAA hiện có sẽ được ánh xạ vào danh sách những điểm ngắt theo
cơ chế như sau: nếu như hệ số PAA đang xét mà thấp hơn giá trị điểm ngắt nhỏ nhất
thì nó sẽ được ánh xạ với ký tự “a”, nếu nó lớn hơn giá trị điểm ngắt nhỏ nhất nhưng
bé hơn giá trị điểm ngắt nhỏ thứ nhì thì sẽ được ánh xạ với ký tự “b” (Hình 3.6), và
tương tự như vậy
Hình 3.6: Rời rạc hóa về chuỗi ký tự cho một chuỗi có chiều dài n = 128, w = 8, a =
3 [1]
Định nghĩa 2: Từ (Word): một chuỗi con C có chiều dài n có thể được biểu diễn
bằng một từ có w ký tự 𝐶̂ = 𝑐̂1, … , 𝑐̂𝑤 theo cách như sau: gọi alphai là ký tự thứ i trong bảng ký tự alphabet (alpha1 = a, alpha2 = b, …) Để ánh xạ từ đường xấp xỉ PAA 𝐶̅ vào
một từ tương ứng 𝐶̂ ta sử dụng công thức sau:
ĉi = alphaj ⇔ βj-1 ≤ ĉi < βj
Ưu điểm:
Trang 39 Thích hợp để đặc trưng hóa dữ liệu
Có thể tương tác với dữ liệu có kích thước lớn (hàng Terabyte)
Thích hợp với xử lý dữ liệu trên chuỗi, phù hợp với những bài toán nhận dạng motif
Nhược điểm:
Các điểm ngắt được xác định dựa trên phân bố chuẩn (Gauss), có thể không thích hợp với mọi loại dữ liệu
3.3 Các giải thuật phát hiện bất thường
3.3.2 Giải thuật Tarzan
Giải thuật Tarzan [2], do Keogh và các cộng sự đề xuất năm 2002, dựa trên sự kết
hợp mô hình Markov ẩn bậc cao và cây hậu tố để phát hiện chuỗi con bất thường Mô hình Markov ẩn dùng để dự đoán xác suất xuất hiện của một chuỗi con nào đó so với
chuỗi huấn luyện cho trước, còn cây hậu tố (suffix tree) dùng để đếm số lần xuất hiện
của từng chuỗi con trong chuỗi lớn
Giải thuật bắt đầu với việc người dùng cung cấp chuỗi dữ liệu huấn luyện R được cho là không chứa chuỗi con bất thường, rời rạc hóa R và xây dựng cây hậu tố cho chuỗi này Tiếp tục ta rời rạc hóa và xây dựng cây hậu tố cho chuỗi cần kiểm tra X Dựa vào chiều dài l 2 của chuỗi con bất đồng mà người dùng cung cấp, ta lần lượt kiểm tra tất cả
các chuỗi con có chiều dài l 2 trong X và tính xác suất xuất hiện của từng chuỗi con này trong R nhờ mô hình Markov Nếu độ khác biệt giữa xác suất xuất hiện của một chuỗi con nào đó trong X với xác suất xuất hiện của nó trong R vượt quá ngưỡng c nào đó (ngưỡng c này do người dùng quy định) thì ta kết luận chuỗi con đó là bất thường
3.3.3 Giải thuật Brute Force
Giải thuật phát hiện bất thường chân phương (Brute Force) là một giải thuật đơn
giản (Hình 3.7) Người dùng cung cấp chiều dài l của chuỗi con bất thường, tất cả các
chuỗi con có chiều dài l của chuỗi ban đầu được rút trích Giải thuật sẽ vét cạn, kiểm
tra khoảng cách từng cặp chuỗi con với nhau Nếu chuỗi con nào có khoảng cách tới lân cận gần nhất lớn nhất thì nó là chuỗi con bất thường Cần lưu ý là ta không rời rạc hóa các chuỗi con được rút trích mà cần phải kiểm tra trên không gian dữ liệu gốc, vì hai chuỗi có thể gần nhau trong không gian thu giảm nhưng lại xa nhau trong không gian gốc
Trang 40Hình 3.7: Giải thuật Brute Force trong phát hiện bất thường [4]
Trong đó, n là chiều dài của chuỗi con bất thường Độ phức tạp giải thuật là O(n 2)
Đặc điểm 1: Ở vòng lặp ngoài nếu như tại một lần lặp, chuỗi con bất thường thực
sự đã được xét thì giá trị best_so_far_dist sẽ được gán với giá trị cực đại, những lần
lặp sau đó sẽ không mang lại kết quả mới
Đặc điểm 2: Ở vòng lặp trong, nếu như tại một lần lặp mà ta có khoảng cách dist nhỏ hơn best_so_far_dist thì ta có thể thoát khỏi vòng lặp này ngay vì chắc chắn là
điều kiện ở dòng 14 sẽ luôn luôn sai
3.3.4 Giải thuật HOTSAX
Từ đặc điểm 1 và đặc điểm 2 của giải thuật brute force, năm 2005 E Keogh cùng
các cộng sự đề xuất giải thuật HOTSAX [4] cải tiến từ giải thuật brute force bằng cách
áp dụng hai heuristic cho vòng lặp ngoài và vòng lặp trong với mong muốn:
Ở vòng lặp ngoài những chuỗi con có khả năng là bất thường thực sự cao sẽ được ưu tiên xem xét trước
Ở vòng lặp trong những chuỗi con là láng giềng gần nhất của của chuỗi đang xét
ở vòng lặp ngoài sẽ được ưu tiên xem xét trước