Dự báo chính xác được giá cổ phiếu trong tương lai có thể đem lại được lợi nhuận khổng lồ cho nhà đầu tư nào có năng lực đó. Vì lí do đó, việc dự báo chứng khoán đã và đang là trọng tâm của nhiều nghiên cứu của giới đầu tư. Tìm hiểu về việc dự báo chuỗi thời gian, về mô hình dự báo ARIMA, cũng như sử dụng mô hình này để dự báo chứng khoán với một độ chính xác chấp nhận được.
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC
Giảng viên hướng dẫn: ThS NGUYỄN TUẤN DŨNG Sinh viên thực hiện: TRẦN HẢI PHONG
Lớp: Toán Tin 2 – K63
Mã số sinh viên: 20185393
HÀ NỘI – 2022
Trang 2TRANG NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
1 Mục đích và nội dung của đồ án:
2 Kết quả đạt được:
3 Ý thức làm việc của sinh viên:
Hà Nội, ngày tháng năm 2022 Giảng viên hướng dẫn
(Ký và ghi rõ họ tên)
Trang 3MỤC LỤC
MỞ ĐẦU 3
NỘI DUNG CHÍNH 5
1 Giới thiệu về chuỗi thời gian 5
1.1 Định nghĩa chuỗi thời gian 5
1.2 Dự báo chuỗi thời gian 8
2 Mô hình dự báo ARIMA 10
2.1 Tổng quan mô hình ARIMA 10
2.2 Phương pháp 11
2.3 Mô hình ARIMA(p,d,q) 12
2.4 Cách xác định hệ số p, d, q 15
2.4.1 Cách xác định hệ số sai phân d 15
2.4.2 Cách xác định hệ số p của AR 16
2.4.3 Cách xác định hệ số q của MA 17
2.5 Tiêu chuẩn AICC 17
3 Dự báo chứng khoán bằng mô hình ARIMA 18
3.1 Mô tả bài toán 18
3.2 Các tham số đánh giá 19
3.3 Thực hiện 20
3.4 Kết quả 22
3.5 Đánh giá 23
KẾT LUẬN 24
TÀI LIỆU THAM KHẢO 25
Trang 4MỞ ĐẦU
Khi cuộc sống của mỗi người đều ít nhiều bị ảnh hưởng bởi đại dịch Covid-19 kéo dài, nhiều người bắt đầu nghĩ đến việc đầu tư chứng khoán với những hứa hẹn về một cách kiếm tiền dễ dàng Theo thống kê gần nhất của Trung tâm Lưu ký Chứng khoán Việt Nam (VSD), trong vòng
10 tháng đầu năm 2021, các nhà đầu tư cá nhân tại Việt Nam đã mở mới 1,09 triệu tài khoản chứng khoán, cao hơn con số 1,03 triệu tài khoản đã được nhóm này mở trong cả 4 năm 2017 - 2020 cộng lại Chỉ tính riêng tháng 10/2021 đã có hơn 129.500 tài khoản chứng khoán do nhà đầu tư
cá nhân trong nước mở mới, tăng gần 13% so với tháng trước Con số này chỉ đứng sau kỷ lục lập vào tháng 6 vừa qua với hơn 140.000 tài khoản chứng khoán mở mới trong một tháng Như vậy, thị trường chứng khoán
đã chứng kiến 8 tháng liên tiếp số lượng tài khoản mở mới đều nằm trên mốc 100.000 Toàn thị trường chứng khoán hiện nay có tới hơn 3,86 triệu tài khoản chứng khoán, chủ yếu là các nhà đầu tư cá nhân từ đủ các ngành nghề như nhân viên văn phòng, chủ cơ sở kinh doanh đang nghỉ dịch đến
cả những tiểu thương, tài xế công nghệ…
Mỗi người đầu tư chứng khoán đều cần có khả năng phân tích thị trường, nhìn vào giá cổ phiếu trong quá khứ để đưa ra quyết định đầu tư cho bản thân trong tương lai Có những người không mua những cổ phiếu tăng giá quá nhanh vì họ cho rằng đã có sai sót, trong khi có người lại tránh những cổ phiếu đang đi xuống vì lo sợ nó sẽ tiếp tục rớt giá,
Trang 5Dự báo chính xác được giá cổ phiếu trong tương lai có thể đem lại được lợi nhuận khổng lồ cho nhà đầu tư nào có năng lực đó Vì lí do đó, việc dự báo chứng khoán đã và đang là trọng tâm của nhiều nghiên cứu của giới đầu tư Mặc dù nhiều người cho rằng sự thay đổi giá chứng khoán
là không thể dự báo được dựa trên bản chất khó lường của giá cổ phiếu, nhiều nhà nghiên cứu cho rằng việc dự báo với một độ chính xác chấp nhận được là có thể thực hiện Những mô hình dự báo thương được sử dụng có thể kể đến như mạng nơ-ron nhân tạo (Artificial neural network – ANN), bộ nhớ dài ngắn hạn (Long short-term memory – LSTM) hoặc
tự hồi quy tích hợp trung bình trượt (Autoregressive integrated moving average - ARIMA)… Trong đó, mô hình ARIMA được biết đến là mạnh
mẽ và hiệu quả hơn trong dự báo các chuỗi thời gian về tài chính như giá
cổ phiếu Mô hình này có thể cung cấp các dự báo chứng khoán đáng tin cậy trong tương lai gần một cách rất hiệu quả
Do đó, em quyết định lấy “Dự báo chứng khoán sử dụng mô hình dự báo ARIMA” là đề tài cho Đồ án II của mình Trong đây em sẽ đi tìm hiểu về việc dự báo chuỗi thời gian, về mô hình dự báo ARIMA, cũng như sử dụng mô hình này để dự báo chứng khoán với một độ chính xác chấp nhận được
Trong quá trình thực hiện đề tài, em đã nhận được rất nhiều sự chỉ bảo, giúp đỡ và góp ý của thầy Nguyễn Tuấn Dũng Thầy đã giúp đỡ em rất nhiều trong việc hoàn thành đề tài của mình Mặc dù em đã cố gắng hết sức, song có thể không tránh khỏi được những thiếu sót Em rất mong được sự đóng góp của thầy cô để báo cáo đồ án của em có thể được hoàn
Trang 6NỘI DUNG CHÍNH
1 Giới thiệu về chuỗi thời gian
1.1 Định nghĩa chuỗi thời gian
Chuỗi thời gian là một chuỗi các phép đo được thực hiện theo thời gian, thường thu được ở các khoảng cách đều nhau, có thể là hàng ngày, hàng tháng, hàng quý hoặc hàng năm Nói cách khác, chuỗi thời gian là một chuỗi các điểm dữ liệu được ghi lại tại các thời điểm cụ thể Một số ví dụ về chuỗi thời gian có thể là:
• Nhiệt độ không khí hàng ngày ở Hà Nội trong 3 tháng qua
• Dân số Việt Nam trong 20 năm qua
• Giá cổ phiếu đóng cửa hàng ngày
• …
Một chuỗi thời gian được quan sát thường có các thành phần sau:
• Tính xu hướng – trend: tính xu hướng tồn tại khi có một xu hướng trong dài hạn của dữ liệu khi bỏ qua bất cứ tác động ngắn hạn nào như biến động theo mùa hoặc nhiễu Nó có thể là tuyến tính hoặc không
Hình 1: Giá bitcoin giai đoạn tháng 9/2020 tới tháng 3/2021 có xu hướng tăng
Trang 7• Tính thời vụ - seasonal: tính thời vụ xảy ra bởi các yếu tố mùa
vụ như các quý của năm, các ngày trong tuần,… Nó luôn xảy
ra trong một khoảng thời gian cố định và mang tính chất tuần hoàn Ví dụ: nhiệt độ giảm thấp vào mùa đông, doanh số bán nước giải khát tăng vào mùa hè,…
• Tính chu kỳ - cyclic: tính chu kỳ tồn tại khi có sự tăng lên hoặc giảm xuống lặp lại trong một giai đoạn không cố định Ví dụ: các nền kinh tế thường có sự tăng giảm theo chu kỳ Sau mỗi thời kỳ suy thoái kinh tế sẽ là thời kỳ phục hồi và phát triển, trước khi sự tăng trưởng kinh tế lại chững lại và khởi đầu cho một cuộc suy thoái mới Tuỳ theo nền kinh tế mà chu kỳ này
có thời hạn là 5 cho đến 10 năm
• Phần dư – residual: là phần còn lại sau khi đã loại bỏ tính xu hướng, thời vụ và chu kỳ, dẫn đến sự thay đổi ngắn hạn không
dự báo trước được và không có tính hệ thống Ví dụ: biến động chính trị ảnh hưởng tới giá cổ phiếu
Hình 2: Số ngôi nhà được bán hàng tháng tại Mỹ giai đoạn 1973-1995 (đơn vị: triệu)
Có thể thấy rõ tính xu hướng trong từng năm và tính chu kỳ trong khoảng từ 6-10 năm
Trang 8Một giả định rất quan trọng trong phân tích chuỗi thời gian là chuỗi
đó là một chuỗi dừng Một chuỗi thời gian được gọi là dừng khi giá trị trung bình và phương sai của nó không đổi theo thời gian
và và giá trị hiệp phương sai giữa hai giai đoạn chỉ phụ thuộc vào khoảng cách giữa hai giai đoạn ấy chứ không phụ thuộc vào thời gian thực sự tại đó hiệp phương sai được tính Chuỗi dừng có xu hướng trở về giá trị trung bình và những dao động quanh giá trị trung bình sẽ là như nhau Nói cách khác, một chuỗi thời gian không dừng sẽ có giá trị trung bình thay đổi theo thời gian, hoặc giá trị phương sai thay đổi theo thời gian hoặc cả hai
Chuỗi dừng rất cần thiết bởi nếu chuỗi không dừng, ta sẽ không thể khái quát hoá kết quả phân tích, dẫn đến dự báo chuỗi thời gian không dừng không có giá trị ứng dụng thực tế
Có nhiều phương pháp để kiểm định một chuỗi thời gian có phải chuỗi dùng hay không, như kiểm định Zivot – Andrews, kiểm định KPSS, kiểm định Phillip–Perron,… Trong đồ án này em sẽ sử dụng kiểm định Augmented Dickey Fuller (ADF) để xem xem chuỗi thời gian có phải chuỗi dừng hay không, nếu không thì sẽ thực hiện sai phân để đưa nó về chuỗi dừng
Trang 91.2 Dự báo chuỗi thời gian
Dự báo chuỗi thời gian là việc sử dụng một mô hình để dự đoán các giá trị trong tương lai dựa trên các giá trị được quan sát trước
đó Nó liên quan đến xây dựng các mô hình thông qua phân tích
dữ liệu lịch sử và sử dụng chúng để ra những quyết định chiến lược trong tương lai Một điểm quan trọng trong dự báo là tại thời điểm phân tích, kết quả trong tương lai là hoàn toàn không có sẵn
và chỉ có thể được ước tính thông qua các phương pháp thống kê, công thức toán học đã được kiểm chứng Kết quả dự báo không phải lúc nào cũng chính xác và khả năng dự báo có thể rất khác nhau — đặc biệt là khi xử lý các yếu tố biến động trong dữ liệu chuỗi thời gian cũng như các yếu tố nằm ngoài tầm kiểm soát
Dự báo chuỗi thời gian thường được sử dụng cùng với phân tích chuỗi thời gian Phân tích chuỗi thời gian liên quan đến việc phát triển các mô hình để có được sự hiểu biết về dữ liệu, từ đó hiểu được các thành phần nguyên nhân, yếu tố tác động cơ bản lên số liệu cũng như trích xuất được các số liệu thống kê có ý nghĩa và các đặc điểm khác của dữ liệu Về cơ bản, quá trình phân tích sẽ cho chúng ta biết “lí do” vì sao những giá trị hiện diện trong tập
dữ liệu, tiếp theo là đưa ra các dự báo dựa trên các “lí do” ấy, và cuối cùng là đặt ra các giải pháp hành động cụ thể
Trang 10Dự báo chuỗi thời gian có nhiều ứng dụng trong đa dạng các lĩnh vực, có thể kể đến như:
• Dự báo nhu cầu thị trường để lập kế hoạch sản xuất kinh doanh
• 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 các yếu tố thời tiết như 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ế
• Dự báo các hiện tượng thiên văn học
• …
Dự báo đóng vai trò vô cùng quan trọng trong thế giới hiện đại, là thành phần thiết yếu đối với cá nhân, doanh nghiệp, chính phủ,…
để đưa ra các quyết định chiến lược, đem lại hiệu quả tối đa
Một trong những lĩnh vực rất cần đến dự báo chuỗi thời gian là tài chính, tiêu biểu là dự báo chứng khoán Nhà kinh tế học nổi tiếng Peter Bernstein từng nói: “Giá cổ phiếu phản ánh những điểu hiển nhiên chứ không phải những điều bí ẩn” Em tin rằng dựa vào các
mô hình dự báo, ta có thể đảm bảo được lợi nhuận cũng như giảm rủi ro tới mức tối thiểu khi đầu tư chứng khoán Về mặt phương pháp, em chọn sử dụng mô hình dự báo ARIMA vì đây là một phương pháp đã được kiểm chứng là hiệu quả trong việc dự báo ngắn hạn, cung cấp kết quả không thiên vị với khoảng tin cậy thực
tế với bất kỳ chuỗi thời gian nào
Trang 112 Mô hình dự báo ARIMA
2.1 Tổng quan mô hình ARIMA
Mô hình tự hồi quy tích hợp trung bình trượt (Autoregressive integrated moving average – ARIMA) là một phương pháp nghiên cứu độc lập thông qua việc dự đoán theo các chuỗi thời gian Sau
đó, các nhà nghiên cứu sẽ sử dụng các thuật toán dự báo độ trễ để đưa ra mô hình phù hợp Những mô hình thuộc loại này được thiết lập trên cơ sở nắm bắt tất cả các đặc trưng trong dãy số thời gian của một biến số (như xu thế, tính chất chu kỳ và các yếu tố có tính
hệ thống khác) bằng cách gắn giá trị hiện tại của nó với các giá trị trễ của chính nó theo nhiều cách khác nhau
Mô hình này được đưa ra bởi nhà thống kê người Mỹ George Box
và nhà thống kê người Anh Gwilym Jenkins vào những năm 1970,
do nó nó còn được gọi là phương pháp Box – Jenkins
ARIMA là sự kết hợp giữa các phương pháp tiếp cận Tự hồi quy (AR) và Trung bình trượt (MA) trong việc xây dựng mô hình tổng hợp của chuỗi thời gian Mô hình này khá đơn giản, nhưng có thể cho kết quả tốt Nó bao gồm các tham số để tính đến tính thời vụ,
xu hướng dài hạn, tự hồi quy và trung bình trượt, từ đó xử lý tự tương quan được nhúng trong dữ liệu
Trang 122.2 Phương pháp
Phương pháp này gồm 4 bước:
Bước 1: Nhận dạng mô hình thử nghiệm
Ta sẽ quan sát xem chuỗi thời gian có phải chuỗi dừng hay không, nếu chuỗi thời gian có tính mùa hay tính xu hướng thì ta sẽ thực hiện các bước để đưa chuỗi về dạng dừng Ở đây em sử dụng phương pháp sai phân để đưa chuỗi về dạng chuỗi dừng, số lần cần thực hiện sai phân
sẽ là hệ số d của mô hình Sau đó ta sử dụng biểu đồ tương quan (correlogram) và biểu đồ tương quan riêng phần (partial correlogram) để xác định hai hệ số p và q
Bước 2: Ước lượng tham số
Sau khi đã nhận dạng các giá trị thích hợp của p và q, bước tiếp theo là ước lượng các thông số của các số hạng
tự hồi quy và trung bình trượt trong mô hình Đôi khi phép tính này có thể được thực hiện bằng phương pháp bình phương tối thiểu nhưng đôi khi ta phải sử dụng các phương pháp ước lượng phi tuyến (thông số phi tuyến)
Bước 3: Kiếm định bằng chẩn đoán
Sau khi đã lựa chọn mô hình ARIMA cụ thể và ước lượng các tham số của nó, ta tìm hiểu xem mô hình lựa chọn có phù hợp với dữ liệu ở mức chấp nhận hay không bởi vì
có thể một mô hình ARIMA khác cũng phù hợp với dữ liệu Một kiểm định đơn giản về mô hình lựa chọn là xem xem các phần dư ước lượng từ mô hình này có tính ngẫu nhiên thuần túy hay không; nếu có, ta có thể chấp nhận
Trang 13sự phù hợp này của mô hình; nếu không, ta phải thực hiện lại các bước trên
Bước 4: Dự báo
Ở bước cuối cùng này, khi mô hình phù hợp với dữ liệu
đã tìm được, ta sẽ thực hiện dự báo tại thời điểm tiếp theo
Mô hình AR(p) của chuỗi 𝑦𝑡 được biểu diễn như sau:
Trang 14• Moving average: Quá 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à 1 chuỗi nhiễu trắng Quá 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 𝜖𝑡, chuỗi này là 1 chuỗi nhiễu trắng có các tính chất sau:
𝑀𝐴(𝑞) = 𝜇 + ∑ 𝜃𝑖𝜖𝑡−𝑖
𝑞
𝑖=1
Trang 15• 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 dự báo chuỗi thời gian là chuỗi phải đảm bảo tính dừng Hầu hết 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 quy đổi sang logarit hoặc lợi nhuận 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 intergrated) Quá trình sai phân bậc d của chuỗi được thực hiện như sau:
Trang 16Phương trình ARIMA(p,d,q) có thể được biểu diễn dưới dạng:
tự tương quan dương với nhiều độ trễ (10 hoặc nhiều hơn), thì chuỗi
đó cần phải sai phân thêm Mặt khác, nếu chính tự tương quan với
độ trễ 1 quá âm, thì chuỗi có thể bị sai phân quá mức
Trong trường hợp thực sự không thể quyết định giữa hai thứ tự sai lệch, thì sẽ chọn thứ tự cho độ lệch chuẩn nhỏ nhất trong chuỗi sai lệch Đầu tiên, để xác định hệ số d cho mô hình ta cần xác định chuỗi đã cho dừng hay chưa, vì nếu chuỗi đã dừng thì ta không cần đến giá trị sai phân (d=0) còn chưa dừng thì ta cần phải đi xác định
hệ số d
Ở đây, em sử dụng kiểm định Augmented Dickey Fuller (ADF) để kiểm định xem chuỗi đã dừng hay chưa Giả thiết không của kiểm định ADF là chuỗi thời gian không dừng Để tính giá trị p-value em
sẽ sử dụng hàm adfuller() thuộc gói statsmodels của Python
Trang 17Nếu giá trị p-value nhỏ hơn 0,05 thì bác bỏ giả thiết không và kết luận rằng chuỗi thời gian dừng Trong trường hợp p-value lớn hơn mức ý nghĩa 0,05, ta sẽ thực hiện sai phân cho tới khi đạt giá trị p-value cần thiết để chuỗi là chuỗi dừng
2.4.2 Cách xác định hệ số p của AR
Để xác định hệ số p của mô hình AR ta kiểm tra biểu đồ tự tương quan riêng phần (Partial Auto-Correlation Function - PACF) Tự tương quan một phần có thể được hình dung như mối tương quan giữa chuỗi và độ trễ của nó, sau khi loại trừ các đóng góp từ độ trễ trung gian Vì vậy, PACF truyền tải mối tương quan thuần túy giữa
độ trễ và chuỗi Bằng cách đó, ta sẽ biết liệu độ trễ đó có cần thiết trong điều kiện AR hay không Bất kỳ sự tự tương quan nào trong một chuỗi dừng đều có thể được điều chỉnh bằng cách thêm đủ các thuật ngữ AR Vì vậy, ban đầu ta coi thứ tự của số hạng AR bằng với càng nhiều độ trễ vượt qua giới hạn ý nghĩa trong biểu đồ PACF
Hình 3: Kiểm định tham số p