Khái niệm về chuỗi thời gian Chuỗi thời gian là một tập hợp các giá trị được ghi nhận tại các thời điểm khác nhau, có thể được sử dụng để mô tả các biến đổi theo thời gian.. Hình 5 Sơ đồ
PHÂN TÍCH DỮ LIỆU CHUỖI THỜI GIAN
Khái niệm về chuỗi thời gian
Chuỗi thời gian là một tập hợp các giá trị được ghi nhận tại các thời điểm khác nhau, có thể được sử dụng để mô tả các biến đổi theo thời gian Các ví dụ về chuỗi thời gian bao gồm số lượng sản phẩm bán ra hàng tháng, giá cổ phiếu theo ngày, nhiệt độ theo giờ, và số lượng ca nhiễm Covid-19 hàng ngày
Hình 1 Số liệu diễn biến cúm tại phía Nam châu Phi từ 2006-2015
Các thành phần của chuỗi thời gian
Dữ liệu chuỗi thời gian có các thành phần cơ bản như: thành phần xu hướng; thành phần mùa (thời vụ); thành phần chu kỳ (dài hạn); các điểm bất thường và ngẫu nhiên
Hình 2 Biểu diễn xu hướng giảm của dữ liệu
- Thành phần xu hướng : để chỉ xu hướng tăng hay giảm của dữ liệu y trong chuỗi thời gian Thành phần xu hướng này thường được biểu diễn trên đồ thị bởi một đường thẳng hay đường cong trơn Chuỗi dữ liệu không tồn tại thành phần xu hướng (tức là dữ liệu không tăng hoặc không giảm) thì chuỗi đó dừng theo giá trị trung bình
Hình 3 Biểu diễn thay đổi chuỗi theo từng khoảng
- Thành phần mùa (thời vụ): để chỉ chiều hướng tăng hay giảm của giá trị y được tính theo giai đoạn thời gian (khoảng thời gian ngắn) Ví dụ: số lượng trẻ em mắc các bệnh về hô hấp tăng lên vào dịp cao điểm rét đậm, rét hại ở nước ta
Hình 4 Biểu diễn chu kỳ chuỗi thời gian
- Thành phần chu kì (dài hạn): biểu thị bằng sự tăng, giảm của dữ liệu chuỗi thời gian xoay quanh xu hướng Thường trong chuỗi dữ liệu dài hạn thì khó đoán chu kì
Thành phần ngẫu nhiên: Đây là thành phần ngược với chu kỳ, thành phần ngẫu nhiên chỉ sự thay đổi bất thường của giá trị trong chuỗi thời gian và thường không dự đoán được sự thay đổi của dữ liệu Những tác động gây ra sự thay đổi dữ liệu thường do các yếu tố bên ngoài tác động
Hình 5 Sơ đồ chuỗi với định lượng Y(t) diễn tiến theo thời gian t
Theo Hình 5 ta có Yt là giá trị định lượng trên chuỗi thời gian được tính tại thời điểm t, qua đó ta có thể xác định được các mô hình sau:
Trong đó: T là thành phần xu hướng (Trend); S là thành phần mùa (Seasonality); C là thành phần chu kỳ (Cyclical); I là thành phần ngẫu nhiên (Irregular)
Nếu thành phần chu kỳ và mùa không ảnh hưởng đến mức chung của chuỗi thời gian thì nên sử dụng mô hình cộng, ngược lại mô hình nhân được sử dụng nếu thành phần mùa phụ thuộc xu hướng và chu kỳ.
Tính chất của dữ liệu chuỗi thời gian
Tính chất của dữ liệu chuỗi thời gian có thể được hiểu rõ hơn thông qua việc xem xét các ví dụ thực tế từ các lĩnh vực khác nhau Dưới đây là một ví dụ về lợi nhuận hàng quý của công ty Johnson & Johnson:
Ví dụ 1.1: Lợi nhuận hàng quý của Johnson & Johnson
Hình 6 thể hiện biểu đồ lợi nhuận hàng quý mỗi cổ phiếu của công ty Johnson
& Johnson, được cung cấp bởi Giáo sư Paul Griffin từ Trường Quản lý Đại học California Dữ liệu này bao gồm 84 quý (tương đương 21 năm) từ quý đầu tiên của năm 1960 đến quý cuối cùng của năm 1980 Mục tiêu là xây dựng mô hình cho chuỗi thời gian bằng cách quan sát các mẫu chính trong quá khứ Trong trường hợp này, chúng ta có thể nhận thấy xu hướng chung tăng dần và sự biến động đều đặn được thêm vào xu hướng, có vẻ như lặp lại qua các quý
Hình 6 Lợi nhuận hàng quý của Johnson & Johnson
Ví dụ 1.2: Sự nóng lên toàn cầu
Hình 7 Biểu đồ nhiệt độ toàn cầu qua các năm
2009 Dữ liệu được cập nhật từ nghiên cứu của Hansen và đồng nghiệp (2006) Qua biểu đồ, chúng ta có thể nhận thấy một xu hướng tăng đáng kể trong nhiệt độ toàn cầu trong giai đoạn cuối của thế kỷ 20, và điều này đã được sử dụng như một bằng chứng cho giả thuyết về nóng lên toàn cầu Chúng ta cũng có thể quan sát sự ổn định trong khoảng năm 1935, sau đó là một xu hướng tăng đáng kể khác vào khoảng năm 1970
Ví dụ 1.3: Dữ liệu tần số âm thanh
Hình 8 Dữ liệu về tần số âm thanh
Các ứng dụng trong khoa học vật lý đặt ra những câu hỏi phức tạp hơn Hình 8 hiển thị một mẫu õm thanh được ghi lại cho cụm từ aaa ã ã ã hhh với thời lượng 0.1 giây (1000 điểm) Chúng ta có thể quan sát sự lặp lại của tín hiệu và các chu kỳ đều đặn khá rõ ràng Hiện nay, một vấn đề đang thu hút sự quan tâm là việc máy tính nhận dạng tiếng nói, và điều này đòi hỏi chuyển đổi tín hiệu cụ thể này thành các cụm từ ghi lại như aaa ã ã ã hhh Phõn tớch phổ cú thể được sử dụng để tạo ra một chữ ký cho cụm từ này, sau đó có thể được so sánh với các chữ ký của các âm tiết trong các thư viện khác nhau để tìm kiếm sự khớp nhau
Ví dụ 1.4: Sàn giao dịch chứng khoán New York
Hình 9 Dữ liệu chuỗi thời gian tài chính
Hình 9 là một ví dụ về dữ liệu chuỗi thời gian tài chính, mô tả sự thay đổi hàng ngày (hoặc phần trăm thay đổi) của Sàn giao dịch chứng khoán New York (NYSE) từ ngày 2 tháng 2 năm 1984 đến ngày 31 tháng 12 năm 1991 Trong hình vẽ, chúng ta dễ dàng nhận thấy sự sụp đổ của thị trường vào ngày 19 tháng 10 năm 1987 Dữ liệu trong hình 9 là một ví dụ điển hình cho các dữ liệu tài chính.Trung bình của chuỗi thời gian có vẻ ổn định với lợi suất trung bình xấp xỉ bằng không Tuy nhiên, sự biến động (hoặc độ lệch chuẩn) của dữ liệu thay đổi theo thời gian Thực tế là dữ liệu cho thấy sự tập trung của các chu kỳ biến động; có nghĩa là các giai đoạn có biến động mạnh sẽ có xu hướng tập trung lại với nhau Một vấn đề quan trọng trong phân tích dữ liệu tài chính như vậy là dự báo độ biến động của lợi suất trong tương lai Để giải quyết vấn đề này, đã phát triển các mô hình như mô hình ARCH và GARCH (Engle, 1982; Bollerslev, 1986) cũng như mô hình biến động ngẫu nhiên (Harvey, Ruiz và Shephard, 1994).
Tính dừng của dữ liệu chuỗi thời gian
Dữ liệu chuỗi thời gian có thể được tạo ra từ một quá trình và kết quả của nó là tập dữ liệu theo thời gian Quá trình đó sinh ra một tập dữ liệu tổng thể và một tập hợp dữ liệu con được trích xuất từ tập dữ liệu tổng thể đó gọi là một tập dữ liệu mẫu Một tính chất quan trọng của dữ liệu chuỗi thời gian là tính dừng Một chuỗi giá trị trên thời gian t là Yt được coi là dừng khi kỳ vọng, phương sai và hiệp phương sai ở các độ trễ khác nhau giữ nguyên theo diễn biến thời gian Chuỗi Yt được coi là dừng khi thỏa mãn:
Hiệp phương sai giữa Yt và Yt + k không phụ thuộc thời gian t mà phụ thuộc độ trễ thời gian k giữa hai giai đoạn
Hiệp phương sai giữa Yt và Yt + k không phụ thuộc thời gian t mà phụ thuộc độ trễ thời gian k giữa hai giai đoạn
1.4.2 Kiểm tra tính dừng chuỗi thời gian
1.4.2.1 Kiểm tra trực quan trên trên đồ thị biểu diễn chuỗi thời gian
Nếu đồ thị 𝑌 = 𝑓(𝑡) cho trung bình và phương sai của Yt không đổi theo thời gian thì chuỗi có tính dừng Quan sát đồ thị chuỗi dữ liệu thời gian nếu thấy trung bình có xu hướng tăng hoặc giảm theo từng khoảng thời gian thì có thể dự đoán rằng chuỗi là không dừng Phương pháp này giúp ta đánh giá trực quan, ban đầu về tính dừng của chuỗi thời gian Tuy nhiên, với những chuỗi thời gian có xu hướng không rõ ràng, phương pháp này khó khả thi và kết quả kiểm tra đôi khi không đúng
1.4.2.2 Kiểm tra dựa trên sơ đồ tự tương quan và tự tương quan riêng phần
1.4.2.2.1 Sơ đồ tự tương quan ACF
Sử dụng dùng hàm tự tương quan ACF - Autocorelation Function, trong đó: độ trễ k ký hiệu bằng ρk, xác định bằng công thức như sau:
(4) Giá trị ρk có giá trị từ -1 đến 1, là hệ số tương quan giữa Yt và Yt-k Hàm tự tương quan đo lường sự phụ thuộc tuyến tính giữa các cặp quan sát Yt và Yt-k Ví dụ: ρ1 là hệ số tương quan giữa Yt và Yt-1, ρi là hệ số tương quan giữa Yt và Yt- i Nếu vẽ đồ thị ρk với độ trễ k, đồ thị này sẽ cho ra một lược đồ tương quan ACF
1.4.2.2.2 Sơ đồ tự tương quan riêng phần PACF
Ta có hệ số tự tương quan ρk với 𝑘 ≥ 2, cho thấy sự kết hợp tuyến tính giữa Yt và Yt+k Tuy vậy, mức độ kết hợp tuyến tính giữa chúng có thể do tác động của một số biến khác Trong trường hợp này là do ảnh hưởng từ các biến Yt-1, …, Yt- k+1 Do vậy, ta sử dụng hàm tương quan PACF (Partial Autocorrelation Function) để đo độ kết hợp giữa Yt và Yt-k , với hệ số tương quan riêng ρkk ước lượng theo công thức Durbin:
(5) Để kiểm tra sự tương quan giữa các giá trị của chuỗi, ta sử dụng đồ thị ACF (Autocorrelation Function) và PACF Đồ thị ACF thể hiện tương quan giữa các giá trị của chuỗi với các giá trị trước đó, còn đồ thị PACF thể hiện tương quan giữa các giá trị của chuỗi với các giá trị không phụ thuộc
Miêu tả nội dung này trong R như sau:
# Khai báo package stats library(stats)
# Tạo chuỗi thời gian x (đã có sẵn) x 0 05 Cho thấy việc sử dụng mô hình ARIMA (1, 1, 0) để mô phỏng số lượng người mới được chẩn đoán là rất hiệu quả
Mô hình Kiểm thử mô hình
Thêm vào đó, với gói forecast trong R, để xác định các tham số ARIMA(p, q, d), chúng ta sẽ sử dụng hàm auto.arima() Hàm này sẽ tự động lựa chọn mô hình ARIMA phù hợp nhất dựa trên các biểu đồ ACF và PACF tốt nhất dựa trên tiêu chí thông tin bayes), chúng ta đã xác định được mô hình ARIMA phù hợp nhất cho dữ liệu số ca mắc Covid-19 tại Việt Nam Mô hình này có các tham số p = 1, d = 1, và q = 0 Tiếp theo, chúng ta sẽ sử dụng mô hình ARIMA này để dự đoán số ca mắc Covid-19 tại Việt Nam trong tương lai.
Dự đoán
Để thực hiện dự đoán, chúng ta sẽ sử dụng hàm forecast() trong gói forecast Hàm này sẽ trả về dự đoán cho các giá trị trong tương lai cùng với khoảng tin cậy 95% Chúng ta sẽ dự đoán số ca mắc covid19 trong 3 tháng tiếp theo:
Trong đó arima_model là mô hình ARIMA được xác định trước đó Tham số h cho biết số lượng giá trị cần dự đoán trong tương lai Tiếp theo, chúng ta tạo một dataframe df_forecast để lưu trữ dữ liệu dự đoán Trong dataframe này, chúng ta tạo một chuỗi ngày từ tháng 5/2022 đến tháng 7/2022 và lưu trữ giá trị dự đoán trong cột cases_forecast
Hình 33 Kết quả dự đoán Để trực quan hóa kết quả dự đoán, chúng ta có thể vẽ biểu đồ sử dụng gói ggplot2 Biểu đồ sẽ hiển thị số ca nhiễm COVID-19 thực tế (dữ liệu ban đầu) và số ca mắc dự đoán trong thời gian từ tháng 2/2022 đến tháng 7/2022
Hình 34 Biểu đồ so sánh giá trị thực tế và dự đoán
Sau khi đã xác định mô hình ARIMA phù hợp (ARIMA(1,1,0)) và thực hiện dự đoán số ca mắc COVID-19 trong 3 tháng tới, đã thu được kết quả dự đoán và khoảng tin cậy 95% Để xác thực hơn kết quả trên, tác giả cũng thử nghiệm trên bộ dữ liệu của các nước khác như Ấn Độ và Brazil, các nước chịu ảnh hưởng nặng nề nhất đối với dịch Covid-19, dữ liệu được là 77 ngày tính từ thời điểm 15/09/2022
Hình 35 Dự đoán với dữ liệu Ấn Độ
Hình 36 Dự đoán với dữ liệu Brazil
Khi đo qua độ sai số tuyệt đối trung bình (MAPE) ta thu được tỉ lệ lần lượt với Ấn Độ và Brazil là 3,701% và 1,844% Điều này cho thấy rằng mô hình thực sự có tính thực tiễn trong việc áp dụng dự đoán dữ liệu chuỗi thời gian, tuy nhiên khả năng dự đoán là khả thi trong thực tế đối với dữ liệu chuỗi thời gian dừng (stationary data) Từ đó chúng ta có thể rút ra được những điểm mạnh và hạn chế của mô hình Điểm mạnh của mô hình ARIMA cho dự đoán dữ liệu COVID-19:
1 Đơn giản và dễ triển khai: Mô hình ARIMA là mô hình tương đối đơn giản, dễ hiểu và triển khai
2 Phù hợp cho dữ liệu dừng (stationary data): ARIMA hoạt động tốt trên dữ liệu chuỗi thời gian dừng, tức là dữ liệu không có xu hướng tăng/giảm hoặc mô hình phụ thuộc vào thời gian Nếu dữ liệu COVID-19 có xu hướng tăng trưởng ổn định hoặc dao động xung quanh một giá trị trung bình ổn định, ARIMA có thể cho kết quả tốt
3 Độ dự đoán ngắn hạn: ARIMA thường dự đoán tốt trong khoảng thời gian ngắn hạn Vì dữ liệu COVID-19 thường được công bố hàng ngày hoặc hàng tuần, việc sử dụng ARIMA để dự đoán xu hướng gần đây có thể hữu ích Điểm yếu của mô hình ARIMA cho dự đoán dữ liệu COVID-19:
1 Không xử lý tốt yếu tố mùa vụ và biến động phi mùa vụ: ARIMA không phù hợp cho dữ liệu có yếu tố mùa vụ hoặc biến động phi mùa vụ phức tạp Dữ liệu COVID-19 có thể có các yếu tố mùa vụ hoặc dao động không thường xuyên do các yếu tố như các biện pháp kiểm soát dịch bệnh, tiến độ tiêm chủng, v.v Do đó, ARIMA có thể không dự đoán được những biến động này một cách chính xác
2 Dự đoán không phù hợp cho tương lai xa: ARIMA có thể dự đoán tốt trong khoảng thời gian gần, nhưng dự đoán cho tương lai xa có thể không đảm bảo độ chính xác cao Điều này có thể gây khó khăn trong việc dự đoán sự phát triển dài hạn của dịch bệnh COVID-19
3 Ảnh hưởng bởi yếu tố ngoại vi: ARIMA chỉ xem xét các mô hình tương quan trong chuỗi thời gian chính nó Nó không giải quyết được ảnh hưởng của yếu tố ngoại vi như chính sách kiểm soát dịch bệnh, tiến độ tiêm chủng, ảnh hưởng của biến thể mới, v.v Điều này làm cho ARIMA không phù hợp để dự đoán dữ liệu COVID-19 khi có nhiều yếu tố biến đổi đang diễn ra
Thông qua việc nắm bắt xu hướng và sự biến đổi của số ca mắc COVID-19 trong tương lai, chúng ta có thể định hình chiến lược và kế hoạch phù hợp để ứng phó với tình hình dịch bệnh Tuy nhiên, cần lưu ý rằng dự đoán chỉ mang tính tương đối và dựa trên giả định rằng các yếu tố ảnh hưởng không thay đổi Sự phát triển thực tế của dịch bệnh có thể bị ảnh hưởng bởi nhiều yếu tố khác nhau, do đó, cần tiếp tục theo dõi và cập nhật thông tin mới nhất để đưa ra quyết định chính xác và hiệu quả
Luận văn đã nghiên cứu về dữ liệu chuỗi thời gian, mô hình ARIMA và phân tích dữ liệu chuỗi thời gian trong lĩnh vực y tế dự phòng với tập dữ liệu Covid-19:
Tìm hiểu về dữ liệu chuỗi thời gian, đặc điểm của dữ liệu này
Tính toán với dữ liệu chuỗi thời gian
Một số mô hình toán học sử dụng chuỗi thời gian
Mô hình ARIMA và cách xác định tham số dành cho dữ liệu chuỗi thời gian
Tìm hiểu về bộ dữ liệu chuỗi thời gian Covid-19, ứng dụng dành cho Việt Nam
Phân tích kết quả nhận được và đánh giá về mô hình
Trong quá trình nghiên cứu em đã nỗ lực và nghiêm túc, liên tục trau dồi và học hỏi, tuy nhiên quyển luận văn còn nhiều hạn chế, đặc biệt là các nội dung toán học về thống kê chuyên sâu và phân tích dữ liệu chuỗi còn rất nhiều hạn chế Em rất mong nhận được sự góp ý, bổ sung của các thầy/cô trong hội đồng để báo cáo của em trở nên hoàn thiện hơn nữa
1 Box, G E., Jenkins, G M., Reinsel, G C., & Ljung, G M (2015) Time series analysis: forecasting and control John Wiley & Sons
2 Bienias, J L., Lassman, D M Scheleur, S A & Hogan H (1997) Improving Outlier Detection in Two Establishment Surveys Statistical Data Editing 2
- Methods and Techniques (UNSC and UNECE eds.), 76-83
3 Krispin, Rami Hands-On Time Series Analysis with R: Perform time series analysis and forecasting using R Packt Publishing Ltd, 2019
4 Salgotra, R., Gandomi, M., & Gandomi, A H (2020) Time series analysis and forecast of the COVID-19 pandemic in India using genetic programming Chaos,
5 Khan, S., & Alghulaiakh, H (2020) ARIMA model for accurate time series stocks forecasting International Journal of Advanced Computer Science and
6 Shumway, R H., Stoffer, D S., Shumway, R H., & Stoffer, D S (2017) ARIMA models Time Series Analysis and Its Applications: With R Examples, 75-163
7 Trung, B Q., & Hương, N T Forecasting Vietnam Stock Index Using Hybrid ARIMA-GARCH Model The University of Danang-Journal of Science and
8 Hamilton, J D (2020) Time series analysis Princeton university press
9 Woodward, W A., Gray, H L., & Elliott, A C (2017) Applied time series analysis with R CRC press
10 Alabdulrazzaq, H., Alenezi, M N., Rawajfih, Y., Alghannam, B A., Al- Hassan, A A., & Al-Anzi, F S (2021) On the accuracy of ARIMA based prediction of COVID-19 spread Results in Physics, 27, 104509
11 Kufel, T (2020) ARIMA-based forecasting of the dynamics of confirmed Covid-19 cases for selected European countries Equilibrium Quarterly Journal of
12 Anne, W R., & Jeeva, S C (2020) ARIMA modelling of predicting COVID-19 infections medRxiv, 2020-04
13 Kumar, P., Kalita, H., Patairiya, S., Sharma, Y D., Nanda, C., Rani, M.,
& Bhagavathula, A S (2020) Forecasting the dynamics of COVID-19 pandemic in top 15 countries in April 2020: ARIMA model with machine learning approach MedRxiv, 2020-03
14 Trần Ngọc Thùy, D (2017) DỰ BÁO TIÊU THỤ DẦU MỎ CỦA MỸ BẰNG MÔ HÌNH ARIMA
15 Nguyên, H T., & Lượng, N V (2017) Ứng dụng mô hình ARIMA để dự báo chỉ số giá tiêu dùng ở Việt Nam Tạp chí Khoa học và Công nghệ, 5(3)
16 Long, T D (2020) Ứng dụng mô hình Arima để dự báo chuỗi dữ liệu sai phân của chỉ số chứng khoán Việt Nam
PHỤ LỤC Để bắt đầu, chúng ta cần cài đặt và tải gói "coronavirus" Chúng ta có thể sử dụng câu lệnh sau để thực hiện điều này: install.packages("coronavirus") library(coronavirus)
Sau khi cài đặt thành công và tải gói "coronavirus", chúng ta có thể tiếp tục khám phá và hiểu thêm về bộ dữ liệu bằng cách thực hiện một số thao tác đơn giản Ví dụ, để xem các hàng đầu tiên của dữ liệu, ta có thể sử dụng lệnh sau: head(coronavirus) #Xem các hàng đầu tiên Để có cái nhìn tổng quan về số ca nhiễm Covid-19 theo quốc gia, chúng ta có thể tạo một bảng tóm tắt thống kê Trong ví dụ dưới đây, chúng ta sẽ chỉ xem xét các trường hợp xác nhận (confirmed cases) và tổng hợp số ca theo từng quốc gia: library(dplyr) summary_df % filter(type == "confirmed") %>% group_by(country) %>% summarise(total_cases = sum(cases)) %>% arrange(-total_cases) summary_df %>% head(20)