Bài toán dự báo chuỗi thời gian ngày càng nhận được nhiều sự quan tâm của cộng đồng khoa học. Nhiều phương pháp, mô hình dự đoán đã được đề xuất và hiện thực. Trong đó, mạng neuron nhân tạo nhờ vào khả năng xấp xỉ hàm phi tuyến nên được áp dụng nhiều trong việc dự báo dữ liệu chuỗi thời gian. Tuy nhiên, nhiều nghiên cứu cho thấy đối với chuỗi dữ liệu có tính mùa và tính xu hướng thì chất lượng dự báo của mạng neuron nhân tạo không được cao. Trong luận văn này, tôi xây dựng và hiện thực hai mô hình cải tiến cho mạng neuron nhân tạo. Mô hình thứ nhất dựa trên ý tưởng khử thành phần mùa và xu hướng ra khỏi chuỗi dữ liệu và tiến hành huấn luyện mạng neuron trên chuỗi dữ liệu mới. Trong giai đoạn dự báo, kết quả do mạng neuron sinh ra sẽ được thêm vào thành phần mùa và xu hướng để tạo ra kết quả dự báo sau cùng. Mô hình thứ hai tận dụng khả năng xấp xỉ tốt thành phần mùa và xu hướng của kĩ thuật làm trơn lũy thừa và khả năng xấp xỉ hàm phi tuyến của mạng neuron nhân tạo để tạo ra mô hình lai có khả năng tạo ra kết quả dự đoán tốt hơn. Trong quá trình thực nghiệm dự đoán với dự liệu thực tế có tính mùa và tính xu hướng, hai mô hình này cho kết quả dự đoán tốt hơn nhiều so với mô hình mạng neuron nhân tạo thuần túy.
Trang 1-NGUYỄN BÁ PHAN TÙNG
SO SÁNH HIỆU QUẢ MỘT SỐ MÔ HÌNH DỰ BÁO DOANH SỐ
DỰA VÀO MẠNG NƠ-RON
VÀ MÔ HÌNH HOLT-WINTERS
Chuyên ngành: HỆ THỐNG THÔNG TIN
Mã số: 60.48.01.04
LUẬN VĂN THẠC SĨ KỸ THUẬT
NGƯỜI HƯỚNG DẪN KHOA HỌC :
PGS TS DƯƠNG TUẤN ANH
THÀNH PHỐ HỒ CHÍNH MINH – NĂM 2015
Trang 2-NGUYỄN BÁ PHAN TÙNG
SO SÁNH HIỆU QUẢ MỘT SỐ MÔ HÌNH DỰ BÁO DOANH SỐ
DỰA VÀO MẠNG NƠ-RON
Trang 3Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: PGS TS DƯƠNG TUẤN ANH
Vào lúc: giờ ngày tháng năm
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
Trang 4LỜI CẢM ƠN
Lời đầu tiên, em xin chân thành cảm ơn thầy PGS.TS Dương Tuấn Anh, giảng viênĐại học Bách Khoa TPHCM, thầy đã tận tình hướng dẫn, giúp đỡ em trong suốt quá trìnhthực hiện luận văn
Tiếp theo, em cũng gởi lời cảm ơn và sự tri ân sâu sắc đối với các thầy cô của Họcviện Bưu chính Viễn thông, đặc biệt là các thầy cô khoa Công Nghệ Thông Tin đã truyềnđạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập tại Học viện
Trong quá trình làm luận văn, khó tránh khỏi sai sót, rất mong các Thầy, Cô bỏ qua
Em rất mong nhận được ý kiến đóng góp Thầy, Cô cùng các bạn học để em có cơ hội họcthêm được nhiều kinh nghiệm cũng như hoàn thiện thêm kiến thức của bản thân
Em xin chân thành cảm ơn!
NGUYỄN BÁ PHAN TÙNG
Trang 5Trong luận văn này, tôi xây dựng và hiện thực hai mô hình cải tiến cho mạng neuronnhân tạo Mô hình thứ nhất dựa trên ý tưởng khử thành phần mùa và xu hướng ra khỏi chuỗi
dữ liệu và tiến hành huấn luyện mạng neuron trên chuỗi dữ liệu mới Trong giai đoạn dựbáo, kết quả do mạng neuron sinh ra sẽ được thêm vào thành phần mùa và xu hướng để tạo
ra kết quả dự báo sau cùng Mô hình thứ hai tận dụng khả năng xấp xỉ tốt thành phần mùa
và xu hướng của kĩ thuật làm trơn lũy thừa và khả năng xấp xỉ hàm phi tuyến của mạngneuron nhân tạo để tạo ra mô hình lai có khả năng tạo ra kết quả dự đoán tốt hơn
Trong quá trình thực nghiệm dự đoán với dự liệu thực tế có tính mùa và tính xuhướng, hai mô hình này cho kết quả dự đoán tốt hơn nhiều so với mô hình mạng neuronnhân tạo thuần túy
Trang 6MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
TÓM TẮT LUẬN VĂN iii
MỤC LỤC iv
DANH MỤC HÌNH ẢNH v
MỞ ĐẦU 1
Chương 1: CƠ SỞ LÝ LUẬN 1
1.1 Khái niệm dữ liệu chuỗi thời gian (Time Series data) 1
1.2 Các thành phần của chuỗi thời gian 1
1.3 Đánh giá các phương pháp dự báo 3
1.4 Các phương pháp làm trơn dữ liệu chuỗi thời gian 4
Chương 2: MÔ HÌNH DỰ BÁO CỦA MẠNG NƠ-RON NHÂN TẠO VÀ HOLT-WINTERS 7 2.1 Mô hình Mạng nơ-ron nhân tạo 7
2.1.1 Giới thiệu 7
2.1.2 Giải thuật huấn luyện cho ANN 12
2.1.3 Xây dựng mô hình 13
2.1.4 Khử tính mùa, khử tính xu hướng cho mạng ANN 19
2.2 Mô hình Holt-Winters 28
2.2.1 Các thành phần có tính xu hướng và tính mùa 28
2.2.2 Mô hình Holt-Winters 28
Chương 3: ĐỀ XUẤT PHƯƠNG PHÁP LAI 37
3.1 Xây dựng mô hình 37
3.1.1 Ý tưởng: 37
3.1.2 Cách thức hoạt động 38
Chương 4: THỰC NGHIỆM VÀ ĐÁNH GIÁ 43
4.1 Cách thực nghiệm 43
4.2 Kết quả và đánh giá 43
KẾT LUẬN VÀ KIẾN NGHỊ 44
DANH MỤC CÁC TÀI LIỆU THAM KHẢO 47
PHỤ LỤC 49
Trang 7DANH MỤC HÌNH ẢNH
Hình 1.1: Ví dụ về Time-series (a) chỉ số chứng khoán (b) điện tâm đồ 1
Hình 1.2: Hình biểu diễn Tính xu hướng của chuỗi thời gian 2
Hình 1.3: Hình biểu diễn Tính mùa của chuỗi thời gian 2
Hình 1.4: Hình biểu diễn Tính chu kỳ của chuỗi thời gian 3
Hình 2.1: Cấu tạo một nơ-ron sinh học 8
Hình 2.2: Mô hình sinh học của nơ-ron 9
Hình 2.3: Minh họa đầu vào và đầu ra ứng với một đơn vị nơ-ron nhân tạo 9
Hình 2.4: Mạng nơ-ron truyền thẳng 10
Hình 2.5: Mạng nơ-ron hồi quy 11
Hình 2.6: Mô hình học có giám sát 12
Hình 2.7: Mô hình mạng nơ-ron nhân tạo 13
Hình 2.8: Sử dụng phương pháp walk-forward chia tập dữ liệu 14
Hình 2.9: Mô hình ANN dự kiến 15
Hình 2.10: Lưu đồ huấn luyện mạng nơ-ron 18
Hình 2.11: Kết quả dự đoán của mạng nơ-ron nhân tạo sinh ra 19
Hình 2.12: (a) Dữ liệu chuỗi thời gian gốc (b) Dữ liệu chuỗi thời gian sau khi khử tính xu hướng tuyến tính (c) Dữ liệu chuỗi thời gian sau khi khử tính xu hướng bằng lấy hiệu 22
Hình 2.13: (a) Dữ liệu chuỗi thời gian gốc (b) Dữ liệu chuỗi thời gian sau khi tính khử mùa bằng RTMA (c) Dữ liệu chuỗi thời gian sau khi khử tính mùa bằng lấy hiệu 23
Hình 2.14: Mô hình mạng nơ-ron nhân tạo kết hợp với khử tính mùa và khử tính xu hướng24 Hình 2.15: Định dạng của file dữ liệu 25
Hình 2.16: Đồ thị của chuỗi thời gian được biểu diễn bởi Module đọc và biễu diễn dữ liệu.25 Hình 2.17: Hàm tự tương quan của chuỗi thời gian được biểu diễn bởi Module đọc và biễu diễn dữ liệu 26
Hình 2.18: Hình biểu diễn dự báo doanh số với = 0.1 30
Hình 2.19: Hình biểu diễn dự báo doanh số với = 0.6 31
Hình 2.20: Hình biểu diễn chuỗi thời gian thích hợp cho phương pháp Winters Nhân 33
Hình 2.21: Hình biểu diễn chuỗi thời gian thích hợp cho phương pháp Winters Cộng 35
Hình 3.1: Mô hình Lai (Hybrid) 38
Trang 8MỞ ĐẦU
Chương 1: CƠ SỞ LÝ LUẬN
Trong chương này, tôi sẽ lần lượt giới thiệu các khái niệm cũng như các phươngpháp nghiên cứu khi tiến hành phân tích dữ liệu chuỗi thời gian để người đọc có thể nắm bắtcác kiến thức cơ bản trước khi đi sâu vào xem xét các mô hình dự báo dữ liệu chuỗi thờigian cụ thể là ANN và Holt-Winters
1.1 Khái niệm dữ liệu chuỗi thời gian (Time Series data)
Dữ liệu có yếu tố thời gian là sự quan sát tuần tự theo thời gian Dữ liệu này có thể là
2 chiều hay nhiều chiều nhưng phải có 1 chiều là thời gian Có rất nhiều loại dữ liệu khácnhau có yếu tố thời gian và thông thường đây là những dữ liệu rất lớn (very large database).Theo khảo sát từ 4000 hình ngẫu nhiên trên các tờ báo xuất bản giai đoạn 1974 – 1989 thì75% là các hình biểu diễn dữ liệu chuỗi thời gian Đặt biệt, trong thời đại hiện nay, thông tin
là rất quan trọng Tuy nhiên, dữ liệu thì quá lớn nên cần phải sử dụng công cụ máy tính đểtìm được những thông tin từ nguồn dữ liệu đó Chính vì vậy những nghiên cứu và ứng dụng
dữ liệu chuỗi thời gian là những lĩnh vực rất rộng lớn và cần thiết của khoa học máy tính vàcác ngành khoa học khác
Hình 1.1.1.1.1: Ví dụ về Time-series (a) chỉ số chứng khoán (b) điện tâm đồ
1.2 Các thành phần của chuỗi thời gian
Các mẫu hay hành vi của dữ liệu chuỗi thời gian có nhiều thành phần Theo lýthuyết, bất dữ liệu kỳ chuỗi thời gian nào cũng có thể được phân giải thành các thần phầnsau:
Trang 9 Tính xu hướng (Trend)
Thành phần này giải thích cho sự dịch chuyển dần dần của dữ liệu chuỗi thời gianthành các giá trị tương đối thấp hơn hoặc cao hơn qua một khoảng thời gian dài.Tính xu hướng thường là kết quả của các yếu tố dài hạn như những sự thay đổi vềdân số, nhân khẩu học, công nghệ và sở thích tiêu dùng
Hình 1.2.1.1.1: Hình biểu diễn Tính xu hướng của chuỗi thời gian
Tính chu kỳ (Cyclical)
Khi phát hiện bất ký bộ mẫu đều đặn nào của chuỗi giá trị ở trên hay ở dướiđường xu hướng mà kéo dài hơn một năm thì có thể gán cho nó là thành phầnmang tính chu kỳ Thông thường thành phần này là do sự biến động theo chu kỳnhiều năm trong kinh tế
Hình 1.2.1.1.2: Hình biểu diễn Tính mùa của chuỗi thời gian
Tính mùa (Seasonal)
Thành phần này giải thích cho các mẫu thường xuyên biến đổi trong nhữngkhoảng thời gian nhất định, chẳng hạn như một năm Sự biến đổi không phải lúc
Trang 10nào cũng tương ứng với mùa của năm (như Xuân, Hạ, Thu, Đông), ví dụ các hành
vi theo mùa trong Tuần hay trong Ngày
Hình 1.2.1.1.3: Hình biểu diễn Tính chu kỳ của chuỗi thời gian
1.3 Đánh giá các phương pháp dự báo
Có 3 cách đo độ chính xác của các mô hình là MAPE, MAD và MSD Đối với tất cả
3 cách đo này, giá trị càng nhỏ thì càng tốt hơn cho mô hình Chúng ta sẽ sử dụng các sốliệu thống kê để so sánh mức độ phù hợp của các phương pháp khác nhau
Sai số % tuyệt đối trung bình – MAPE (Mean Absolute Percentage Error)
Trung bình của các khoảng chênh lệch tuyệt đối giữa các giá trị thực và giá trị
dự báo, được thể hiện như là tỷ lệ của các giá trị thực
y’ t: là giá trị dự báo,
n: là số mẫu quan sát được
Trang 11 Sai số tuyệt đối trung bình – MAE (Mean Absolute Error) Đo lường sai số
dự báo tổng thể cho một mô hình
y’ t: là giá trị dự báo,
n: là số mẫu quan sát được
Sai số bình phương trung bình – MSE (Mean Squared Error) Trung bình
của các khoảng chênh lệch bình phương giữa các giá trị dự báo và giá trị thực
y’ t: là giá trị dự báo
n: là số mẫu quan sát được
1.4 Các phương pháp làm trơn dữ liệu chuỗi thời gian
Phương pháp làm trơn dữ liệu chuỗi thời gian được dùng để khử đi các biến độngngắn hạn hoặc đột biến bất thường, nó cũng được dùng để loại bỏ các biến động có tínhmùa
Ghi chú: Các mô hình này đều phải là tất định (deterministic) nghĩa là các biến củacác thành phần trong dữ liệu chuỗi thời gian là xác định chứ không phải là ngẫu nhiên Các
mô hình này liên quan đến các kỹ thuật ngoại suy (extrapolation)
Có 2 phương pháp thông dụng nhất để làm trơn dữ liệu chuỗi thời gian:
Phương pháp Trung bình Dịch chuyển Số học
(Arithmetic Moving Average)
Tính toán một giá trị trung bình của n mẫu dữ liệu gần đây nhất để dự đoán
giá trị dữ liệu chuỗi thời gian cho thời điểm tiếp theo.
Trang 12liệu càng gần đây nhất Gọi là Trung bình dịch chuyển có trọng số (Weighted
Moving Average – WMA) Tổng các trọng số phải bằng 1.
Chúng ta không thể tính toán được các sai số tiêu chuẩn.
Chúng ta không thể giải thích được các thành phần có tính ngẫu nhiên của chuỗi thời gian Các thành phần có tính ngẫu nhiên này sẽ tạo ra các sai số trong dự báo của chúng ta.
Phương pháp làm trơn cấp số mũ
(Exponential Smoothing Method)
Có 3 Phương pháp làm trơn cấp số mũ (chương sau tôi sẽ trình bày kỹ hơn về
3 phương pháp này)
Làm trơn cấp số mũ đơn (Single Exponential Smothing): dùng cho các
dữ liệu chuỗi thời gian mà thành phần không có tính xu hướng và
không có tính mùa.
Trang 13 Làm trơn cấp số mũ đôi (Double Exponential Smoothing) – phương pháp của Holt: dùng cho các dữ liệu chuỗi thời gian mà thành phần có
tính xu hướng và không có tính mùa.
Làm trơn cấp số mũ Tam (Triple Exponential Smoothing) – Phương pháp của Holt-Winters: dùng cho các dữ liệu chuỗi thời gian mà thành phần có tính xu hướng và có tính mùa.
Có nhiều phương pháp dự báo đã được phát triển bởi nhiều nhà nghiên cứu và nhữngngười làm kinh doanh Một số phương pháp phổ biến để dự đoán dữ liệu chuỗi thời gian,chẳng hạn như Phương pháp làm trơn cấp số mũ (xem bài viết [3], [4], [5], [9]), mô hìnhARIMA (xem bài viết [3], [11], [14], [15]) và phương pháp sử dụng ANN (xem bài viết [1],[2], [6], [12], [18], [19], [20], [21]) là thành công trong một số trường hợp thử nghiệm
Trong các chương tiếp theo, tôi sẽ đề cập đến các mô hình được nghiên cứu: ANN vàHolt-Winters Dựa trên các kết quả thu được để xây dựng nên mô hình lai
Trang 14Chương 2: MÔ HÌNH DỰ BÁO CỦA MẠNG NƠ-RON NHÂN
TẠO VÀ HOLT-WINTERS
Chương này tôi sẽ trình bày chi tiết về 2 mô hình dự báo cho dữ liệu chuỗi thời gian
là ANN (Artificial Nơ-ron Network) và Holt-Winters Trong đó:
ANN: là một trong những mô hình thường được sử dụng nhất, mạng truyền
thẳng một lớp ẩn được sử dụng cho dự báo dữ liệu chuỗi thời gian Mô hình
được đặc trưng bởi một mạng lưới 3 lớp của các phần tử đơn được kết nối bởicác liên kết mạch hở Nói chung, mô hình có thể được huấn luyện bằng các dữ
liệu lịch sử của một dữ liệu chuỗi thời gian để nắm bắt được các đặc tính phi tuyến của dữ liệu chuỗi thời gian cụ thể Các tham số của mô hình (trọng số
kết nối và độ lệch nút bias) sẽ được cập nhật lặp đi lặp lại theo một quy trìnhgiảm thiểu các sai số dự đoán
Phương pháp làm trơn cấp số mũ: cho dữ liệu chuỗi thời gian có tính xu
hướng và tính mùa: đây là sự kết hợp và cải tiến giữa 2 phương pháp của 2
nhà nghiên cứu Holt và Winters Phần này sẽ trình bày sâu hơn và giải thích vìsao bài luận văn này lại chọn mô hình Holt-Winters
2.1 Mô hình Mạng nơ-ron nhân tạo
2.1.1 Giới thiệu
Bộ não là một tập hợp của khoảng 10 tỷ nơ-ron được nối kết nội tại với nhau Mỗinơ-ron là một tế bào sử dụng các phản ứng có cơ chế sinh hóa để nhận, xử lý và truyền dẫnthông tin Hình một cho thấy cấu tạo của một nơ-ron sinh học trong bộ não:
Trang 15Hình 2.1.1.1.1: Cấu tạo một nơ-ron sinh học
Dendrite là tô-pô hình cây được kết nối đến hàng trăm nơ-ron lân cận Khi một trong
số các ron được kích hoạt, một tín hiệu sẽ được nhận bởi một trong các dentrite của ron lân cận nối tiếp Tổng gộp tín hiệu đầu vào sau đó sẽ được chuyển đến soma (thể sinhdưỡng) – thân nơ-ron Soma và hạt nhân (Nucleus) không thực hiện vai trò đặc biệt gì trongviệc xử lý dữ liệu đến và đi Chức năng chính của chúng là thực hiện việc duy trì sự sốngcho nơ-ron để giữ các chức năng khác của nơ-ron Chỉ có một phần của thể sinh dưỡng liênquan đến các tín hiệu đó là axon hillock (mô trục thần kinh) Nếu tổng gộp tín hiệu đầu vàolớn hơn giá trị ngưỡng của axon hillock, thì nơ-ron sẽ được kích hoạt và một tín hiệu đầu ra
nơ-sẽ được truyền xuống axon (sợi trục thần kinh) Cường độ của tín hiệu đầu ra là một hằng
số, cho dù tín hiệu đầu vào có lớn hơn ngưỡng bao nhiêu lần đi nữa Cường độ tín hiệu đầu
ra không bị ảnh hưởng bởi những sự phân chia của axon; nó đến mỗi terminal button (nútđầu cuối) với cùng cường độ tại axon hillock Mỗi terminal button sẽ được kết nối đếndendrite của các nơ-ron lân cận nối tiếp qua một kẽ hỡ được gọi là một synapse (khớp thầnkinh) Từ đây tín hiệu đầu ra của nơ-ron này sẽ trở thành tín hiệu đầu vào của nơ-ron khác
Mạng nơ-ron nhân tạo là một sự mô phỏng đơn giản mạng nơ-ron sinh học Cấu trúccủa mạng bao gồm các đơn vị tính toán đơn giản (tượng trưng cho các nơ-ron) được liên kếtvới nhau bằng các cạnh có trọng số (tượng trưng cho các khớp thần kinh synapse) Khảnăng xấp xỉ hàm số của mạng nơ-ron nhân tạo phụ thuộc vào hình dạng và độ mạnh yếu củacác liên kết (giá trị của các trọng số)
Hình 2.1.1.1.2: Mô hình sinh học của nơ-ron
Mạng nơ-ron nhân tạo là một mạng gồm một tập các đơn vị (unit) được kết nối vớinhau bằng các cạnh có trọng số (weight) Một đơn vị thực hiện một công việc rất đơn giản:
nó nhận tín hiệu vào (input) từ các đơn vị phía trước hay một nguồn bên ngoài và sử dụngchúng để tính tín hiệu ra (output) Mỗi đơn vị có thể có nhiều tín hiệu đầu vào nhưng chỉ cómột tín hiệu đầu ra duy nhất Đôi khi các đơn vị còn có một giá trị gọi là độ lệch (bias) được
Trang 16gộp vào các tín hiệu đầu vào để tính tín hiệu ra Để đơn giản ký hiệu, độ lệch của một đơn vịđược xem như là trọng số nối từ một đơn vị giả có giá trị xuất luôn là 1 đến đơn vị đó
Hình 2.1.1.1.3: Minh họa đầu vào và đầu ra ứng với một đơn vị nơ-ron nhân tạo.
Khi nhận được các tín hiệu đầu vào, một đơn vị sẽ nhân mỗi tín hiệu với trọng sốtương ứng rồi lấy tổng các giá trị vừa nhận được Kết quả sẽ được đưa vào một hàm số gọi
là hàm kích hoạt (Activation function) để tính ra tín hiệu đầu ra Các đơn vị khác nhau cóthể có các hàm kích hoạt khác nhau
Có 4 loại hàm kích hoạt thường dùng:
Mạng truyền thẳng: Mỗi một đơn vị ở lớp đứng trước sẽ kết nối với tất cả các
đơn vị ở lớp đứng sau Tín hiệu chỉ được truyền theo một hướng từ lớp đầu vào,
Input Layer, qua các lớp ẩn, Hidden Layer, (nếu có) và đến lớp đầu ra, Output Layer Nghĩa là tín hiệu ra của một đơn vị không được phép truyền cho các đơn vị
Trang 17trong cùng lớp hay ở lớp trước Đây là loại mạng rất phổ biến và được dùng nhiều
trong việc dự báo dữ liệu chuỗi thời gian Trong luận văn này tôi chỉ sử dụng mô
hình mạng truyền thẳng
Hình 2.1.1.1.4: Mạng nơ-ron truyền thẳng
Mạng hồi quy: Khác với mạng truyền thẳng, mạng hồi quy có chứa các liên kết
ngược từ một đơn vị đến các đơn vị ở lớp trước nó Giá trị đầu ra của một đơn vị
sẽ được truyền ngược lại cho các đơn vị ở lớp trước để điều chỉnh cấu hình củamạng
Hình 2.1.1.1.5: Mạng nơ-ron hồi quy
Chức năng của một mạng nơ-ron được quyết định bởi các nhân tố như: hình dạngmạng (số lớp, số đơn vị trên mỗi lớp, cách mà các lớp được liên kết với nhau) và các trọng
số của các liên kết bên trong mạng Đối với mạng truyền thẳng hình dạng của mạng thường
là cố định, và các trọng số được quyết định bởi một thuật toán huấn luyện (trainingalgorithm)
Trang 18Tiến trình điều chỉnh các trọng số để mạng “nhận biết” được quan hệ giữa đầu vào vàđầu ra mong muốn được gọi là học (learning) hay huấn luyện (training) Rất nhiều thuậttoán huấn luyện đã được phát minh để tìm ra tập trọng số tối ưu làm giải pháp cho các bàitoán Các thuật toán đó có thể chia làm hai nhóm chính: Học có giám sát (Supervisedlearning) và Học không có giám sát (Unsupervised Learning)
Học có giám sát: Mạng được huấn luyện bằng cách cung cấp cho nó các cặp mẫu
đầu vào và các đầu ra mong muốn (target values) Các cặp này có sẵn trong quátrình thu nhập dữ liệu Sự khác biệt giữa các đầu ra theo tính toán trên mạng sovới các đầu ra mong muốn được thuật toán sử dụng để thích ứng các trọng sốtrong mạng Điều này thường được đưa ra như một bài toán xấp xỉ hàm số - cho
dữ liệu huấn luyện bao gồm các cặp mẫu đầu vào x, và một đích ra tương ứng t, mục đích là tìm ra hàm f(x) thoả mãn tất cả các mẫu học đầu vàoĐây là mô hình
học rất phổ biến trong việc áp dụng mạng nơ-ron vào bài toán dự báo dữ liệu chuỗi thời gian Trong luận văn này tôi hiện thực giải thuật lan truyền quay lui
(Backpropagation) để giải quyết vấn đề
Hình 2.1.1.1.6: Mô hình học có giám sát
Học không có giám sát: Với cách học không có giám sát, không có phản hồi từ
môi trường để chỉ ra rằng đầu ra của mạng là đúng Mạng sẽ phải khám phá cácđặc trưng, các điều chỉnh, các mối tương quan, hay các lớp trong dữ liệu đầu vào
một cách tự động Trong thực tế, đối với phần lớn các biến thể của học không có giám sát, các đích trùng với đầu vào Nói một cách khác, học không có giám sát
luôn thực hiện một công việc tương tự như một mạng tự liên hợp, cô đọng thôngtin từ dữ liệu đầu vào
Trang 192.1.2 Giải thuật huấn luyện cho ANN
Các mạng nơ-ron nhiều lớp ít khi sử dụng các hàm tuyến tính hay hàm phân ngưỡng
mà chúng sử dụng các hàm kích hoạt là các hàm khả vi Một trong những hàm hay dùngnhất là hàm sigma (sigmoid function) Một hàm sigma sẽ tính tổ hợp tuyến tính các giá trịđầu vào và đưa kết quả này vào hàm sigmoid để tính giá trị đầu ra
Công thức tính giá trị đầu ra của đơn vị sigmoid là
(Lớp đầu vào) (một hay nhiều Lớp bị che dấu) (Lớp đầu ra)
Lớp Input không thực sự là các nơ-ron: các đơn vị này đơn giản chỉ là các giá trị chocác biến đầu vào Mỗi nơ-ron của lớp Hidden và lớp Ouput được kết nối đến tất cả các nơ-ron (hay còn gọi là các đơn vị) trong lớp trước đó
Hình 2.1.2.1.1: Mô hình mạng nơ-ron nhân tạo
Khi mạng được thi hành (được sử dụng), các giá trị biến đầu vào sẽ được đặt vàotrong các đơn vị Input, và sau đó các lớp Hidden và Output sẽ thi hành dần dần qua từnglớp Mỗi nơ-ron trong từng lớp sẽ tự thi hành theo nguyên tắc hoạt động đã được để cập ở
Trang 20phần trên Khi toàn bộ mạng được thi hành, các giá trị đầu ra của lớp Output sẽ là giá trị đầu
ra của toàn bộ mạng
Có rất nhiều luật để huần luyện cho một mạng nơ-ron, nhưng trong đó có một luật đểhuấn luyện mạng nơ-ron đó là sử dụng thuật toán lan truyền quay lui – Back-propagatealgorithm Đây cũng là luật được dùng thông dụng nhất hiện nay vì tính đơn giản và hiệuquả (xem thêm phần PHỤ LỤC)
2.1.3 Xây dựng mô hình
Mô hình mạng nơ-ron cho bài toán dự báo thường gồm nhiều bước, nhưng quá trìnhnày thường không phải là một quá trình liên tiếp các bước, một số bước có thể được lặp lại
Bước 1 – Thu thập dữ liệu: Sau khi được thu thập, các dữ liệu phải được kiểm tra để
đảm tính hợp lệ, tính nhất quán và tránh các dữ liệu bị thiếu sót Các dữ liệu bị thiếu sót cóthể được bỏ qua hoặc chúng có thể xem như không thay đổi so với dữ liệu trước nó, và đượctính toán bằng phương pháp nội suy hoặc trung bình các giá trị lân cận
Bước 2 – Phân chia tập dữ liệu: Khi huấn luyện, người ta thường chia tập dữ liệu
thành các tập: huấn luyện, kiểm tra và kiểm định (ngoài các mẫu) Tập huấn luyện thường làtập lớn nhất được sử dụng để huấn luyện cho mạng Tập kiểm tra thường chứa khoảng 10%đến 30% tập dữ liệu huấn luyện, được sử dụng để kiểm tra mức độ tổng quát hóa của mạngsau khi huấn luyện Kích thước của tập kiểm định cần được cân bằng giữa việc cần có đủ sốmẫu để có thể kiểm tra mạng đã được huấn luyện và việc cần có đủ các mẫu còn lại cho cảpha huấn luyện và kiểm tra Tập kiểm định nên bao gồm các giá trị liên tục mới nhất
Một phương pháp chặt chẽ dùng để đánh giá mạng nơ-ron nhân tạo là walk-forward.Phương pháp walk-forward chia tập dữ liệu thành một chuỗi các tập dữ liệu nhỏ hơn huấnluyện-kiểm tra-kiểm định gối chồng lên nhau được minh họa như Hình 12
Trang 21Hình 2.1.3.1.1: Sử dụng phương pháp walk-forward chia tập dữ liệu
Bước 3 – Xây dựng cấu trúc mạng: Việc dùng ANN cho dự báo dữ liệu chuỗi thời
gian có nghĩa là các nút đầu vào sẽ được kết nối với một số các giá trị quan sát trong quákhứ, mà phải đủ để xác định sự tiến triển tại các bước thời gian ở tương lai Về số lượng nútđầu vào được kết nối, vẫn chưa có lý thuyết nào nói là cần phải dùng bao nhiêu nút Nhưngtrong bài viết [10], Hamzaçebi khuyến cáo rằng số nút đầu vào nên bằng khoảng thời giantheo mùa s để dự báo tốt hơn, ví dụ 12 cho chuỗi thời gian theo tháng và 4 cho chuổi thờigian theo quý
Đối với số lượng nút đầu ra, ANN nên có một nút đầu ra trong trường hợp dự báomột bước và k nút đầu ra trong trường hợp k bước trước dự đoán, mà việc dự báo này dùngphương pháp đa bước trực tiếp Số nút ẩn trong Lớp ẩn duy nhất có thể được xác định bớikinh nghiệm thiết kế
Hình 2.1.3.1.2: Mô hình ANN dự kiến
Trang 22Nhiều mô hình mạng nơ-ron tầng vào-tầng ẩn-tầng ra đã được sử dụng hiệu quảtrong bài toán dự báo chuỗi thời gian như: 8-8-1, 6-6-1, 5-5-1 [12] Tuy nhiên, trong hiệnthực của luận văn này, tôi sử dụng mô hình mạng ứng với chu kì của chuỗi dữ liệu có tínhmùa Nghĩa là số nút ẩn sẽ bằng số nút đầu vào và bằng chu kì của chuỗi dữ liệu: 12-12-1.
Để dự đoán dữ liệu chuỗi thời gian, mối quan hệ giữa đầu ra (y t) và đầu vào (y t −1,
y t −2, …, y t −p) sẽ có công thức toán học như sau:
y t=φ(y t −1 , y t−2 , … , y t− p , w)+δ t(2)
w: là một vectơ của tất cả các tham số,
φ: là một hàm chức năng được xác định bởi cấu trúc mạng và các trọng số kết nối,
δ t : là sai số dự đoán tại thời điểm t.
Bước 4 – Xác định tiêu chuẩn đánh giá: Để đánh giá khả năng xấp xỉ thời gian của
một mạng nơ-ron, người ta thường dùng hàm Tổng bình phương lỗi (sum of squared errors)sau:
Trang 23Bước 5 – Huấn luyện mạng: Việc huấn luyên mạng để học các mẫu từ dữ liệu bằng
cách lần lượt đưa các mẫu vào cùng với những giá trị mong muốn Mục tiêu của việc huấnluyện mạng đó là tìm ra tập các trọng số cho ta giá trị nhỏ nhất toàn cục của chỉ số hiệunăng hay hàm lỗi Một vấn đề quan trọng trong quá trình huấn luyên mạng nơ-ron là xácđịnh điều kiện dừng của quá trình huấn luyện Có ba cách thường dùng để dừng một quátrình huấn luyện
- Cách thứ nhất: nhấn mạnh vào việc tránh bị rơi vào điểm tối ưu cục bộ, nhà dự báochỉ dừng quá trình học khi không có một sự cải thiện đáng kể nào của hàm lỗi Điểm
mà mạng nơ-ron không còn cải thiện được nữa gọi là điểm hội tụ
- Cách thứ hai: là sử dụng một thông số cố định là số lần lặp tối đa, quá trình huấnluyện sẽ dừng nếu số số lần lặp (epoches) vượt quá thông số này Mạng nơ-ron sẽđược kiểm tra, nếu kết quả không tốt thì quá trình học sẽ được tiếp tục lại
- Cách thứ ba: là ta sử dụng một tập dữ liệu ngoài dữ liệu huấn luyện gọi là tập dữ liệukiểm định (validation set) Trong quá trình huấn luyện, cứ mỗi lần vector trọng sốcủa mạng nơ-ron thay đổi, tập dữ liệu xác thực này sẽ được đưa vào mạng và tính rasai sốδ Giải thuật huấn luyện sẽ dừng khi sai số trung bình ´δ nhỏ hơn một ngưỡng θ
mà nhà dự đoán mong muốn Phương pháp này có khả năng tránh được hiện tượngquá khớp tuy nhiên không phải lúc nào cũng hội tụ do mạng nơ-ron có thể không đápứng được ngưỡng sai số mong muốn của người dùng
Trang 24Hình 2.1.3.1.3: Lưu đồ huấn luyện mạng nơ-ron
Bước 6 – Dự đoán và cải tiến: Sau khi đã thực hiện các bước trên, ta có được một
mô hình mạng nơ-ron dùng để dự đoán Các giá trị dự đoán của mạng được lưu lại và sosánh với các giá trị thực tế khi chúng xuất hiện Sau một thời gian, có thể mô hình mạngkhông còn đúng nữa thể hiện qua việc kết quả dự đoán ngày càng xa các giá trị thật, ta cầnphải tiến hành cải tiến mạng hoặc học lại và xây dựng mạng mới theo các bước trước
Mặc dù các mạng nơ-ron có khả năng xấp xỉ tốt các hàm phi tuyến, nhưng chúngkhông thể lập mô hình trực tiếp các thay đổi có tinh xu hướng và tính mùa trong dữ liệuchuỗi thời gian Theo nhà nghiên cứu Zhang và đồng sự, năm 2005, lý do của thất bại này làmột thực tế như là các mô hình thống kê truyền thống; các mạng nơ-ron có thể không đồngthời xử lý nhiều thành phần khác nhau bên dưới một dữ liệu chuỗi thời gian
Bắt đầu
- Định dạng mạng- Khởi tạo trọng số cho mạng
- Nạp dữ liệu huấn luyện- Nạp dữ liệu output
Tính toán giá trị đầu ra Tính toán giá trị sai số
Cập nhật trọng số
Tính sai số trung bình
ngưỡng ?
Kết thúc
Có
Không
Trang 25Hình 2.1.3.1.4: Kết quả dự đoán của mạng nơ-ron nhân tạo sinh ra
Hình 2.11 ở trên là kết quả dự báo do mạng nơ-ron nhân tạo ba lớp có 12 đơn vị đầuvào, 12 đơn vị tầng ẩn và 1 đơn vị đầu ra Ta thấy rõ ràng độ chính xác dự báo của mạngnơ-ron sinh ra không chính xác, do đó cần có sự cải tiến mạng nơ-ron nhân tạo để tăng khảnăng dự báo cho những dữ liệu chuỗi thời gian có tính xu hướng và tính mùa Trong luậnvăn này tôi sử dụng hai mô hình là mạng nơ-ron nhân tạo kết hợp với khử mùa và làm trơnlũy thừa kết hợp với mạng nơ-ron nhân tạo
2.1.4 Khử tính mùa, khử tính xu hướng cho mạng ANN
Mạng nơ-ron nhân tạo thuần không có khả năng đưa ra dự báo tốt cho dữ liệu chuỗithời gian có tính xu hướng và tính mùa Để cải thiện điều này, ta có thể tìm cách loại bỏthành phần mùa và xu hướng trong dữ liệu rồi thực hiện huấn luyện và dự báo đối với chuỗi
dữ liệu mới sau khi loại bỏ hai thành phần trên Trong phần này, tôi sẽ giới thiệu về kỹ thuật
để khử tính mùa, tính xu hướng ra khỏi dữ liệu chuỗi thời gian và một mô hình kết hợpmạng nơ-ron nhân tạo với kỹ thuật này
2.1.4.1 Kỹ thuật khử tính xu hướng cho dữ liệu chuỗi thời gian
Các dữ liệu chuỗi thời gian trong thực tế thường có thành phần xu hướng, thành phầnnày thể hiện sự tăng hay giảm giá trị của dữ liệu chuỗi thời gian trong một thời đoạn dàihạn Có nhiều kỹ thuật để khử đi tính xu hướng này của dữ liệu chuỗi thời gian, trong đó có
Trang 26hai kỹ thuật thường được sử dụng do tính đơn giản và hiệu quả của chúng là khử tính xuhướng bằng lấy hiệu (differencing) và khử tính xu hướng tuyến tính (linear detrend).
a) Khử tính xu hướng tuyến tính
Trong kỹ thuật khử xu hướng tuyến tính, ta xấp xỉ chuỗi thời gian bằng một đườnngthẳng hồi quy at +b với t là biến thời gian Các hệ số a và b được ước lượng dựa trên việc tốithiểu hàm sai số sau:
E (a , b )=∑
t=1
n
(Y t−(at +b))2
n: là số giá trị quan sát được của dữ liệu chuỗi thời gian
Y t: là giá trị chuỗi thời gian tại thời điểm t
Trong giải tính toán học, người ta đã chứng minh được rằng để hàm số E(a , b) đạtgiá trị cực tiểu thì a và b phải là nghiệm của hệ sau:
Sau khi đã có đường thẳng at +b, ta khử xu hướng bằng cách ứng với mỗi t, lấy Y t trừ
đi at +b Khi đó ta sẽ được chuỗi mới là chuỗi Y ' t là chuỗi thời gian đã khử xu hướng Đểphục hồi một chuỗi đã khử xu hướng bằng phương pháp này về chuỗi ban đầu chỉ cần lấygiá trị của nó tại mỗi thời điểm t cộng với at +b
b) Khử tính xu hướng bằng lấy hiệu
Trang 27Một phương pháp khác để khử đi tính xu hướng của chuỗi thời gian là phương pháplấy hiệu Với chuỗi thời gian {Y t} có tính xu hướng, đặt X t=Y t +1−Y t thì chuỗi thời gian {X t}sinh ra là một chuỗi không có tính xu hướng
Để phục hồi một chuỗi thời gian {X t} đã được khử tính xu hướng theo cách này vềchuỗi ban đầu ta thực hiện Y t +1=X t+Y t Nếu ta biết được Y1 thì ta sẽ dễ dàng phục hồi lạitoàn chuỗi {Y t} Hình 2.12 là đồ thị minh họa cho dữ liệu chuỗi thời gian trước và sau khikhử xu hướng bằng phương pháp tuyến tính và lấy hiệu
(c)
Hình 2.1.4.1.1: (a) Dữ liệu chuỗi thời gian gốc (b) Dữ liệu chuỗi thời gian sau khi khử tính xu hướng tuyến tính (c) Dữ liệu chuỗi thời gian sau khi khử tính xu hướng bằng lấy hiệu
2.1.4.2 Kỹ thuật khử tính mùa cho dữ liệu chuỗi thời gian
Trong thực tế có rất nhiều chuỗi thời gian có tính mùa ví dụ như hàng năm doanh sốbán hàng của một cửa hàng thực phẩm tăng cao trong các tháng 11, 12 Mạng nơ-ron không
có khả năng dự đoán tốt cho chuỗi thời gian có tính mùa nên cần phải khử mùa cho chuỗi
Trang 28thời gian trước khi sử dụng mạng nơ-ron để dự báo Có nhiều phương pháp khử mùa chochuỗi thời gian, ở đây tôi chọn hai phương pháp là lấy hiệu theo mùa (seasonal differencing)
và RTMA (ratio to moving average) do tính hiệu quả và đơn giản cho việc phục hồi lạichuỗi ban đầu từ chuỗi đã khử mùa
a) Khử tính mùa bằng lấy hiệu
Kỹ thuật này được sử dụng trong phương pháp luận Box-Jenkins Kỹ thuật này thựchiện việc biến đổi chuỗi thời gian {Y t} thành chuỗi {X t} như sau X t=Y t −s−Y t, với s là độ lớnmột chu kỳ của chuỗi thời gian Nếu chuỗi thời gian được quan sát theo đơn vị là tháng thì
s=12, nếu chuỗi quan sát theo quý thì s=4
b) Khử tính mùa bằng RTMA
Ý tưởng của giải thuật này là ta sẽ ước lượng chỉ số mùa (seasonal index) của cácthời đoạn trong một chu kỳ của chuỗi thời gian, nghĩa là nếu chuỗi thời gian có tính mùatheo năm và giá trị được quan sát theo tháng thì ta sẽ tính chỉ số mùa cho từng tháng, nếugiá trị được quan sát theo quý thì ta sẽ tính chỉ số mùa cho từng quý Để tính chỉ số mùa tacần phải ước lượng và loại bỏ thành phần xu hướng và thành phần mùa của chuỗi thời gianbằng phương pháp trung bình di động trung tâm (centered moving average)
Giả sử ta có một chuỗi thời gian quan sát theo tháng thì chỉ số mùa theo tháng sẽđược tính như sau: Bắt đầu từ tháng 7 của năm đầu tiên ta tính tổng di động 12 tháng chotừng tháng Với mỗi giá trị trong chuỗi tổng di động vừa tính ta cộng nó với giá trị kề sau vàchia cho 24 để được chuỗi các giá trị trung bình di động trung tâm cho các thời đoạn Chiagiá trị của các thời đoạn trong chuỗi thời gian với giá trị trung bình di động trung tâm tươngứng ta được một chuỗi các giá trị ước lượng chỉ số mùa cho các tháng Vì ứng với mỗi tháng
có nhiều giá trị ước lượng như vậy nên giá trị trung vị của các giá trị ước lượng sẽ là chỉ sốtạm thời mùa cho tháng Lấy mỗi chỉ số mùa tạm thời này nhân với 12 và chia cho tổng chỉ
số mùa tạm thời của 12 tháng ta sẽ có các chỉ số mùa thật sự của 12 tháng trong năm
Để khử tính mùa trong chuỗi thời gian ta chỉ việc lấy giá trị của mỗi thời đoạn chiacho chỉ số mùa tương ứng của nó Hình 2.13 là đồ thị minh họa cho dữ liệu chuỗi thời giantrước và sau khi khử mùa
Trang 29Tôi hiện thực mô hình trên bằng ngôn ngữ lập trình C#, trên nền NET framework4.0 với bộ hỗ trợ lập trình Visual C# 2010 Chương trình gồm có các module chính đượcminh họa tại Hình 2.14.
Trang 30Hình 2.1.4.3.1: Mô hình mạng nơ-ron nhân tạo kết hợp với khử tính mùa và khử tính xu
hướng
Module đọc và biểu diễn dữ liệu: Module này thực hiện đọc dữ liệu từ file với định
dạng như hình dưới và biễu diễn dữ liệu cho người dùng bằng đồ thị trực quan Module nàycòn có chức năng tính và biểu diễn hàm tự tương quan của dữ liệu chuỗi thời gian bằng đồthị để hỗ trợ người dùng xác định các thành phần trong dữ liệu chuỗi thời gian File chứa dữliệu có định dạng gồm một hoặc nhiều cột các số, nếu file có nhiều cột số thì các số ở cáccột khác nhau trong cùng một hàng phân cách nhau bởi dấu “,” hoặc ký tự trống Các Hình2.15, 2.16, 2.17 lần lượt minh họa định dạng file dữ liệu, việc vẽ đồ thị và đồ thị tự tươngquan đối với một chuỗi dữ liệu
Hình 2.1.4.3.2: Định dạng của file dữ liệu.
Trang 31Hình 2.1.4.3.3: Đồ thị của chuỗi thời gian được biểu diễn bởi Module đọc và biễu diễn dữ liệu.
Hình 2.1.4.3.4: Hàm tự tương quan của chuỗi thời gian được biểu diễn bởi Module đọc và
biễu diễn dữ liệu.
Module khử mùa và khử xu hướng: Module này có nhiệm vụ khử tính mùa và tính
xu hướng khỏi một dữ liệu chuỗi thời gian để đưa vào mạng nơ-ron, đồng thời thêm thànhphần mùa và xu hướng vào chuỗi dự báo của mạng nơ-ron để đưa ra giá trị dự báo sau cùng.Tôi hiện thực hết 4 giải thuật khử mùa và khử xu hướng đã nêu ở trên trong module này vàcho phép người dùng chọn phương pháp phù hợp với dữ liệu của mình
Trang 32Module mạng nơ-ron: là module thực hiện chức năng của mạng nơ-ron trong mô
hình là học và sinh ra dự báo Mô hình mạng được hiện thực là mô hình mạng truyền thẳnggồm ba lớp với một đơn vị đầu ra Số lượng đơn vị ở tầng xuất và tầng ẩn do người dùngtùy chọn Các giá trị đầu vào của mạng là các giá trị chuỗi thời gian ở các thời đoạn trước.Hàm kích hoạt được sử dụng ở tầng ẩn và tầng xuất là hàm Sigmoid, hàm kích hoạt ở tầngnhập là hàm đồng nhất Ở đây tôi hiện thực giải thuật huấn luyên mạng là lan truyền ngược.Điều kiện dừng của quá trình học được xác định bởi hai thông số: số epoch tối đa và độ lệchsai số tối thiểu giữa hai epoch Số epoch tối đa là một số do người dùng chọn, khi số epochcủa quá trình học lớn hơn số epoch tối đa thì chương trình sẽ dừng Độ lệch sai số tối thiểu
là một số nhỏ do người dùng chọn, khi độ chênh lệch của hàm sai số trong hai epoch học kếtiếp nhỏ hơn giá trị này thì điều đó có nghĩa là việc học tiếp không cải thiện được hàm sai sốmột cách đáng kể, quá trình học sẽ dừng Việc chọn điều kiện dừng như thế sẽ giúp ngườidùng chủ động trong việc kiểm soát quá trình học và tránh hiện tượng quá khớp Ban đầungười dùng nên chọn số epoch tối đa nhỏ và độ lệch sai số tối thiểu lớn để quá trình họcdừng sau một số ít epoch Mạng vừa học xong sẽ được kiểm tra, nếu sai số dự báo quá lớnthì người dùng tăng số epoch tối đa và giảm độ lệch sai số tối thiểu rồi học tiếp
Module scaling: Module này biến đổi dữ liệu đầu vào về một giá trị trong khoảng (0,
1) và chuyển giá trị xuất của mạng nơ-ron (một giá trị nằm trong khoảng (0, 1)) về giá trịthực Module này được hiện thực theo hai công thức sau:
scaleValue = (value - minValue) / (maxValue - minValue) * (0.9999 - (0.0001)) +
(0.0001) (4.3) value = (Scalevalue – 0.0001) / (0.9999 – 0.0001) * (maxValue - minValue) +
minValue (4.4)
Trong đó: scaleValue là giá trị biến đổi nằm trong khoảng (0,1), value là giá trị nằmtrong khoảng xác định (minValue, maxValue) Các thông số minValue và maxValue là cậndưới và cận trên của các giá trị trong chuỗi thời gian Hai thông số này được chọn bởi ngườidùng tùy theo từng chuỗi thời gian
Trang 332.2 Mô hình Holt-Winters
2.2.1 Các thành phần có tính xu hướng và tính mùa Tính xu hướng trong một chuỗi thời gian là sự thay đổi dài hạn ở mức độ dữ liệu.
Nếu, qua khoảng thời gian dài, chuỗi di chuyển hướng lên trên, chúng ta nói rằng dữ liệucho thấy một xu hướng tích cực Nếu mức độ dữ liệu giảm theo thời gian, đó là một xuhướng tiêu cực Các thành phần mang tính theo xu hướng trong chuỗi thời gian rõ ràng là viphạm điều kiện của sự cố định
Tính mùa được định nghĩa là xu hướng của dữ liệu trong chuỗi thời gian để thể hiện
hành vi lặp đi lặp lại mỗi khoảng thời gian s Giới hạn của mùa được dùng để đại diện chokhoảng thời gian trước khi hành vi bắt đầu lặp đi lặp lại Do đó, s là độ dài mùa trong cáckhoảng thời gian
2.2.2 Mô hình Holt-Winters
Như được nhắc trong phần 1.4., làm trơn cấp số mũ là một phân lớp của các mô hìnhtuyến tính, mà có thể nắm bắt các đặc trưng tuyến tính của chuỗi thời gian Trong ứng dụngcủa mô hình làm trơn cấp số mũ, có 3 loại mô hình được dùng rộng rãi trong các chuỗi thờigian khác nhau đó là:
2.2.2.1 Mô hình 1: Phương pháp Làm trơn cấp số mũ đơn (Single
Exponential Smoothing):
Đây là dạng đơn giản nhất của việc làm trơn cấp số mũ và có thể chỉ được dùng cho
dữ liệu của chuỗi thời gian không có các thành phần mang tính xu hướng hay tính mùa triệt
để Với một chuỗi thời gian biết trước, một cách tiếp cận hợp lý đó là cấp một trọng số trungbình cho các giá trị trong quá khứ Vì vậy, một chuỗi y1, y2, …, y n, ước tính giá trị của
Trang 34Trong đó, Y^n∨n−1 đơn giản là một dự báo trước đó.
Công thức này sẽ định nghĩa cho việc làm trơn cấp số mũ và cực kỳ có ích cho chúng
ta khi cập nhật cho các dự báo chỉ bằng cách dùng hai quan sát: quan sát gần nhất và quansát trước đó Nó cũng có thể được viết lại dưới dạng sai số như sau:
Trang 35Y n +1∨n=α ε n+ ^Y n∨n−1
Trong đó ε n=Y n− ^Y n∨n−1 và là một bước cho biết sai số dự báo
Vấn đề cuối cùng đó là liên quan đến giá trị của hằng số làm trơn α Điều này sẽ phụthuộc vào các đặc tính của chuỗi thời gian cụ thể, đặc biệt là các bất thường của dữ liệu.Một giá trị cao của α sẽ dẫn đến phần lớn các trọng số được đặt lên các mẫu dữ liệu gần đâynhất trong khi một giá trị thấp của α sẽ mang ý nghĩa là các mẫu dữ liệu xa hơn trong quákhứ thì sẽ có tầm quan trọng hơn Hay nói một cách khác là khi α tiến gần 1, dự báo mới sẽbao gồm một sự điều chỉnh đáng kể cho bất kỳ sai số nào xảy ra trong dự báo trước đó Khi
α tiến gần 0, dự báo mới rất giống với dự báo cũ Hằng số làm trơn thường đặt giữa 0.5 –1.0, mặc dù có thể ước tính α bằng cách giảm thiểu tổng của các sai số dự báo bình phương
Actual Smoothed Forecast Actual Smoothed Forecast
150 250 350 450 550 650 750 850
Time
Smoothing Constant Alpha:
MAPE:
MAD:
MSD:
0.100 37.0 134.9 27735.5
Sales data Single Exponential Smoothing 1
Hình 2.2.2.1.1: Hình biểu diễn dự báo doanh số với = 0.1
Actual Smoothed Forecast Actual Smoothed Forecast
140 240 340 440 540 640 740 840 940
Time
Smoothing Constant Alpha:
MAPE:
MAD:
MSD:
0.600 36.5 134.5 22248.4
Sales data Single Exponential Smoothing 6
Hình 2.2.2.1.2: Hình biểu diễn dự báo doanh số với = 0.6
Trang 36Điều này có thể thực hiện bằng cách tính ∑ε t2 cho các giá trị α nằm giữa 0 và 1 (vớicác bước nhảy 0,1), trong đó ε t là một bước nhảy dẫn đến sai số dự báo như được phát biểu
ở trên Bằng cách thực thiện điều này có thể đạt được (đến bước thứ 10 gần nhất) giá trị của
α mà sẽ làm giảm thiểu tổng của các sai số bình phương Các bước nhảy 0,01 có thể đượcthực hiện xoay quanh giá trị này để giảm thiểu tổng của các bình phương hơn nữa Độ chínhxác vào thời điểm này không phải là đặc biệt quan trọng khi hàm tổng của các bình phương
có xu hướng là khá ngang bằng gần với mức tối thiểu
Giá trị khởi tạo:
Giá trị khởi tạo cho y0 có vai trò quan trọng trong việc tính toán tất cả các giá trị tiếpsau đó Việc gán nó bằng y1 là một cách khởi tạo Một khả năng khác là tính trung bình củabốn hay năm quan sát đầu tiên
2.2.2.2 Mô hình 2: Phương pháp Làm trơn cấp số mũ đôi (Doube Exponential Smoothing) – Phương pháp Holt
Khi một xu hướng trong chuỗi thời gian được biết trước, phương pháp Holt trong cácphương pháp làm trơn cấp số mũ có thể được dùng Phương pháp này yêu cầu một ước tính
độ dốc (slope) hiện tại và cũng cần một ước tính của mức độ (level) hiện tại, do đó nó dùnghai hằng số làm trơn cho mỗi thành phần trên Các hằng số làm trơn cung cấp cho các ướctính về mức độ và độ dốc, thích ứng theo thời gian khi những quan sát mới trở nên sẵn sàng
Cho một chuỗi y1, y2, …, y n, là các hàm dự báo, trong đó cung cấp một ước tính chochuỗi với p kỳ dự báo, sẽ đơn giản được viết như sau:
^
Trong đó, L t là thành phần của ước tính mức độ (level) hiện tại và T t là thành phầncủa ước tính xu hướng (độ dốc – slope) Do đó, với một kỳ dự báo sẽ đơn giản được chonhư sau:
^
Y t + p∨n=L t+T t
Vì vậy, giờ đây sẽ có hai tham số cho phương pháp làm trơn cấp số mũ, hay hai hằng
số làm trơn riêng biệt là α cho ước tính mức độ hiện tại và β cho ước tính xu hướng (độ dốc
Trang 37– slope) hiện tại Như trong phương pháp làm trơn cấp số mũ đơn, ước lượng được cập nhậtcủa mức độ L t là một kết hợp tuyến tính của Y^t ∨t−1 và Y t:
L t=α y t+(1−α )(L t −1+T t −1) (0<α<1) (5)
Điều này cung cấp ước tính mức độ tại thời điểm t Khi ước tính mức độ tại thờiđiểm t−1 được biết, thì có thể cập nhật ước tính xu hướng (độ dốc – slope):
T t=β(L t−L t−1)+(1−β ) Tt−1 (0<β <1) (6)Những công thức này có thể cũng được viết dưới dạng hiệu chỉnh sai số (errorcorrection) một cách tương ứng:
L t=L t−1+T t−1+α ε t
T t=T t −1+T t −1+αβ ε t
Phương pháp này, được gọi là phương pháp Holt, đòi hỏi phải bắt đầu từ giá trị L t và
T t được nhập vào, và các ước tính của các giá trị cho α và β sẽ được thực hiện, nhưng chúngcũng có thể được ước tính bằng cách giảm thiểu tổng của các sai số bình phương (sum ofsquared errors) như trong phương pháp làm trơn theo cấp số mũ đơn
Giá trị khởi tạo: