NGHIÊN CỨU ỨNG DỤNG MÔ HÌNH ARIMA ĐỂ DỰ BÁO LƯỢNG MƯA VỤ ĐÔNG XUÂN Ở MỘT SỐ TỈNH VÙNG ĐỒNG BẰNG BẮC BỘ 549 4
Nghiên cứu ứng dụng mô hình ARIMA để dự báo lượng mưa vụ đông xuân ở một số tỉnh vùng đồng bằng Bắc Bộ
Nghiên cứu ứng dụng mô hình ARIMA để dự báo lượng mưa vụ đông xuân ở một số tỉnh vùng đồng bằng Bắc Bộ 553 0
Nghiên cứu ứng dụng mô hình ARIMA để dự báo lượng mưa vụ đông xuân ở một số tỉnh vùng đồng bằng bắc bộ
Nghiên cứu ứng dụng mô hình ARIMA để dự báo lượng mưa vụ đông xuân ở một số tỉnh vùng đồng bằng bắc bộ 81 105 1
Tìm hiểu mô hình học máy giải quyết bài toán dự đoán dự báo ứng dụng trong phân tích hành vi giao thông sử dụng dữ liệu cảm biến
Tìm hiểu mô hình học máy giải quyết bài toán dự đoán dự báo ứng dụng trong phân tích hành vi giao thông sử dụng dữ liệu cảm biến 571 0
Tìm hiểu mô hình học máy giải quyết bài toán dự đoán dự báo ứng dụng trong phân tích hành vi giao thông sử dụng dữ liệu cảm biến
Tìm hiểu mô hình học máy giải quyết bài toán dự đoán dự báo ứng dụng trong phân tích hành vi giao thông sử dụng dữ liệu cảm biến 397 0
Tìm hiểu mô hình điện toán đám mây và vấn đề bảo mật dữ liệu trong điện toán đám mây 102 263 3
Tìm hiểu mô hình điện toán đám mây và vấn đề bảo mật dữ liệu trong điện toán đám mây (Luận văn thạc sĩ)
(Luận văn thạc sĩ) Tìm hiểu mô hình điện toán đám mây và vấn đề bảo mật dữ liệu trong điện toán đám mây
Xây dựng phương pháp định giá và sử dụng mô hình ARIMA để phân tích và dự báo giá cổ phiếu trên thị trường chứng khoán Việt Nam
Xây dựng phương pháp định giá và sử dụng mô hình ARIMA để phân tích và dự báo giá cổ phiếu trên thị trường chứng khoán Việt Nam 1,182 27
Tìm hiểu mô hình quản lý và truy xuất dữ liệu đám mây IDRAGON ứng dụng cho thiết bị di động 671 3
Báo cáo " Tìm hiểu mô hình miền chuyên biệt và ứng dụng vào bài toán chuyển đổi dữ liệu cước " doc 517 0
(SKKN CHẤT 2020) một số biện pháp nhằm hạn chế và sửa chữa những sai lầm của học sinh lớp 5 khi giảitoán có lời văn
(SKKN CHẤT 2020) một số biện pháp nhằm hạn chế và sửa chữa những sai lầm của học sinh lớp 5 khi giảitoán có lời văn 123 20,000 5,000
Tiếp thị sản phẩm và dịch vụ quốc tế - Sản phẩm dịch vụ và chiến lược thuơng hiệu 123 20,000 5,000
Tìm hiểu mô hình arima để dự đoán cho chuỗi thời gian ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH BÁO CÁO THỰC TẬP CÔNG NGHỆ PHẦN MỀM TÌM HIỂU MÔ HÌNH ARIMA ĐỂ DỰ ĐOÁN CHO CHUỖI THỜI GIAN GVHD: PGS.TS. Dương Tuấn Anh o
Oo Mục Lục Chương 1 Giới thiệu 3 Chương 2 Chuỗi thời gian và các thành phần của chuỗi thời gian 4 2.1. Chuỗi thời gian 5 2.2. Các thành phần của chuỗi thời gian 8 2.3. Chuỗi thời gian tĩnh 11 Chương 3 Mô hình ARIMA 14 3.1 Mô hình trung bình di động bậc q, MA(q) 14 3.2 Mô hình tự hồi quy bậc p, AR(p) 16 3.3 Mô hình kết hợp tự hồi quy và trung bình di động, ARMA(p,q) 20 3.4 Mô hình tự hồi quy kết hợp với trung bình di động, ARIMA(p,d,q) 22 3.5 Mô hình ARIMA có tính mùa 23 3.6 Các bước xây dựng mô hình ARIMA 23 3.7 Tóm tắt 26 Chương 4 Dùng mô hình ARIMA để dự đoán bằng phần mềm R 27 4.1 Giới thiệu phần mềm R 27 4.2 Các ví dụ về xây dựng mô hình ARIMA bằng R 27 Chương 5 Kết luận 35 Tài liệu tham khảo 36 2 Danh mục hình Hình 1 Số khách hàng đặt chỗ hàng tháng của hãng Pan Am 5 Hình 2 Hàm tự tương quan 6 Hình 3 Độ tăng nhiệt độ trung bình hàng năm từ 1856 đến 2005 9 Hình 4 Hàm tự tương quan của chuỗi tăng nhiệt độ trung bình hàng năm từ 1856 đến 2005 10 Hình 5 Chuỗi thời gian có tính mùa 11 Hình 6 (a) Chuỗi thời gian tĩnh, (b) chuỗi thời gian không tĩnh 12 Hình 7 Hình ảnh của mô hình MA(2) 16 Hình 8 ACF và PACF của mô hình 20 Hình 9 Hàm tự tương quan và tự tương quan riêng phần của mô hình 22 Hình 10 Các bước xây dựng mô hình ARIMA 24 Hình 11 Đồ thị giá cổ phiếu của tập đoàn ISC 28 Hình 12 Hàm tự tương quan và hàm tự tương quan riêng phần của chuỗi giá chứng khoán của tập đoàn ISC 29 Hình 13 Hàm tự tương quan chuỗi thặng dư của mô hình 30 Hình 14 Đồ thị và hàm tự tương quan của doanh số bán hàng của tập đoàn Keytron 31 Hình 15 Hàm tự tương quan và hàm tự tương quan riêng phần của chuỗi lấy hiệu của doanh số bán hàng của tập đoàn Keytron 32 Hình 16 Chuỗi thặng dư của mô hình arima(0,1,1)x(0,1,1)12 cho chuỗi doanh số bán hàng của tập đoàn Keytron 33 Chương 1 Giới thiệu 3 Con người luôn quan tâm đến tương lai. Việc đoán trước những biến cố sẽ diễn ra giúp ích rất nhiều cho cuộc sống của con người. Từ xa xưa, các học giả đã phát triển các phương pháp quan sát bầu trời, gió, mặt trăng, hoạt động của động thực vât để dự đoán các biến động về thời tiết, về thủy triều để phục vụ cho các hoạt động nông nghiệp, xây dựng, chiến tranh. Ngày nay khi mà hầu hết các tổ chức đều hoạt động trong môi trường không chắc chắn, kế hoạt lập ra hôm nay sẽ ảnh hưởng đến sự sống còn của tổ chức trong ngày mai thì việc dự đoán trước một cách chính xác trở nên rất quan trọng đối với các nhà ra quyết định <1>. Các nhà đầu tư cần phải dự đoán được nhu cầu thị trường, sự biến động của nền kinh tế trong tương lai để có thể đầu tư hiệu quả. Các nhà hoạt định chính sách quốc gia cần dự đoán được về môi trường kinh doanh quốc tế, tỷ lệ lạm phát, tỷ lệ thất nghiệp… trong nhiều năm tới để đưa ra các chính sách phù hợp. Có rất nhiều phương pháp và mô hình dự báo được phát minh ra để giúp đỡ cho các nhà ra quyết định trong đó có một lớp các mô hình dựa trên sự phân tích thống kê các dữ liệu trong quá khứ để đưa ra dự báo. Sự phát triển của công nghệ thông tin giúp cho việc thu nhập, lưu trữ và tính toán thống kê trên một lượng lớn dữ liệu dễ dàng hơn, làm cho các mô hình thống kê trở nên phổ biến. Công việc chủ yếu của các nhà dự báo là lựa chọn một mô hình phù hợp với bài toán của mình. Bài báo cáo này sẽ giới thiệu về cách xây dựng và kiểm tra mô hình ARIMA, một mô hình dự báo dựa trên thống kê nổi tiếng. Chúng tôi cũng giới thiệu cách dùng phần mềm thống kê R để ước lượng các thông số của mô hình này. Chương 2 Chuỗi thời gian và các thành phần của chuỗi thời gian 4 2.1. Chuỗi thời gian Trong bài toán dự báo, một kiểu dữ liệu thường gặp là dữ liệu chuỗi thời gian, tức là dữ liệu được thu nhập, lưu trữ và quan sát theo sự tăng dần của thời gian. Ví dụ, số lượng thí sinh dự thi đại học vào Trường Đại Học Bách Khoa thành phố Hồ Chí Minh được lưu trữ theo từng năm, hay số lượng hàng hóa đã bán được của một siêu thị được lưu trữ theo từng quý là các dữ liệu chuỗi thời gian. Ta ký kiệu chuỗi thời gian là {X t } với t là các số tự nhiên. X t là các biến ngẫu nhiên rút ra từ một phân bố xác suất nào đó. Các chuỗi thời gian thường được biểu diễn bằng một đồ thị với trục hoành là biến thời gian. Hình 1 là một ví dụ về chuỗi thời gian, số hành khách đặt chổ hàng tháng của hãng Pan Am Hình 1 Số khách hàng đặt chỗ hàng tháng của hãng Pan Am Trong chuỗi thời gian thường 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. Định nghĩa: Tự tương quan là sự tương quan giữa một biến với chính nó theo những độ trễ thời gian khác nhau <1>. 5 Ta tính hê số tự tương quan của biến X t với độ trễ k theo công thức <( )( )> ( ) ( ) t t k k t t k E X X Var X Var X µ µ ρ + + − − = (2.1.1) Với * k ρ là hệ số tự tương quan của X ở độ trễ k * µ là trung bình của X t Nếu k ρ khác không thì giữa X t và X t+k có sự tương quan với nhau. Để biểu diễn sự tự tương quan của một biến theo nhiều độ trễ khác nhau một cách trực quan, ta dùng hàm tự tương quan. Định nghĩa: Hàm tự tương quan là một đồ thị biểu diễn các hệ số tự tương quan theo các độ trễ khác nhau <1>. Hình 2 là một ví dụ về hàm tự tương quan. Hình 2 Hàm tự tương quan Trong thực tế ta chỉ có thể tính được hệ số tự tương quan lấy mẫu và dùng thống kê để ước lượng các hệ số tự tương quan của đám đông (population ). Công thức tính hệ số tự tương quan lấy mẫu: 6 1 2 1 ( )( ) ( ) T k t t k t k T t t X X X X r X X − + = = − − = − ∑ ∑ (2.1.2) Với * k r là hệ số tự tương quan lấy mẫu ở độ trễ k * X là trung bình mẫu của t X * T là số phần tử của mẫu. Để kiểm tra xem hệ số tự tương quan ở độ trễ k của một chuỗi thời gian có khác không hay không, ta dùng phép thử t. 1 2 1 1 2 k k i i r t r n − = = + ∑ (2.1.3) Với : * i r là hệ số tự tương quan mẫu ở độ trễ i * k là độ trễ * n là kích cỡ mẫu Nếu k ρ = 0 thì t sẽ có phân phối student với n -1 bậc tự do. Đối với mẫu có kích thước lớn, với mức ý nghĩa 5%, nếu hệ số tự tương quan mẫu nằm trong khoảng 2 / n± thì ta có thể kết luận hệ số tự tương quan của đám đông bằng không với mức ý nghĩa 5%. Việc đánh giá các hệ số tự tương quan có ý nghĩa quan trọng trong việc phân tích chuỗi thời gian. Hàm tự tương quan của dữ liệu giúp ta xác định được các thành phần của chuỗi thời gian từ đó có thể lựa chọn mô hình dự báo hợp lý cũng như việc đánh giá tính đầy đủ của mô hình. 7 2.2. Các thành phần của chuỗi thời gian Trong thực tế, khi quan sát chuỗi thời gian ta nhận thấy bốn thành phần ảnh hưởng lên mỗi giá trị của chuỗi thời gian đó là xu hướng (trend), chu kỳ (cyclical), mùa (seasonal), bất quy tắc(irregular). Thành phần xu hướng(trend) Là thành phần thể hiện sự tăng hay giảm giá trị của chuỗi thời gian trong một giai đoạn dài hạn nào đó <1>. 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 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 3 và 4 là một minh họa về chuỗi thời gian có thành phần xu hướng. Ở đây dù mức tăng nhiệt độ toàn cầu có biến đổi theo từng năm nhưng nhìn chung mức tăng nhiệt độ trung bình có xung hướng tăng theo thời gian. Hệ số tự tương quan rất lớn ở những độ trễ đầu tiên và giảm dần theo sự tăng của độ trễ. 8 Hình 3 Độ tăng nhiệt độ trung bình hàng năm từ 1856 đến 2005 9 Hình 4 Hàm tự tương quan của chuỗi tăng nhiệt độ trung bình hàng năm từ 1856 đến 2005. Thành phần chu kỳ (cyclical) Là chuỗi biến đổi dạng sóng quanh xu hướng <1>. 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. Thành phần bất quy tắc (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 <1>. 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 <1>. Đố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. Ví dụ một chuỗi thời gian được ghi nhận theo từng 10 <...>... Các bước xây dựng mô hình ARIMA Trong việc dự đoán chuỗi thời gian dựa trên mô hình ARIMA, công việc chủ yếu của người dự báo là xác định được bậc của mô hình Công việc này được thực hiện thông qua một thủ tục lặp Ban đầu một mô hình dự tuyển được xây dựng, tiếp theo kiểm tra xem mô hình đó có mô tả đầy đủ chuỗi thời gian không, nếu mô hình không đầy đủ thì tạo mô hình mới cải tiến hơn mô hình cũ Quá... lại cho đến khi tìm được một mô hình đầy đủ Hình 10 minh họa cho quá trình xây dựng mô hình 23 Hình 10 Các bước xây dựng mô hình ARIMA Bước 1: Xác định mô hình dự tuyển Để xác định mô hình ban đầu ta trước hết cần quan sát hình ảnh và hàm tự tương quan của chuỗi thời gian để xem chuỗi thời gian có phải là chuỗi tĩnh hay không R có hai hàm là plot() và acf() có thể giúp ta việc này Nếu chuỗi thời gian. .. có ý nghĩa Hình 5 là đồ thị của một chuỗi thời gian có tính mùa Hình 5 Chuỗi thời gian có tính mùa 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 không rất quan trong trong bài toán dự đoán chuỗi thời gian Nó giúp ta lựa chọn được mô hình dự đoán phù hợp hay giúp cải tiến mô hình đã có chính xác hơn 2.3 Chuỗi thời gian tĩnh Trong quá trình qua sát các chuỗi thời gian, ta... động (ARIMA) là một lớp mô hình tuyến tính có khả năng biểu diễn cả chuỗi thời gian tĩnh lẫn không tĩnh Mô hình ARIMA dựa vào các mẫu tự tương quan trong bản thân của chuỗi thời gian để sinh ra dự đoán Hệ thống các phương pháp dùng để xác định, kiểm tra và cải tiến mô hình ARIMA có sự đóng góp rất lớn của hai nhà thống kê, G.E.P.Box và G.M.Jenkins Do đó việc mô hình và dự đoán dựa trên mô hình ARIMA. .. không tĩnh Hình 6 (a) Chuỗi thời gian tĩnh, (b) chuỗi thời gian không tĩnh Đối với một chuỗi thời gian không tĩnh {Xt}, ta áp dụng toán tử lấy hiệu ∆ lên Xt để được một chuỗi thời gian mới ∆Xt với : 12 ∆Xt = Xt – Xt-1 Nếu ∆Xt là chuỗi tĩnh thì ta xây dựng mô hình mô tả ∆Xt rồi từ đó suy ra Xt Nếu ∆Xt vẫn là chuỗi không tĩnh, ta tiếp tục áp dụng toán tử ∆ cho chuỗi ∆Xt 13 Chương 3 Mô hình ARIMA Mô hình tự... những chuỗi thời gian mà trung bình và phương sai của nó không phụ thuộc vào 11 thời gian Những chuỗi thời gian như vậy gọi là chuỗi thời gian có tính chất tĩnh (stationary) hay gọi là chuỗi thời gian tĩnh Định Nghĩa : Một chuỗi thời gian {Xt} có tính chất tĩnh hay gọi là chuỗi thời gian tĩnh nếu nó thỏa mãn hai tính chất sau (1) E ( X t ) = µ , ∀t (2) Cov( X t , X t + k ) = γ k , ∀t Một chuỗi thời gian. .. các chuỗi thời gian trong kinh tế Đối với các chuỗi thời gian có xu hướng tuyến tính ta cần chuyển nó thành tuyến tính rồi mới áp dụng mô hình ARMA Một trong những cách chuyển một chuỗi thời gian có xu hướng về chuỗi thời gian tĩnh là phương pháp lấy hiệu như đã nói ở chương 2 Do đó người ta đưa thêm một hệ số d 22 vào mô hình ARMA(p,q) để tạo thành mô hình ARIMA( p,d,q), với d là số lần lấy hiệu để chuỗi. .. lần lấy hiệu để chuỗi thời gian trở thành chuỗi tĩnh Khi d bằng không thì mô hình ARIMA( p,d,q) trở thành mô hình ARMA(p,q) Mô hình ARIMA có thể làm việc tốt với dữ liệu tĩnh lẫn dữ liệu có xu hướng tuyến tính Dạng toán học của mô hình ARIMA( p,d,q) là Φ( B)(1 − B) d yt = δ + Θ(Β)ε t Ý nghĩa của các ký hiệu giống như mô hình AR(p) và MA(q) 3.5 Mô hình ARIMA có tính mùa Mô hình ARIMA có thể làm việc tốt... Nếu chuỗi có tình mùa thì ta cần xác định các hệ số cho tính mùa P, D, Q, s Việc xác định bậc của mô hình ARIMA là một công việc khó khăn, cần nhiều kinh nghiệm Việc xác định mô hình ARIMA được thực hiện thông qua một thủ tục lặp gồm các bước xác định mô hình, ước lượng mô hình, kiểm tra mô hình Các bước này được lặp đi lặp lại cho đến khi tìm được mô hình phù hợp, sau đó mô hình này sẽ được dùng để dự. .. 113.7134 Vậy kết quả dự đoán ở thời điểm 116 và 117 lần lượt là 2457.31 ± 224.32 và 2584.55 ± 227.42 34 Chương 5 Kết luận Mô hình ARIMA là một mô hình tổng quát có thể sử dụng cho nhiều loại chuỗi thời gian trong thực tế, kể cả những chuỗi có thành phần xu hướng và thành phần mùa Tuy nhiên mô hình ARIMA cũng có một số hạn chế 1 Để xây dựng mô hình ARIMA cần phải có nhiều dữ liệu Với những chuỗi không có . 2005 10 Hình 5 Chuỗi thời gian có tính mùa 11 Hình 6 (a) Chuỗi thời gian tĩnh, (b) chuỗi thời gian không tĩnh 12 Hình 7 Hình ảnh của mô hình MA(2) 16 Hình 8 ACF và PACF của mô hình 20 Hình 9. MỀM TÌM HIỂU MÔ HÌNH ARIMA ĐỂ DỰ ĐOÁN CHO CHUỖI THỜI GIAN GVHD: PGS.TS. Dương Tuấn Anh o
Oo Mục Lục Chương 1 Giới thiệu 3 Chương 2 Chuỗi thời gian và các thành phần của chuỗi thời gian. toán dự đoán chuỗi thời gian. Nó giúp ta lựa chọn được mô hình dự đoán phù hợp hay giúp cải tiến mô hình đã có chính xác hơn. 2.3. Chuỗi thời gian tĩnh Trong quá trình qua sát các chuỗi thời gian,
1. Giới thiệu về chuỗi thời gian
Dự báo chuỗi thời gian là một lớp mô hình quan trọng trong thống kê, kinh tế lượng và machine learning. Sở dĩ chúng ta gọi lớp mô hình này là chuỗi thời gian (time series) là vì mô hình được áp dụng trên các chuỗi đặc thù có yếu tố thời gian. Một mô hình chuỗi thời gian thường dự báo dựa trên giả định rằng các qui luật trong quá khứ sẽ lặp lại ở tương lai. Do đó xây dựng mô hình chuỗi thời gian là chúng ta đang mô hình hóa mối quan hệ trong quá khứ giữa biến độc lập (biến đầu vào) và biến phụ thuộc (biến mục tiêu). Dựa vào mối quan hệ này để dự đoán giá trị trong tương lai của biến phụ thuộc.
Bạn đang xem: Sử dụng thuật toán ARIMA để dự đoán chuỗi thời gian
Do là dữ liệu chịu ảnh hưởng bởi tính chất thời gian nên chuỗi thời gian thường xuất hiện những qui luật đặc trưng như : yếu tố chu kỳ, mùa vụ và yếu tố xu hướng. Đây là những đặc trưng thường thấy và xuất hiện ở hầu hết các chuỗi thời gian.
Yếu tố chu kỳ, mùa vụ là những đặc tính lặp lại theo chu kỳ. Ví dụ như nhiệt độ trung bình các tháng trong năm sẽ chịu ảnh hưởng bởi các mùa xuân, hạ, thu, đông. Hay xuất nhập khẩu của một quốc gia thường có chu kỳ theo các quí.
Hình 1: Đồ thị về chuỗi nhiệt độ trung bình theo tháng thể hiện yếu tố mùa vụ.
Yếu tố xu hướng (trend) thể hiện đà tăng hoặc giảm của chuỗi trong tương lai. Chẳng hạn như lạm phát là xu hướng chung của các nền kinh tế, do đó giá cả trung bình của giỏ hàng hóa cơ sở hay còn gọi là chỉ số CPI luôn có xu hướng tăng và xu hướng tăng này đại diện cho sự mất giá của đồng tiền.
Hình 2: Đồ thị về yếu tố xu hướng trong chuỗi thời gian của chuỗi giá.
Các dự báo chuỗi thời gian có tính ứng dụng cao và được sử dụng rất nhiều lĩnh vực như tài chính ngân hàng, chứng khoán, bảo hiểm, thương mại điện tử, marketing, quản lý chính sách. Bên dưới là một số ứng dụng của dự báo chuỗi thời gian:
Dự báo nhu cầu thị trường để lập kết hoạch sản xuất kinh doanh cho hãng. Dự báo lợi suất tài sản tài chính, tỷ giá, giá cả hàng hóa phái sinh để thực hiện trading hiệu quả trong market risk. Dự báo giá chứng khoán, các chuỗi lợi suất danh mục để quản trị danh mục đầu tư. Dự báo giá bitcoin, giá dầu mỏ, giá gas,… Dự báo nhiệt độ, lượng mưa để lập kế hoạch sản xuất nông, lâm, ngư nghiệp. Dự báo tác động của các nhân tố vĩ mô như lãi suất, cung tiền, đầu tư trực tiếp nước ngoài, chi tiêu chính phủ, lạm phát,… tác động lên tăng trưởng GDP để điều hành nền kinh tế.Vai trò của chuỗi thời gian rất quan trọng đối với nền kinh tế và hoạt động của doanh nghiệp nên trong machine learning và thống kê có những ngành học nghiên cứu chuyên sâu về chuỗi thời gian như kinh tế lượng, định giá tài sản tài chính.
Khác với các mô hình dự báo thông thường trong machine learning, các mô hình trong dự báo chuỗi thời gian trong kinh tế lượng có những đặc trưng rất riêng. Đòi hỏi phải tuân thủ nghiêm ngặt các điều kiện về chuỗi dừng, nhiễu trắng và tự tương quan. Có rất nhiều lớp mô hình chuỗi thời gian khác nhau và mỗi một lớp mô hình sẽ có một tiêu chuẩn áp dụng cụ thể. Chúng ta có thể liệt kê một số mô hình phổ biến:
Mô hình ARIMA: Dựa trên giả thuyết chuỗi dừng và phương sai sai số không đổi. Mô hình sử dụng đầu vào chính là những tín hiệu quá khứ của chuỗi được dự báo để dự báo nó. Các tín hiệu đó bao gồm: chuỗi tự hồi qui AR (auto regression) và chuỗi trung bình trượt MA (moving average). Hầu hết các chuỗi thời gian sẽ có xu hướng tăng hoặc giảm theo thời gian, do đó yếu tố chuỗi dừng thường không đạt được. Trong trường hợp chuỗi không dừng thì ta sẽ cần biến đổi sang chuỗi dừng bằng sai phân. Khi đó tham số đặc trưng của mô hình sẽ có thêm thành phần bậc của sai phân d và mô hình được đặc tả bởi 3 tham số ARIMA(p, d, q). Mô hình SARIMA: Về bản chất đây là mô hình ARIMA nhưng được điều chỉnh đặc biệt để áp dụng cho những chuỗi thời gian có yếu tố mùa vụ. Như chúng ta đã biết về bản chất ARIMA chính là mô hình hồi qui tuyến tính nhưng mối quan hệ tuyến tính thường không giải thích tốt chuỗi trong trường hợp chuỗi xuất hiện yếu tố mùa vụ. Chính vì thế, bằng cách tìm ra chu kì của qui luật mùa vụ và loại bỏ nó khỏi chuỗi ta sẽ dễ dàng hồi qui mô hình theo phương pháp ARIMA. Mô hình ARIMAX: Là một dạng mở rộng của model ARIMA. Mô hình cũng dựa trên giải định về mối quan hệ tuyến tính giữa giá trị và phương sai trong quá khứ với giá trị hiện tại và sử dụng phương trình hồi qui tuyến tính được suy ra từ mối quan hệ trong quá khứ nhằm dự báo tương lai. Mô hình sẽ có thêm một vài biến độc lập khác và cũng được xem như một mô hình hồi qui động (hoặc một số tài liệu tiếng việt gọi là mô hình hồi qui động thái). Về bản chất ARIMAX tương ứng với một mô hình hồi qui đa biến nhưng chiếm lợi thế trong dự báo nhờ xem xét đến yếu tố tự tương quan được biểu diễn trong phần dư của mô hình. Nhờ đó cải thiện độ chính xác. Mô hình GARCH: Các giả thuyết về chuỗi dừng và phương sai sai số không đổi đều không dễ đạt được trong thực tế. Trái lại phương sai sai số biến đổi rất dễ xảy ra đối với các chuỗi tài chính, kinh tế bởi thường có những sự kiện không mong đợi và cú sốc kinh tế không lường trước khiến biến động phương sai của chuỗi thay đổi. Trong trường hợp đó nếu áp dụng ARIMA thì thường không mang lại hiệu quả cao cho mô hình. Các nhà kinh tế lượng và thống kê học đã nghĩ đến một lớp mô hình mà có thể dự báo được phương sai để kiểm soát các thay đổi không mong đợi. Dựa trên qui luật của phương sai, kết quả dự báo chuỗi sẽ tốt hơn so với trước đó.2. Mô hình ARIMAHiện tại cả R và python đều support xây dựng các mô hình chuỗi thời gian ARIMA, SARIMA, ARIMAX, GARCH,…. Trên R chúng ta có thể sử dụng các packages như forecast và lmtest để xây dựng các mô hình này khá dễ dàng. Đối với thống kê và các mô hình chuỗi thời gian R đang support tốt hơn python. Một lý do đó là các nhà thống kê và kinh tế lượng ưa chuộng sử dụng R hơn. Hướng dẫn xây dựng mô hình ARIMA trên R các bạn có thể xem tại ARIMA turtorial và GARCH time series model.
Bài hôm nay tôi sẽ hướng dẫn các bạn sử dụng python để xây dựng các model ARIMA. Nhưng trước tiên chúng ta cần tìm hiểu lý thuyết của mô hình trước khi đi vào phần thực hành ở mục 3 và 4.
2.1. Lý thuyết mô hình ARIMA
Lý thuyết:Chúng ta biết rằng hầu hết các chuỗi thời gian đều có sự tương quan giữa giá trị trong quá khứ đến giá trị hiện tại. Mức độ tương quan càng lớn khi chuỗi càng gần thời điểm hiện tại. Chính vì thể mô hình ARIMA sẽ tìm cách đưa vào các biến trễ nhằm tạo ra một mô hình dự báo fitting tốt hơn giá trị của chuỗi.
ARIMA model là viết tắt của cụm từ Autoregressive Intergrated Moving Average. Mô hình sẽ biểu diễn phương trình hồi qui tuyến tính đa biến (multiple linear regression) của các biến đầu vào (còn gọi là biến phụ thuộc trong thống kê) là 2 thành phần chính:
Auto regression: Kí hiệu là AR. Đây là thành phần tự hồi qui bao gồm tợp hợp các độ trễ của biến hiện tại. Độ trễ bậc $p$ chính là giá trị lùi về quá khứ $p$ bước thời gian của chuỗi. Độ trễ dài hoặc ngắn trong quá trình AR phụ thuộc vào tham số trễ $p$. Cụ thể, quá trình $\text{AR}(p)$ của chuỗi $x_{t}$ được biểu diễn như bên dưới:\<\text{AR}(p) = \phi_{0}+\phi_{1}x_{t-1} + \phi_{2}x_{t-2} + \dots + \phi_{p} x_{t-p}\> Moving average: Qúa trình trung bình trượt được hiểu là quá trình dịch chuyển hoặc thay đổi giá trị trung bình của chuổi theo thời gian. Do chuỗi của chúng ta được giả định là dừng nên quá trình thay đổi trung bình dường như là một chuỗi nhiễu trắng. Qúa trình moving average sẽ tìm mối liên hệ về mặt tuyến tính giữa các phần tử ngẫu nhiên $\epsilon_{t}$ (stochastic term). Chuỗi này phải là một chuỗi nhiễu trắng thỏa mãn các tính chất:\<\begin{equation}\left\{ \begin{array}{l l} \text{E}(\epsilon_t) & = 0 & (1) \\ \sigma(\epsilon_t) & = \alpha & (2)\\ \rho(\epsilon_t, \epsilon_{t-s}) & = 0, \forall s dịch chuyển trễ - backshift operator $B$ như sau:\<\text{MA}(q) = \mu+(1+\theta_1 B + \dots + \theta_q B^{q})\epsilon_{t}\>Như vậy bạn đọc đã hình dung ra moving average là gì rồi chứ? Về mặt ý tưởng thì đó chính là quá trình hồi qui tuyến tính của giá trị hiện tại theo các giá trị hiện tại và quá khứ của sai số nhiễu trắng (white noise error term) đại diện cho các yếu tố shock ngẫu nhiên, những sự thay đổi không lường trước và giải thích bởi mô hình.
Intergrated: Là quá trình đồng tích hợp hoặc lấy sai phân. Yêu cầu chung của các thuật toán trong time series là chuỗi phải đảm bảo tính dừng. Hầu hết các chuỗi đều tăng hoặc giảm theo thời gian. Do đó yếu tố tương quan giữa chúng chưa chắc là thực sự mà là do chúng cùng tương quan theo thời gian. Khi biến đổi sang chuỗi dừng, các nhân tố ảnh hưởng thời gian được loại bỏ và chuỗi sẽ dễ dự báo hơn. Để tạo thành chuỗi dừng, một phương pháp đơn giản nhất là chúng ta sẽ lấy sai phân. Một số chuỗi tài chính còn qui đổi sang logarit hoặc lợi suất. Bậc của sai phân để tạo thành chuỗi dừng còn gọi là bậc của quá trình đồng tích hợp (order of intergration). Qúa trình sai phân bậc $d$ của chuỗi được thực hiện như sau:
Sai phân bậc 1:\(\text{I}(1) = \Delta(x_t) = x_{t} - x_{t-1}\)
Sai phân bậc d:\(\text{I}(d) = \Delta^{d}(x_t) = \underbrace{\Delta(\Delta(\dots \Delta(x_t)))}_{\text{d times}}\)
Thông thường chuỗi sẽ dừng sau quá trình đồng tích hợp $\text{I}(0)$ hoặc $\text{I}(1)$. Rất ít chuỗi chúng ta phải lấy tới sai phân bậc 2. Một số trường hợp chúng ta sẽ cần biến đổi logarit hoặc căn bậc 2 để tạo thành chuỗi dừng.Phương trình hồi qui ARIMA(p, d, q) có thể được biểu diễn dưới dạng:
\<\Delta x_{t} = \phi_{1} \Delta x_{t-1}+\phi_{2} \Delta x_{t-2}+...+\phi_{p}\Delta x_{t-p}+ \theta_{1}\epsilon_{t-1}+\theta_{2}\epsilon_{t-2}+...+\theta_{q}\epsilon_{t-q}\>Trong đó $\Delta x_t$ là giá trị sai phân bậc $d$ và $\epsilon_t$ là các chuỗi nhiễu trắng.
Như vậy về tổng quát thì ARIMA là mô hình kết hợp của 2 quá trình tự hồi qui và trung bình trượt. Dữ liệu trong quá khứ sẽ được sử dụng để dự báo dữ liệu trong tương lai. Trước khi huấn luyện mô hình, cần chuyển hóa chuỗi sang chuỗi dừng bằng cách lấy sai phân bậc 1 hoặc logarit. Ngoài ra mô hình cũng cần tuân thủ điều kiện ngặt về sai số không có hiện tượng tự tương quan và phần dư là nhiễu trắng. Đó là lý thuyết của kinh tế lượng. Còn theo trường phái machine learning thì tôi chỉ cần quan tâm đến làm sao để lựa chọn một mô hình có sai số dự báo là nhỏ nhất. Tiếp theo chúng ta sẽ sử dụng package vnquant, một package được tôi viết để hỗ trợ cộng đồng khai thác dữ liệu chứng khoán thuận tiện hơn.
3. Ứng dụng vnquant trong thu thập dữ liệu.3.1. Thu thập dữ liệu
Hiện tại package vnquant đã cho phép chúng ta thu thập được hầu hết mã chứng khoán trên thị trường chứng khoán Việt Nam, ở phiên bản R (package VNDS) còn thu thập được báo cáo tài chính và dòng tiền của doanh nghiệp. Ngoài ra vnquant còn hỗ trợ vẽ biểu đồ nến theo thời gian và kết hợp giữa giá và khối lượng giao dịch. Đây là một package mà mình nghĩ là rất hữu ích đối với các bạn làm trong lĩnh vực quant tại Việt Nam. Để cài đặt package này bạn làm như hướng dẫn trong phần read me nhé.
Xem thêm: Tải phần mềm viết nhật ký trên laptop, top 11 ứng dụng viết nhật ký đáng sử dụng nhất
Bây giờ chúng ta sẽ cùng lấy dữ liệu chỉ số VNINDEX 30 thông qua package vnquant nào.