CHƯƠNG 4 THỰC NGHIỆM VÀ ĐÁNH GIÁ
4.2. Mục đích thực nghiệm
Dựa trên tập dữ liệu dịch cúm của Google Flu Trends tiến hành thực nghiệm nhằm phân tích và đưa ra kết quả dự báo. Trong phân thực nghiệm này học viên sử dụng mơ hình ARIMA để phân tích hồi quy tập dữ liệu chuỗi thời gian, qua đó đưa ra mơ hìn dự báo diễn biến dịch bệnh. Hiện nay, phân tích dự báo đang trở thành cơng tác quan trọng ở các đơn vị quản lý và hoạch định chiến lược. Số liệu được phân tích, dự đốn phục vụ cho việc định hướng các hoạt động trong tương lai.
4.3. Tập dữ liệu Google Flu Trends
Google Flu Trends là một dịch vụ web do Google thực hiện. Nó cung cấp ước tính về diễn biến của dịch cúm hơn 25 quốc gia, bằng cách thu thập các truy vấn của cơng cụ tìm kiếm Google, nó cố gắng để đưa ra dự đốn chính xác về hoạt động của dịch cúm. Dự án này được Google.org triển khai lần đầu tiên vào năm 2008 để giúp dự đoán sự bùng phát của dịch cúm.
Google Flu Trends hiện khơng cịn công bố số liệu dịch cúm hiện tại. Các dữ liệu lịch sử của 25 nước vẫn có sẵn và dữ liệu được cung cấp cho các mục đích nghiên cứu, chúng ta có thể tải về từ địa chỉ: https://www.google.org/flutrends/about/
Tập dữ dữ liệu Google Flu Trends được tổng hợp qua nhiều năm trên nhiều quốc gia, với tập dữ liệu được thu thập qua nhiều năm tại 25 nước trên thế giới, đó là tập dữ liệu lý tưởng để phân tích và đưa ra dự báo. Số liệu dịch cúm mà Google Flu Trends tổng hợp và công bố, được đánh giá sát với số liệu của hệ thống cảnh báo độc lập Sentinel GP và HealthStat cung cấp. Dữ liệu của Google Flu Trends được tổng hợp theo thời gian thực và sẽ được đối chiếu lại với số liệu của những trung tâm kiểm sốt dịch bệnh trên thế giới.
Hình 4.1. Biểu đồ so sánh dữ liệu dự báo của Google Flu Trends và Trung tâm kiểm sốt và phịng ngừa các chứng bệnh của Mỹ
Đường màu xanh là số liệu được tổng hợp thơng qua www.google.com với các từ khóa tìm kiếm liên quan đến các dịch cúm, màu vàng là dữ liệu do và Trung tâm kiểm sốt và phịng ngừa các chứng bệnh của Mỹ đưa ra.
Số liệu dự báo được thu thập theo thời gian của các thành phố rải rác trên 25 quốc gia, từ năm 2003 đến 2015. Số liệu dịch cúm được thu thập không theo định kỳ, mà được tổng hợp tại các thời điểm ngẫu nhiên trong tháng, bộ dữ liệu được tổng hợp đầy đủ 12 tháng trong năm, để có thể đánh giá được diễn biến dịch bệnh theo các thời điểm từng tháng của năm. Trong một tập dữ liệu được thu thập gồm 2 trường thông tin: Date (ngày), Tên địa danh (đất nước hoặc thành phố). Cột Date là các thời điểm ghi nhận số lượng ca mắc cúm được biểu diễn bằng các ngày trong tháng và đối với mẫu dữ liệu 1 năm của một đất nước/thành phố luôn được ghi nhận đủ dữ liệu 12 tháng, kiểu dữ liệu cột Date là kiểu ngày (date). Cột Tên địa danh là tên của đất nước hoặc thành phố được ghi nhận, tại cột này ghi nhận số lượng ca mắc cúm tương ứng với thời điểm ghi nhận tại cột Date, kiểu dữ liệu cột này là Integer. Có thể tải bộ dữ liệu tại địa chỉ https://www.google.org/flutrends/about để mở các tệp này trong ứng dụng bảng tính, mở tệp văn bản dưới dạng bảng tính CSV.
(2)
(1)
Hình 4.2. Mẫu dữ liệu bệnh cúm của 25 nước trên thế giới được tổng hợp từ 2003 đến 2015
Tại hình 4.2 ở trên ta thấy tại vùng (1) là dữ liệu của cột Date là các thời điểm ghi nhận số ca mắc cúm. Tại vùng số (2) là số lượng ca mắc cúm tương ứng với các mốc thời gian tại cột Date, số lượng ca mắc cúm được ghi nhận của 25 nước khác nhau trên thế giới. Tương tự, khi xét tập dữ liệu của một quốc gia ta cũng sẽ có được một tập dữ liệu với cấu trúc gồm 2 cột Date và Tên địa danh là các thành phố.
Google Flu Trends được đã sử dụng phương pháp sau đây để thu thập thông tin về diễn biến của dịch cúm.
Thứ nhất, chuỗi thời gian được tính cho khoảng 50 triệu truy vấn phổ biến được cập nhật hàng tuần ở Hoa Kỳ từ năm 2003 đến năm 2008. Một chuỗi thời gian của truy vấn được tính riêng cho mỗi trạng thái và được bình thường hóa thành một phần nhỏ bằng cách chia số truy vấn cho mỗi số tất cả các truy vấn trong tiểu bang đó. Bằng cách xác định địa chỉ IP của mỗi tìm kiếm, trạng thái truy vấn này đã được nhập có thể được xác định.
log( ) = 0 + 1 log(Q) + (4.1)
P là tỷ lệ phần trăm của truy cập bác sĩ và Q là phân số truy vấn liên quan đến triệu chứng giống bệnh cúm tính trong các bước trước. β0 là hệ số chặn và β1 là hệ số, trong khi ε là sai số.
Mỗi trong số 50 triệu truy vấn được kiểm tra là Q để xem liệu kết quả tính từ một truy vấn có thể khớp với dữ liệu liên quan đến các triệu chứng của bệnh cúm trong lịch sử, thực tế thu được từ Trung tâm Kiểm sốt và Phịng ngừa dịch bệnh của Hoa Kỳ (viết tắt là CDC). Quá trình này tạo ra một danh sách các truy vấn hàng đầu cung cấp cho các dự đốn chính xác nhất của dữ liệu liên quan quan đến triệu chứng cúm của CDC khi sử dụng mơ hình tuyến tính. Sau đó, 45 truy vấn hàng đầu được chọn vì khi kết hợp với nhau, những truy vấn này phù hợp với dữ liệu lịch sử một cách chính xác nhất. Sử dụng tổng số 45 truy vấn liên quan đến triệu chứng giống bệnh cúm hàng đầu, mơ hình tuyến tính được lắp vào dữ liệu hàng tuần giữa năm 2003 và 2007 để có thể đạt được hệ số. Cuối cùng, mơ hình đào tạo được sử dụng để dự đoán dịch cúm ở tất cả các vùng ở Mỹ.
4.4. Mơi trường, cấu hình hệ thống và cơng cụ4.4.1. Cấu hình phần cứng 4.4.1. Cấu hình phần cứng
Thành phần Chỉ số
CPU Intel Pentium T4400 / 2.2 GHz
RAM 2 x 2 GB OS Windows 7 Bộ nhớ ngoài 250 GB Bảng 1. Cấu hình phần cứng 4.4.2. Các cơng cụ phần mềm sử dụng TT Tên phần mềm Nguồn 1 R i386 3.4.4 https://www.r-project.org Bảng 2. Các công cụ, phần mềm sử dụng 4.5. Kết quả thực nghiệm
Đầu tiên, để tiến hành thực nghiệm chúng ta mở những gói thư viện cần thiết trong R và đọc tập dữ liệu cần phân tích, ta dùng 4 thư viện: ggplot2, forecast, tseries, lubridate.
Ví dụ: Sử dụng thư viện lubridate
Nếu thư viện chưa được cài đặt ta tiền hành cài trước khi sử dụng:
Hình 4.3. Cài đặt gói thư viện 4.5.1. Lựa chọn và xử lý dữ liệu viện 4.5.1. Lựa chọn và xử lý dữ liệu
Bộ dữ liệu của GFT công bố gồm rất nhiều nước trên thế giới, tuy nhiên để giảm bớt dữ liệu trùng lặp mà vẫn thể hiện được tính liên quan giữa thời gian và số liệu cúm biến động. Trong tập dữ liệu được thu thập của Argentina và các thành phố thuộc Argentina, luận văn đã lọc những dữ liệu dịch cúm của Argentina được thống kê từ năm 2003 đến 2015, dữ liệu cúm được tổng hợp và đại diện chung cho các thành phố khác của Argentina.
Tập dữ liệu sẽ bao gồm các thông tin ngày - tháng - năm, số lượng; đối với tập dữ liệu sẽ có 2 cột được làm thực nghiệm: Date (ngày tháng) và Argentina (số liệu cúm được tổng hợp). Kết quả thu được là số liệu công bố dịch cúm của Argentina từ 2003 đến 2015 có 655 bản ghi. Nạp dữ liệu:
Hình 4.4. Nạp dữ liệu
Ta có tập dữ liệu d sau khi được nạp như sau:
Hình 4.5. Tập dữ liệu cúm của ArgentinaBước 1: Lựa chọn dữ liệu Bước 1: Lựa chọn dữ liệu
Trong tập dữ liệu được nạp d là dữ liệu từ năm 2003 đến năm 2015, dữ liệu được thu thập và có biến động tại các thời điểm khác nhau trong mỗi năm và từ năm này qua năm khác. Tuy nhiên, với sự biến động dữ liệu này, bằng trực quan cũng có thể nhận
thấy một số mẫu dữ liệu, ví dụ: số ca mắc cúm thường tăng cao vào những tháng 5, 6, 7 hàng năm. Để dự đoán được xu hướng diễn biến dịch cúm trong một năm, ta tiến hành trích xuất dữ liệu của một năm bất kỳ trong tập d, cụ thể dữ liệu của năm 2004.
Hình 4.6. Tập dữ liệu cúm của Argentina năm 2004
Ta trích lấy mẫu dữ liệu của Argentina được thu thập vào năm 2004 để tự đánh giá diễn biến của mơ hình dữ liệu trong một năm của dịch cúm. Xây dựng sơ đồ diễn biến ta thấy số liệu có sự biến đổi theo các tháng trong năm, tập trung cao điểm vào các tháng 5, 6 và có sự suy giảm vào các tháng khác.
Hình 4.7. Diễn biến cúm năm 2004 của Argentina theo tháng
Với số liệu được trình diễn bằng sơ đồ ta có thể thấy rằng diễn biến dịch bệnh được thay đổi theo thời gian và có chu kỳ diễn biến nhất định. Tại Hình 4.7, sơ đồ biểu diễn dịch bệnh cúm mùa của Argentina năm 2004, số ca mắc được phân bổ như sau: vào những tháng 1, 2, 3, 4 dịch cúm ở mức thấp; đến tháng 5, 6, 7, 8, 9 số ca mắc tăng vọt và giảm dần vào cuối năm từ tháng 10, 11, 12. Chu kỳ biến động dịch bệnh cũng được lặp đi lặp lại từ năm này qua năm khác. Từ phép phân tích trên có thể nhận thấy chu kỳ tăng, giảm của bệnh dịch qua đó sẽ đưa ra dự báo cho thời diểm trong tương lai.
Đánh giá tập dữ liệu năm 2004 của Argentina nói riêng và các tập dữ liệu khác của Google Flu Trends nói chung, nhận thấy các tập dữ liệu bao gồm những thông tin cơ bản đáp, ứng yêu cầu phân tích chuỗi dữ liệu thời gian, các thuộc tính đều phù hợp với mơ hình, nên khơng cần phải qua bước xử lý dữ liệu. Cụ thể, trong tập dữ liệu năm 2004 của Argentina có duy nhất 2 cột: Date (ngày ghi nhận số ca mắc cúm) và
Argentina (số liệu cúm được ghi nhận). Tập dữ liệu đầu vào đã đáp ứng nên thực
nghiệm của luận văn bỏ qua Bước 2: Tiền xử lý dữ liệu và chuyển qua Bước 3: Đổi
dạng.
Bước 3: Đổi dạng
Ta loại bỏ các ngoại lệ của chuỗi thời gian với tsclean(), xác định và thay thế các ngoại lệ bằng cách làm mịn và phân tách chuỗi thời gian. Phương thức này có khả năng nhập các giá trị bị mất trong chuỗi nếu có, chúng ta sử dụng lệnh ts() để tạo một đối tượng chuỗi thời gian qua hàm tsclean().
Sử dụng hàm tsclean(), tập dữ liệu được làm sạch, trong tập dữ liệu mới được tạo ra có thêm cột clean_scm, là số liệu đã được làm sạch.
Hình 4.8. Dữ liệu cúm của năm 2004 Argentina được làm sạch
Vẽ biểu đồ với tập dữ liệu Nam2004 sau khi được xử lý làm sạch dữ liệu, ta nhận được biểu đồ bằng với dữ liệu sạch, như sau:
Hình 4.9. Diễn biến cúm Argentina năm 2014 được làm sạch
Ngay khi loại bỏ các ngoại lệ, biểu đồ dữ liệu vẫn khá giống với biểu đồ trước khi được làm sạch (gồm những dữ liệu ngoại lệ). Nhìn trực quan, ta có thể vẽ một đường thẳng qua chuỗi và đỉnh trong khi làm mịn các dao động. Đường thẳng này có thể được mơ tả bằng khái niệm trong phân tích chuỗi thời gian được gọi là trung bình trượt MA (moving average). Cơng thức chung, trung bình trượt MA của số ca mắc cúm m có thể được tính bằng cách lấy trung bình của chuỗi Y, k khoảng thời gian xung quanh mỗi điểm:
= 1∑
(4.5) = − +
Trong đó: m = 2k + 1, số lượng trên được gọi là trung bình trượt đối xứng.
Trung bình trượt MA(q) là một phần của mơ hình ARIMA, đề cập đến độ trễ lỗi và kết hợp, trong khi thống kê của trung bình trượt đề cập đến kỹ thuật làm mịn dữ liệu. Cửa sổ của trung bình trượt càng rộng, chuỗi thời gian ban đầu càng mượt mà hơn. Trong bài phần thực nghiệm này, chúng ta lấy mức trung bình theo những khoảng thời gian, làm mịn để chuỗi trở nên ổn định hơn và có thể dự đốn được.
Ngồi sơ đồ biến động dịch cúm 2004, lập mơ hình dữ liệu theo hàng ngày có thể yêu cầu xác định nhiều mức độ thời vụ (seasonality). Để đơn giản, ta lập mơ hình trung bình trượt theo 7 ngày (được thể hiện bởi dịng màu xanh).
Hình 4.10. So sánh số liệu bệnh cúm của Argentina với dữ liệu được làm mịn4.5.2. Phân tách dữ liệu 4.5.2. Phân tách dữ liệu
Bước 4: Khai phá dữ liệu
Các thành phần được xây dựng của q trình phân tích chuỗi thời gian là tính thời vụ (seasonality), xu hướng (trend) và chu kỳ (cycle). Các thành phần trực quan này nắm bắt các mẫu dữ liệu q khứ của chuỗi. Đầu tiên, tính tốn thành phần mùa của dữ liệu bằng cách sử dụng stl(), để phân tích và dự báo chuỗi dữ liệu thời gian. Nó tính tốn thành phần mùa của chuỗi bằng cách làm mịn và điều chỉnh chuỗi ban đầu bằng cách loại bỏ tính thời vụ theo hai dòng đơn giản.
Trong trường hợp cấu trúc mơ hình bổ sung, cùng một nhiệm vụ phân tách chuỗi và loại bỏ tính thời vụ có thể được thực hiện bằng cách bỏ đi thành phần theo mùa từ chuỗi ban đầu với hàm seasadj(). Xác định tính chu kỳ của dữ liệu với ts(), tức là số lần quan sát trong một khoảng thời gian là 7 ngày.
Hình 4.11. Sơ đồ dữ liệu được phân tách theo thành phần tính thời vụ, xu hướng và chu kỳ
Sử dụng ADF để kiểm tra tính dừng của chuỗi thời gian trước khi sử dụng ARIMA để dự đoán, kết quả kiểm tra qua ADF như sau:
Augmented Dickey-Fuller Test data: count_sm
Dickey-Fuller = -1.2685, Lag order = 3, p-value = 0.8648 alternative hypothesis: stationary
Với kết quả trả về giá trị − = 0.8648 và lớn hơn 0.05 cho thấy chuỗi khơng có tính dừng. Vì vậy, tiếp tục chọn các tham số thứ tự cho mơ hình ARIMA. Có thể thể hiện trực quan tính khơng dừng của chuỗi qua mơ hình ACF hiển thị mối tương quan giữa một chuỗi và độ trễ của nó. Các mơ hình ACF có thể giúp xác định bậc của mơ hình MA(q). PACF hiển thị mối tương quan giữa một biến và độ trễ của nó khơng được giải thích bởi các trễ trước đó.
Khi biểu diễn mơ hình, trong R vẽ đường ranh giới 95% là đường chấm màu xanh. Có mối tự tương quan với các độ trễ trong chuỗi dịch bệnh cúm của chúng ta, có thể quan sát mơ hình ACF bên dưới. nhìn vào mơ hình PACF ta thấy sự tăng đột biến ở độ trễ thứ 1 và dần giảm về quanh giá trị 0.
Hình 4.12. Mơ hình ACF
Hình 4.13. Mơ hình PACF
Ta thấy, mơ hình ACF tại Hình 4.12 và mơ hình PACF tại Hình 4.13 các hệ số tương quan giảm rất chậm về 0, như trong sơ đồ ACF có đến 11 độ trễ khác 0 và nằm ngồi giới hạn tin cậy 5%. Ta có thể kết luận chuỗi khơng có tính dừng.
Tiếp tục với sai phân = 1 và đánh giá lại. Vẽ sơ đồ chuỗi khác, chúng ta thấy một mơ hình dao động quanh 0 khơng có xu hướng rõ ràng. Kiểm tra lại với ACF với = 1, cho kết
quả như sau:
Augmented Dickey-Fuller Test data: count_d1
Dickey-Fuller = -3.5602, Lag order = 3, p-value = 0.0471 alternative hypothesis: stationary
Với = 1 qua phép kiểm tra ADF ta thu được giá trị − = 0.0471 nhỏ hơn 0.05, vậy có thể kết luận chuỗi đã có tính dừng.
Hình 4.14. Mơ hình kiểm tra với=
Tiếp theo, các mức tăng đột biến ở độ trễ cụ thể của chuỗi có thể giúp lựa chọn p hoặc q cho mơ hình của chúng ta. Có sự tương quan tự đáng kể ở độ trễ 1. Tại các
Hình 4.15 mơ hình ACF với = 1 và Hình 4.16 mơ hình PACF với = 1, ta thấy ACF và PACF có sự tăng đột biến đáng kể ở độ trễ 1 và giảm dần về 0, đánh giá thấy chuỗi đáp ứng tính dừng, nên chúng ta có thể thử nghiệm các mơ hình với các thành phần AR hoặc MA theo độ trễ 1.