hoÀng vĂn tiẾn - lib.uet.vnu.edu.vn
TRANSCRIPT
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
HOÀNG VĂN TIẾN
KHAI PHÁ DỮ LIỆU VÀ ỨNG DỤNG TRONG
Y TẾ DỰ PHÒNG
LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN
GIÁO VIÊN HƯỚNG DẪN
Đặng Thanh Hải
Hà Nội - 2018
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
HOÀNG VĂN TIẾN
KHAI PHÁ DỮ LIỆU VÀ ỨNG DỤNG TRONG
Y TẾ DỰ PHÒNG
Ngành: Công nghệ thông tin
Chuyên ngành: Quản lý Hệ thống thông tin
Mã số: 8480205.01
LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. ĐẶNG THANH HẢI
Hà Nội - 2018
xi
LỜI CAM ĐOAN
Luận văn “Khai phá dữ liệu và ứng dụng trong y tế dự phòng” đánh dấu cho
những thành quả, kiến thức của tôi đã tiếp thu được trong quá trình rèn luyện, học tập
và nghiên cứu tại Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội. Tôi xin cam
đoan các nội dung được trình bày trong luận văn này được xây dựng, hoàn thành bằng
chính quá trình nghiên cứu của bản thân và dưới sự hướng dẫn của thầy giáo TS. Đặng
Thanh Hải.
Trong quá trình làm luận văn này, tôi đã tham khảo một số tài liệu từ nhiều
nguồn khác nhau, các nội dung tham khảo đều được trích dẫn rõ ràng. Nếu có điều gì
không trung thực, tôi xin chịu mọi hình thức kỷ luật theo đúng quy định.
Hà Nội, ngày 02 tháng 10 năm 2018
Học viên
Hoàng Văn Tiến
xii
LỜI CÁM ƠN
Lời đầu tiên, tôi xin gửi lời cám ơn đến Thầy Cô giáo tại trường Đại học Công
nghệ - Đại học Quốc gia Hà Nội nói chung và Thầy Cô giáo trong bộ môn Hệ thống
thông tin và Khoa Công nghệ thông tin - Trường Đại học Công nghệ - Đại học Quốc
gia Hà Nội đã nhiệt tình giảng dạy, truyền đạt những kiến thức, kinh nghiệm quý báu
trong suốt thời gian tôi học tập tại trường.
Đặc biệt, tôi xin gửi lời cám ơn chân thành nhất đến TS. Đặng Thanh Hải,
người đã hướng dẫn tôi trong suốt quá trình thực hiện luận văn này. Nhờ sự hướng dẫn
và chỉ bảo tận tình của Thầy, tôi đã có được những kiến thức và kinh nghiệm quý báu
về cách xác định vấn đề nghiên cứu, phương pháp nghiên cứu, trình bày kết quả và
hoàn thành luận văn của mình.
Cuối cùng, tôi xin gửi lời cám ơn tới toàn thể gia đình, bạn bè và đồng nghiệp
đã luôn quan tâm, ủng hộ và động viên, giúp tôi có nghị lực phấn đấu để hoàn thành
tốt luận văn.
Hà Nội, ngày 02 tháng 10 năm 2018
Học viên
Hoàng Văn Tiến
xiii
TÓM TẮT NỘI DUNG
Phân tích và dự báo từ lâu đã được ứng dụng trong mọi lĩnh vực nhằm đưa ra
những định hướng, chiến lược phát triển trong tương lai. Ngành Y tế không đứng
ngoài xu thế đó, đặc biệt là dự báo dịch bệnh truyền nhiễm từ lâu đã được các nhà
khoa học quan tâm nghiên cứu và ngày càng phát triển. Phân tích và dự báo dịch bệnh
truyền nhiễm được quan tâm vì những lợi ích rất lớn nó mang lại trong công tác phòng
ngừa dịch bệnh. Phân tích và dự báo diễn biến của dịch bệnh giúp chúng ta chủ động
trong công tác phòng ngừa, nhằm giảm thiểu những tổn hại do dịch bệnh gây ra. Việc
xác định được chu kỳ diễn biến của dịch bệnh truyền nhiễm dựa trên các yếu tố thời
gian, khí hậu và vùng địa lý rất được quan tâm. Nắm bắt chu kỳ diễn biến của dịch
bệnh, đưa ra dự báo và lên phương án ứng phó, khoanh vùng, dập dịch nhanh, không
để lây lan là hết sức quan trọng góp phần hạn chế tối đa hậu quả của dịch bệnh gây ra
cho con người.
Đề tài nghiên cứu trước hết tìm hiểu kiến thức nền tảng về khai phá dữ liệu, sau
đó tìm hiểu sâu các kỹ thuật khai phá dữ liệu tiên tiến đang nhận được nhiều sự quan
tâm của cộng đồng nghiên cứu trên thế giới, qua đó đề xuất vận dụng phương pháp và
công cụ khai phá dữ liệu phù hợp với tập dữ liệu dịch cúm do Google Flu Trends công
bố. Google Flu Trends là dịch vụ của Tập đoàn Google, cung cấp số liệu ước tính về
dịch cúm tại hơn 25 quốc gia, thông qua việc tổng hợp các truy vấn tìm kiếm trên
www.google.com, thông qua đó cố gắng đưa ra dự báo chính xác về dịch cúm. Năm
2008, Google Flu Trends được Google.org lần đầu tiên đưa ra để giúp dự báo sự bùng
phát dịch cúm của 25 nước trên thế giới.
Đề xuất lựa chọn phương pháp khai phá dữ liệu phù hợp trên tập dữ liệu dịch
bệnh cúm do Google Flu Trends công bố, tìm ra chu kỳ diễn biến của dịch, đưa ra các
dự báo và hỗ trợ định hướng hoạt động y tế dự phòng theo từng thời điểm trong năm,
nhằm có những chính sách và biện pháp phù hợp để hạn chế thiệt hại của dịch bệnh
gây ra.
xiv
MỞ ĐẦU
Ngày nay, con người đang phải đối mặt với tình hình dịch bệnh lây nhiễm
hoành hành, bùng phát một cách nhanh chóng. Một số bệnh dịch trước đây chỉ lưu
hành rải rác ở Tây Phi như Ebola, MERS-CoV từ Trung Đông, vv… thì hiện nay đã
lan rộng nhiều quốc gia trên thế giới, kể cả các quốc gia phát triển có hệ thống y tế dự
phòng tiên tiến và có bề dày kinh nghiệm ứng phó với dịch bệnh truyền nhiễm. Sự
phát triển của dịch bệnh không những gia tăng sự lây lan về phạm vi mà còn phát triển
đa dạng về chủng loại, dịch cúm gia cầm A(H5N1), A(H7N9) có khả năng lây sang
người chưa khống chế được tại Trung Quốc thì đã xuất hiện những chủng cúm biến thể
mới A(H5N6), A(H9N2), A(H5N8).
Có thể thấy, dịch bệnh ngày càng diễn biến phức tạp về phạm vi và chủng loại.
Thực tế đó, đòi hỏi công tác y tế dự phòng cần phải được đẩy mạnh, nâng cao nhằm
khoanh vùng và hạn chế sự lây lan của dịch bệnh. Công tác giám sát dịch bệnh lây
nhiễm, phân tích và dự báo phục vụ ra quyết định ngày càng trở nên quan trọng và cần
được đẩy mạnh.
Chính từ sự cấp thiết đó, học viên đã chọn đề tài “Khai phá dữ liệu và ứng
dụng trong y tế dự phòng” làm luận văn thạc sĩ của mình, nhằm góp phần công sức
nhỏ bé cho lĩnh vực y tế dự phòng có thêm một số giải pháp phân tích, dự báo hiệu quả
dịch bệnh truyền nhiễm hiện nay, góp phần nâng cao ứng dụng công nghệ thông tin
trong lĩnh vực y tế đặc biệt là lĩnh vực y tế dự phòng. Nội dung luận văn tập trung vào
những phần sau:
Chương 1: Giới thiệu về lĩnh vực y tế dự phòng
Trong chương này giới thiệu tổng quan về lĩnh vực y tế dự phòng, lịch sử hình
thành và phát triển của y tế dự phòng. Nội dung Chương 1 cũng sẽ giới thiệu thực
trạng bùng phát và mô hình dịch bệnh truyền nhiễm hiện nay.
Chương 2: Các phương pháp và công cụ khai phá dữ liệu
Nội dung được trình bày tại chương này xoay quanh khái niệm, tính chất cơ bản
của các phương pháp khai phá dữ liệu phổ biến hiện nay. Đồng thời, qua đó đề xuất
một phương pháp và công cụ phù hợp khai phá tập dữ liệu dịch bệnh cúm được công
bố bởi Google Flu Trends.
Chương 3: Phương pháp phân tích và dự báo với chuỗi dữ liệu thời gian
Đi sâu vào kỹ thuật phân tích chuỗi dữ liệu chuỗi thời gian (time series data) và
áp dụng kỹ thuật này với tập dữ liệu dịch bệnh cúm do Google Flu Trends công bố trên
mô hình ARIMA.
Chương 4: Thực nghiệm và đánh giá
Phân tích và đưa ra kết quả dự báo dựa trên tập dữ liệu Google Flu Trends công
xv
bố dịch bệnh cúm, sử dụng các phương pháp phân tích chuỗi dữ liệu thời gian và công
cụ khai phá dữ liệu.
Phần kết luận nêu ra những kết quả đã đạt được, những đóng góp của luận văn
và định hướng phát triển nghiên cứu trong tương lai để nâng cao tính ứng dụng thực tế
của đề tài nghiên cứu cho lĩnh vực y tế dự phòng.
xvi
MỤC LỤC
LỜI CAM ĐOAN ........................................................................................................... xi
LỜI CÁM ƠN ............................................................................................................... xii
TÓM TẮT NỘI DUNG ............................................................................................... xiii
MỞ ĐẦU ...................................................................................................................... xiv
MỤC LỤC .................................................................................................................... xvi
DANH MỤC CÁC HÌNH VẼ ...................................................................................... xix
DANH MỤC CÁC BẢNG BIỂU ................................................................................. xxi
DANH MỤC VIẾT TẮT ............................................................................................ xxii
DANH SÁCH CÁC THUẬT NGỮ .......................................................................... xxiii
CHƯƠNG 1: GIỚI THIỆU VỀ LĨNH VỰC Y TẾ DỰ PHÒNG ................................... 1
1.1. Giới thiệu về y tế dự phòng ...................................................................................... 1
1.1.1. Lịch sử phát triển của y tế dự phòng ..................................................................... 1
1.1.2. Những vai trò của lĩnh vực y tế dự phòng ............................................................. 2
1.2. Dịch bệnh .................................................................................................................. 3
1.3. Dự báo dịch bệnh trong lĩnh vực y tế dự phòng ....................................................... 4
1.4. Thực trạng nghiên cứu dự báo trong y tế dự phòng ................................................. 5
1.5. Mục tiêu nghiên cứu ................................................................................................. 6
Tóm tắt Chương 1 ............................................................................................................ 6
CHƯƠNG 2: CÁC PHƯƠNG PHÁP VÀ CÔNG CỤ KHAI PHÁ DỮ LIỆU .............. 8
2.1. Khai phá dữ liệu ....................................................................................................... 8
2.1.1. Khái niệm .............................................................................................................. 8
2.1.2. Ưu điểm của khai phá dữ liệu với các phương pháp khác .................................... 9
2.1.3. Những khó khăn trong khai phá dữ liệu .............................................................. 10
2.2. Các kỹ thuật khai phá dữ liệu ................................................................................. 10
2.2.1. Hồi quy (Regression) ........................................................................................... 11
2.2.2. Kết hợp (Association) .......................................................................................... 12
2.2.3. Phân lớp (Classification) ..................................................................................... 13
2.2.4. Phân cụm (Clustering) ......................................................................................... 13
2.3. Dữ liệu chuỗi thời gian (time series data) .............................................................. 13
xvii
2.4. Các công cụ, phần mềm hỗ trợ khai phá dữ liệu .................................................... 14
2.4.1. Phân tích số liệu bằng phần mềm Weka .............................................................. 14
2.4.2. Giới thiệu về SPSS (Statistical Product and Services Solutions) ........................ 16
2.4.3. Phân tích số liệu bằng R ...................................................................................... 16
Tóm tắt chương 2 ........................................................................................................... 17
CHƯƠNG 3. PHƯƠNG PHÁP PHÂN TÍCH VÀ DỰ BÁO ....................................... 19
VỚI CHUỖI DỮ LIỆU THỜI GIAN ............................................................................ 19
3.1. Dữ liệu chuỗi thời gian ........................................................................................... 19
3.2. Tính dừng của dữ liệu chuỗi thời gian ................................................................... 21
3.2.1. Kiểm tra tính dừng chuỗi thời gian ..................................................................... 21
3.2.2. Biến đổi chuỗi không dừng thành chuỗi dừng .................................................... 22
3.3. Mô hình ARIMA .................................................................................................... 22
3.3.1. Mô hình tự hồi quy AR (Autoregressive process) .............................................. 23
3.3.2. Mô hình trung bình trượt MA (Moving Average) ............................................... 23
3.3.3. Mô hình trung bình trượt và tự hồi quy ARMA (Autoregressive Moving
Average) ........................................................................................................................ 23
3.3.4. Mô hình trung bình trượt tự hồi quy ARIMA (Autoregressive Intergrated
Moving Average) ........................................................................................................... 24
3.3.5. Dự báo dữ liệu chuỗi thời gian ............................................................................ 24
Tóm tắt chương 3 ........................................................................................................... 26
CHƯƠNG 4. THỰC NGHIỆM VÀ ĐÁNH GIÁ ......................................................... 27
4.1. Mô hình thực nghiệm ............................................................................................. 27
4.2. Mục đích thực nghiệm ............................................................................................ 28
4.3. Tập dữ liệu Google Flu Trends .............................................................................. 28
4.4. Môi trường, cấu hình hệ thống và công cụ ............................................................. 30
4.4.1. Cấu hình phần cứng ............................................................................................. 30
4.4.2. Các công cụ phần mềm sử dụng .......................................................................... 30
4.5. Kết quả thực nghiệm ............................................................................................... 30
4.5.1. Lựa chọn và xử lý dữ liệu .................................................................................... 31
4.5.2. Phân tách dữ liệu ................................................................................................. 36
4.6. Đánh giá kết quả ..................................................................................................... 43
xviii
Tóm tắt chương 4 ........................................................................................................... 43
KẾT LUẬN ................................................................................................................... 45
1. Các kết quả đạt được ................................................................................................. 45
2. Hướng nghiên cứu tiếp theo ...................................................................................... 45
TÀI LIỆU THAM KHẢO ............................................................................................. 46
Tiếng Việt ...................................................................................................................... 46
Tiếng Anh ...................................................................................................................... 46
PHỤ LỤC ...................................................................................................................... 47
xix
DANH MỤC CÁC HÌNH VẼ
Hình 2.1. Các bước khai phá dữ liệu ............................................................................ 8
Hình 2.2. Tuyến tính hồi quy với một dự đoán duy nhất ............................................. 11
Hình 2.3. Mô hình hồi quy phi tuyến tính .................................................................... 12
Hình 2.4. Giao diện phần mềm weka ........................................................................... 15
Hình 2.5. Giao diện SPSS ............................................................................................. 16
Hình 2.6. Giao diện phần mềm R ................................................................................. 17
Hình 3.1. Số liệu diễn biến cúm tại phía Nam Châu phi từ năm 2006 đến 2015 ......... 19
Hình 3.2. Biểu diễn xu hướng giảm của dữ liệu ........................................................... 19
Hình 3.3. Biểu diễn thay đổi chuỗi thời gian theo từng khoảng thời gian ................... 20
Hình 3.4. Biểu diễn chu kỳ chuỗi thời gian .................................................................. 20
Hình 3.5. Sơ đồ chuỗi thời gian với định lượng Y(t) theo diễn biến thời gian t .......... 20
Hình 3.6. Các bước chính trong phương pháp Box‐Jenkins ........................................ 26
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
soát và phòng ngừa các chứng bệnh của Mỹ ................................................................ 28
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 .............................................................................................................................. 29
Hình 4.3. Cài đặt gói thư viện ...................................................................................... 31
Hình 4.4. Nạp dữ liệu ................................................................................................... 32
Hình 4.5. Tập dữ liệu cúm của Argentina .................................................................... 32
Hình 4.6. Tập dữ liệu cúm của Argentina năm 2004 ................................................... 33
Hình 4.7. Diễn biến cúm năm 2004 của Argentina theo tháng .................................... 33
Hình 4.8. Dữ liệu cúm của năm 2004 Argentina được làm sạch ................................. 34
Hình 4.9. Diễn biến cúm Argentina năm 2014 được làm sạch .................................... 35
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ịn .......... 36
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ỳ ........................................................................................................................... 36
Hình 4.12. Mô hình ACF .............................................................................................. 37
Hình 4.13. Mô hình PACF ........................................................................................... 38
Hình 4.14. Mô hình kiểm tra với d = 1 ....................................................................... 38
Hình 4.15. Mô hình ACF với d = 1 ............................................................................. 39
Hình 4.16. Mô hình PACF với d = 1 ........................................................................... 39
Hình 4.17. Mô hình ARIMA (1, 1, 1) ............................................................................ 40
xx
Hình 4.18. Mô hình ARIMA (1, 1, 7) ............................................................................ 41
Hình 4.19. Mô hình dự báo với hệ số (1, 1, 1) ............................................................. 41
Hình 4.20. Mô hình dự báo .......................................................................................... 42
Hình 4.21. Mô hình dự báo ARIMA (0, 2, 0)(0, 0, 1)(7) ............................................. 42
Hình 4.22. Diễn biến dịch bệnh thực tế tại Argentina từ năm 2003 đến 2015 ............. 43
xxi
DANH MỤC CÁC BẢNG BIỂU
Bảng 1. Cấu hình phần cứng ........................................................................................ 30
Bảng 2. Các công cụ, phần mềm sử dụng .................................................................... 30
xxii
DANH MỤC VIẾT TẮT
TT Viết tắt Tiếng Anh Tiếng Việt
1. ARIMA Autoregressive integrated moving
average
Tư hôi quy tich hơp trung
binh trươt
2. ACF Autocorrelation function Chức năng tự tương quan
3. PACF Partial autocorrelation plots Sự tự tương quan thành phần
4. BI Business intelligence Thông minh nghiệp vụ
5. KDD Knowledge discovery in database Khai phá tri thức trong cơ sở
dữ liệu
6. SPSS Statistical product and services
solutions
Giải pháp sản phẩm và dịch
vụ thống kê
7. AR Autoregressive Tự hồi quy
8. MA Moving average Trung bình trượt
9. ARMA Autoregressive moving average Trung bình trượt tự hồi quy
10. GDP Gross domestic product Tổng sản phẩm quốc nội
11. CDC Centers for disease control and
prevention
Trung tâm kiểm soát và phòng
ngừa dịch bệnh
xxiii
DANH SÁCH CÁC THUẬT NGỮ
TT Thuật ngữ tiếng Anh Nghĩa tiếng Việt
1. Ebola Bệnh do virus Ebola
2. MERS-CoV Hội chứng hô hấp Trung Đông
3. H5N1, H7N9, H5N6,
H9N2, H5N8 Virus cúm gia cầm H5N1, H7N9, H5N6, H9N2, H5N8
4. Internet Mạng Internet
5. Petabybe Đơn vị lưu trữ trên máy tính
6. HD Độ phân giải cao hay độ nét cao
7. CPU Bộ vi xử lý trung tâm
8. RAM Bộ nhớ truy cập ngẫu nhiên
9. OS Hệ điều hành
1
CHƯƠNG 1: GIỚI THIỆU VỀ LĨNH VỰC Y TẾ DỰ PHÒNG
1.1. Giới thiệu về y tế dự phòng
Y tế dự phòng là lĩnh vực y tế thực hiện các biện pháp giám sát, dự báo, phòng
ngừa và kiểm soát dịch bệnh [9]. Lĩnh vực y tế dự phòng có chức năng triển khai các
hoạt động nghiên cứu, dự báo qua đó làm cơ sở để định hướng đưa ra những chính
sách nhằm giám sát, bảo vệ và nâng cao sức khỏe cộng đồng trước những nguy cơ về
dịch bệnh ngày càng tăng hiện nay [9].
Lĩnh vực y tế dự phòng gồm 5 mảng hoạt động chuyên môn cụ thể: dịch tễ, quản lý
y tế, dự phòng, quản lý môi trường y tế, sức khỏe nghề nghiệp và nâng cao sức khỏe
[1]. Các hoạt động chuyên môn y tế dự phòng, nỗ lực hướng tới việc ngăn ngừa bệnh
tật trong cộng đồng.
1.1.1. Lịch sử phát triển của y tế dự phòng
Hippocrates, một bác sĩ người Hy Lạp ở Thế kỷ thứ 5 trước Công nguyên, đã phân
loại các nguyên nhân gây bệnh thành những khía cạnh có liên quan đến mùa, khí hậu,
và điều kiện bên ngoài và những nguyên nhân như thức ăn, chế độ luyện tập và thói
quen không bình thường của mỗi cá nhân [5]. Tại thời kỳ Trung Cổ, vai trò của y học
dự phòng đã bị bỏ qua, bất chấp các tai họa của bệnh hủi và bệnh dịch hạch. Dưới thời
Phục hưng, những nghiên cứu mới đã làm cách mạng hoá toàn bộ ngành y học thời
bấy giờ, các nhà nghiên cứu đã nhìn thấy được mối quan hệ giữa các mùa, điều kiện
môi trường và tỷ lệ mắc bệnh.
Đồng thời với sự phát triển của kiến thức y học, đã hình thành phong trào nghiên
cứu các biện pháp phòng ngừa nguy cơ dịch bệnh. Ví dụ, năm 1388 đã tiến hành hoạt
động vệ sinh đầu tiên ở nước Anh, nhằm vào việc loại bỏ những nguy cơ dịch bệnh;
vào năm 1443 là dịch bệnh dịch hạch đầu tiên đã được kiểm soát và thực hiện các hoạt
động vệ sinh phòng ngừa; và năm 1518 đã có những nỗ lực mạnh mẽ đầu tiên trong
việc báo cáo dịch bệnh và thực hiện cách ly người bệnh bị bệnh truyền nhiễm [9].
Nghiên cứu thống kê tử vong được bắt đầu ở Anh vào Thế kỷ 17, cơ sở hoạt động
trong lĩnh vực dịch tễ học đã được thành lập vào giữa Thế kỷ 17 [9]. Năm 1700, một
tác phẩm về rối loạn nghề nghiệp đã được xuất bản ở Ý [9]. Một học viên người Anh
trong nửa đầu thế kỷ XVIII đã viết về chất độc, bệnh dịch hạch, đậu mùa, sởi và kèm
theo đó là phương pháp phòng bệnh [9]. Chủng ngừa bệnh lây nhiễm đã được phát
minh vào năm 1798 [9]. Điểm đáng chú ý vào những năm đầu của Thế kỷ 19 là đã
phát hiện được nguyên nhân lây truyền các bệnh như sốt, thương hàn, bệnh tả và uốn
ván [9]. Trong cùng thời kỳ, các nhà nghiên cứu dành nhiều sự quan tâm đến các vấn
đề vệ sinh dịch tễ và dinh dưỡng.
Kỷ nguyên hiện đại trong y học dự phòng được mở ra vào giữa Thế kỷ 19 với sự
khám phá của Louis Pasteur về vai trò của các vi khuẩn sống như là nguyên nhân gây
ra bệnh nhiễm trùng [9]. Cũng cuối Thế kỷ này, vai trò truyền bệnh do côn trùng đã
2
được xác định [9]. Xét nghiệm huyết thanh học đã được phát hiện bởi Widal, bằng
việc tìm ra phản ứng ngưng kết đối với huyết thanh người mắc bệnh thương hàn năm
1896 và thử nghiệm Wassermann cho bệnh giang mai năm 1906 [9]. Với việc khám
phá ra các nguyên tắc miễn dịch của cơ thể con người đã dẫn đến sự phát triển của việc
tiêm chủng chủ động để phòng ngừa các bệnh cụ thể [9]. Bên cạnh đó, những tiến bộ
trong điều trị đã mở ra những cách khác để dự phòng bệnh bạch hầu bằng thuốc kháng
sinh và bệnh giang mai bằng arsphenamine [9]. Năm 1932, các thuốc sulfonamide và
sau đó là kháng sinh bao gồm penicillin, streptomycin, chlortetracycline và
chloramphenicol tạo ra cơ hội mới để phòng ngừa và chữa trị các bệnh do các vi khuẩn
khác nhau gây ra [9].
Sau năm 1900, có thêm nhiều tiến bộ khác trong lĩnh vực y học dự phòng, việc sử
dụng tia X và các chất phóng xạ trong chẩn đoán và điều trị bệnh (ví dụ như bệnh lao
và ung thư) cũng như trong nghiên cứu sinh lý cơ bản đã mở ra những khả năng mới
[9]. Sự hiểu biết sâu hơn về các chức năng nội tiết, với việc sản xuất các chiết xuất
hoocmôn có sẵn như insulin, dẫn đến các biện pháp phòng ngừa các bệnh chuyển hóa
nhất định [9]. Vai trò của dinh dưỡng trong sức khoẻ và bệnh tật và của nhiều yếu tố
thực phẩm thiết yếu đối với sức khoẻ của chế độ ăn uống hợp lý [9]. Những tiến bộ
khác của Thế kỷ 20 trong lĩnh vực y tế dự phòng bao gồm sự thừa nhận rộng hơn các
yếu tố tâm lý liên quan đến tổng thể sức khoẻ con người, các kỹ thuật phẫu thuật,
phương pháp gây tê mới và nghiên cứu di truyền học [9].
1.1.2. Những vai trò của lĩnh vực y tế dự phòng
Trong khi một số người nghĩ rằng bác sĩ như là một ai đó để khám, chữa cho họ khi
bị bệnh, có một sự thật là việc gặp bác sĩ về y tế dự phòng cũng quan trọng không kém
quan trọng trong việc quản lý sức khoẻ của bản thân, như chúng ta vẫn thường nghe
câu phòng bệnh hơn chữa bệnh [1]. Ngăn ngừa bệnh tật bằng cách kiểm tra tình trạng
sức khoẻ để phát hiện những nguy cơ tiềm ẩn, tiêm vắc xin đầy đủ và áp dụng các thói
quen lành mạnh là những cách để chúng ta có thể sống một cuộc sống khỏe mạnh hơn.
Từ những nhu cầu cấp thiết trong công tác phòng chống nguy cơ và bảo vệ sức
khỏe người dân, lĩnh vực y tế dự phòng có những vai trò cụ thể sau:
- Giám sát, phát hiện sớm các bệnh truyền nhiễm, các nguồn bệnh chưa rõ nguyên
nhân [1];
- Tổ chức thực hiện các biện pháp phòng, chống và kiểm soát dịch bệnh [1];
- Quản lý dữ liệu và cung cấp thông tin rộng rãi cho xã hội về các bệnh và dịch
bệnh truyền nhiễm [1];
- Phòng, chống bệnh không lây nhiễm, bệnh xã hội [1];
- Giám sát và phòng, chống bệnh không lây nhiễm, bệnh xã hội [1];
- Thực hiện các hoạt động phòng, chống yếu tố nguy cơ bệnh không lây nhiễm;
3
triển khai các hoạt động phòng, chống tác hại của lạm dụng rượu bia và đồ uống có
cồn khác [1];
- Thực hiện và kiểm tra, giám sát hoạt động phòng, chống bệnh không lây nhiễm,
bệnh xã hội; thống kê, báo cáo, xây dựng và quản lý cơ sở dữ liệu về bệnh không lây
nhiễm, bệnh xã hội [1];
- Nghiên cứu, phát triển và sử dụng vắc xin, sinh phẩm y tế hỗ trợ phòng ngừa các
bệnh truyền nhiễm một cách chủ động [1];
- Hướng dẫn, kiểm tra việc sử dụng vắc xin, sinh phẩm y tế và an toàn tiêm chủng
[1].
1.2. Dịch bệnh
Bệnh là tình trạng bất thường, ảnh hưởng xấu đến cấu trúc hoặc chức năng của một
phần hoặc toàn bộ cơ thể con người, nhưng không do chấn thương nào từ bên ngoài
gây ra [5]. Một căn bệnh có thể do các yếu tố bên ngoài như tác nhân gây bệnh hoặc
rối loạn chức năng nội bộ gây ra [5]. Ví dụ, rối loạn chức năng nội bộ của hệ thống
miễn dịch có thể tạo ra nhiều bệnh khác nhau, bao gồm các dạng suy giảm miễn dịch,
mẫn cảm, dị ứng và rối loạn tự miễn dịch.
Trên cơ thể người, khái niệm bệnh được sử dụng để chỉ tình trạng gây đau đớn, rối
loạn chức năng, sang chấn tâm lý hoặc tử vong của người bị bệnh, hoặc các vấn đề
tương tự đối với những người tiếp xúc với người bệnh đó [5]. Theo nghĩa rộng hơn,
đôi khi nó bao gồm những thương tích, khuyết tật, rối loạn, hội chứng, nhiễm trùng,
triệu chứng bị cô lập, hành vi sai lệch (không làm chủ được hành vi) và các biến thể
không điển hình của cấu trúc và chức năng trên cơ thể. Có bốn loại bệnh chính: bệnh
truyền nhiễm, bệnh thiếu hụt vi chất, bệnh di truyền và bệnh sinh lý [5]. Bệnh cũng có
thể được phân loại theo những cách khác, chẳng hạn như các bệnh truyền nhiễm và
không lây nhiễm [5].
Dịch bệnh là bệnh được lan truyền nhanh chóng và ảnh hưởng đến số lượng lớn
người trong vòng một thời gian rất ngắn [5]. Khi có dịch bệnh xuất hiện các cơ quan
kiểm soát dịch bệnh thực hiện các biện pháp nghiệm vụ trong thẩm quyền quản lý để
khoang vùng, khống chế dịch. Ví dụ, với bệnh sởi khi số lượng mắc lớn hơn 15 trường
hợp trên 100.000 người trong thời gian hai tuần liên tiếp có thể đưa ra cảnh báo dịch
bệnh truyền nhiễm.
Trong những năm gần đây, chúng ta phải đối mặt với tình hình dịch bệnh hoành
hành, bùng phát nhanh chóng và diễn biến phức tạp, đặc biệt là các dịch bệnh nguy
hiểm, Ebola, MERS-CoV liên tục gia tăng, dịch bệnh cúm A(H5N1), A(H7N9)... chưa
khống chế được triệt để; bệnh do vi rút Zika lây truyền mạnh mẽ. Nhiều bệnh truyền
nhiễm trước đây đã bị khống chế, nhưng gần đây bùng phát và gia tăng trở lại như: tay
chân miệng, sốt xuất huyết, bại liệt, sởi... Chỉ tính riêng năm 2017, trên thế giới tình
hình dịch bệnh diễn biến phức tạp, xuất hiện nhiều dịch bệnh mới; số ca mắc cúm
4
A(H7N9) liên tục xuất hiện tại Trung Quốc, MERS-CoV bùng phát tại Trung Đông.
Có thể thấy, dịch bệnh ngày càng diễn biến phức tạp về phạm vi và chủng loại. Thực
tế đó, đòi hỏi công tác y tế dự phòng cần phải được đẩy mạnh, nâng cao nhằm khoanh
vùng và hạn chế sự lây lan của dịch bệnh. Công tác giám sát dịch bệnh lây nhiễm,
phân tích và dự báo phục vụ ra quyết định ngày càng trở nên quan trọng và cần được
đẩy mạnh.
1.3. Dự báo dịch bệnh trong lĩnh vực y tế dự phòng
Hoạt động dự báo hỗ trợ các cơ quan, tổ chức đưa ra những thông tin nhận định
cho tương lai trên cơ sở các thông tin đã có trong quá khứ và hiện tại. Lĩnh vực y tế dự
phòng là một mảng lớn cho các hoạt động dự báo, với nhiều cấp độ khác nhau từ phạm
vi một địa phương, quốc gia và toàn cầu. Vì vậy, hoạt động dự báo tình hình diễn biến
dịch bệnh trong lĩnh vực y tế dự phòng luôn nhận được sự quan tâm từ các nhà nghiên
cứu. Thông qua hoạt động dự báo, nhận định trước xu hướng diễn biến của dịch bệnh,
giúp các cơ quan chức năng chủ động triển khai các biện pháp ngăn chặn sự bùng phát
và lây lan của dịch bệnh. Hoạt động nghiên cứu dự báo tình hình dịch bệnh truyền
nhiễm thời gian qua đã góp phần quan trọng giúp các nhà quản lý và hoạch định chính
sách trong công tác lập kế hoạch và định hướng chính sách y tế.
Cùng với sự phát triển của khoa học, đã có nhiều phương pháp và kỹ thuật mới
được ứng dụng trong hoạt động dự báo. Dự báo dựa vào các kỹ thuật khai phá dữ liệu
đang được ứng dụng rộng rãi. Từ thực tế, các hoạt động nghiên cứu trên thực địa
thường gặp những hạn chế về nguồn lực và thời gian, thì việc ứng dụng khai phá dữ
liệu trong dự báo dịch bệnh, góp phần giải quyết bài toán dự báo dịch bệnh với chi phí
thấp. Ở Việt Nam, ứng dụng các phương pháp và kỹ thuật khai phá dữ liệu trong dự
báo dịch bệnh vẫn chưa được triển khai nhiều với số ít các nhà nghiên cứu, trong khi
nhu cầu dự báo phục vụ xây dựng các chương trình, hoạt động, chính sách y tế ngày
càng tăng.
Do điều kiện tự nhiên như biến đổi khí hậu, môi trường, nhiều bệnh dịch truyền
nhiễm trước đây đã được đầy lùi, nay lại bùng phát mạnh mẽ với nhiều biến thể và
chủng loại mới, đặc biệt tại các vùng có điều kiện khí hậu khắc nghiệt. Bên cạnh việc
nghiên cứu để tìm ra nguyên nhân và yếu tố gây nên sự bùng phát của dịch bệnh, cần
phải ứng dụng các kỹ thuật dự báo khác nhau để xây dựng mô hình dự báo dịch bệnh,
dựa trên tác động của các yếu tố điều kiện tự nhiên, khí hậu, môi trường..., nhằm đưa
ra cảnh báo sớm diễn biến dịch bệnh trong tương lại, chủ động triển khai các công tác
nghiệp vụ, qua đó giúp giảm thiểu nguy cơ và thiệt hại của dịch bệnh đến con người.
Trong những năm gần đây, cùng với sự phát triển bùng nổ của Internet làm gia tăng
các nguồn dữ liệu, trong đó có dữ liệu dịch bệnh, khí hậu, thời tiết,… được thu thập
thường xuyên từ khắp nơi trên thế giới, đó là một điều kiện lý tưởng cho công tác dự
báo, bên cạnh đó sự phát triển của các phương pháp và kỹ thuật dự báo đem lại cơ hội
mới cho sự bùng nổ hoạt động phân tích và dự báo dịch bệnh trong lĩnh vực y tế.
5
1.4. Thực trạng nghiên cứu dự báo trong y tế dự phòng
Đến nay, có nhiều mô hình dự báo dịch bệnh được xây dựng và ứng dụng trong
lĩnh vực y tế. Ví dụ, mô hình toán học của bệnh sốt rét được bắt đầu nghiên cứu năm
1911 với mô hình của Ross và được cải tiến bởi Macdonald năm 1957. Gần đây, có rất
nhiều mô hình nghiên cứu bệnh sốt rét như: mô hình dịch tễ toán học SIR (Susceptible
– Infected – Recovered) và SIS (Susceptible – Infected - Susceptible) với tư tưởng
chính là xây dựng mô hình dự báo sự lan truyền của bệnh thông qua số người và số
muỗi bị nhiễm bệnh. Qua tham khảo, nhận thấy các phương pháp dự báo dịch bệnh
ban đầu đều dựa trên mô hình lan truyền dịch bệnh, điển hình cho tư tưởng này là mô
hình SIR. Ý tưởng của mô hình này là phân tách tổng số người trong một khu vực bị
nhiễm bệnh thành 3 lớp, trong đó:
- Lớp dễ bị bệnh S: Những người trong lớp này chưa hề mắc bệnh và có nguy cơ
bị nhiễm bệnh.
- Lớp nhiễm bệnh I: Những người trong lớp này đã mắc bệnh và có khả năng
truyền bệnh sang người khác.
- Lớp hết bệnh R: Những người trong lớp này đã được trị khỏi bệnh hoặc đã chết vì
bệnh.
Với mô hình SIR này, kết quả dự báo sẽ chính xác khi bệnh dịch xảy ra trong
khoảng thời gian ngắn để lượng dân số trong khu vực luôn ổn định, tính cả người đã
chết vì bệnh dịch này vào tổng số dân; chu kỳ ủ bệnh không đáng kể; tập mẫu dân số
đủ lớn để có kết quả xấp xỉ đúng. Mức độ lan truyền dịch bệnh được xác định như sau:
𝑆 + 𝐼𝑇→ 2𝐼 và 𝐼
𝛼→ 𝑅 (1.1)
Trong đó:
𝑆 + 𝐼𝑇→ 2𝐼: Ở vế trái, người trong lớp S bị người trong lớp I lây bệnh với tốc
độ r > 0, khiến người đó chuyển sang lớp I, thu được vế phải là 𝐼 + 𝐼 = 2𝐼.
𝐼𝛼→ 𝑅: Người trong lớp I sau một thời gian sẽ hết bệnh (hoặc chết vì bệnh) và
chuyển sang lớp R với tốc độ 𝑎 > 0.
Mỗi lớp trong mô hình SIR là một hàm số theo thời gian t gồm 𝑆(𝑡), 𝐼(𝑡) và 𝑅(𝑡).
Lớp nhiễm bệnh có tốc độ tỉ lệ thuận với số lượng người nhiễm bệnh và người dễ
bệnh, tức rSI, với 𝑟 > 0 là tham số hằng, đó cũng là tốc độ mất đi số người trong lớp
dễ bệnh. Tốc độ hết bệnh của người nhiễm bệnh tỉ lệ thuận với số lượng người nhiễm
bệnh, tức aI, với 𝑎 > 0 là hằng số, 1/𝑎 là độ đo thời gian một người ở trong trạng thái
nhiễm bệnh. Chu kỳ ủ bệnh ngắn, tức người dễ bệnh khi tiếp xúc với mầm bệnh sẽ
nhiễm bệnh ngay. Dựa trên các giá trị đầu vào, xác định được các tham số trong trong
phương trình này. Mô hình kết quả được dùng để dự báo 𝑆(𝑡), 𝐼(𝑡) và 𝑅(𝑡) với t là
thời gian tương lai. Mô hình dịch tễ học toán học có thể áp dụng thành công và cho kết
6
quả lý tưởng trên những hệ thống không quá phức tạp.
Trong thời gian gần đây, kỹ thuật và mô hình phân tích chuỗi thời gian (time-
series) được sử dụng rộng rãi, nghiên cứu dự báo trong các lĩnh vực khác nhau và dự
báo diễn biến dịch bệnh trong tương lai. Việc sử dụng mô hình phân tích chuỗi thời
gian, khắc phục được các nhược điểm của mô hình hồi quy luận lý (logistic), hồi quy
đa biến, do không thể xem xét tính tự tương quan của những dữ liệu mang tính chuỗi
thời gian, làm hạn chế khả năng dự đoán. Nhằm cải thiện độ chính xác trong thiết lập
mô hình cảnh báo dịch bệnh, một số nhà nghiên cứu đã tiến hành kết hợp kỹ thuật
phân tích chuỗi thời gian và các mô hình dự báo, nhằm xác định ảnh hưởng của điều
kiện địa lý, thời gian,… tới số ca mắc một bệnh nào đó. Từ các phân tích nêu trên, luận
văn thực hiện nghiên cứu kết hợp mô hình ARIMA và với các kỹ thuật phân tích chuỗi
thời gian để thiết lập mô hình dự báo thống nhất. Các kỹ thuật khai phá dữ liệu được
đề cập chi tiết tại Chương 2, nhằm đưa ra phân tích và lựa chọn kỹ thuật khai phá dữ
liệu phù hợp với chuỗi dữ liệu thời gian.
1.5. Mục tiêu nghiên cứu
Từ các phân tích ở trên luận văn này tập trung nghiên cứu hệ thống hóa các kỹ
thuật khai phá dữ liệu, lựa chọn các phương pháp phù hợp nhằm xây dựng mô hình
giải quyết bài toán phân tích và dự báo dự báo dịch bệnh truyền nhiễm. Mô hình nhận
đầu vào là tập dữ liệu về tình hình dịch bệnh trong quá khứ, và có đầu ra là mô hình dự
báo diễn biến dịch bệnh trong tương lai, qua đó giúp nhận định chu kỳ, xu hướng diễn
biến của dịch bệnh.
Từ mục tiêu trên, luận văn tập trung nghiên cứu các vấn đề sau:
- Nghiên cứu tổng quan các phương pháp và kỹ thuật khai phá dữ liệu, lựa chọn
phương pháp thích hợp với tập dữ liệu dịch bệnh truyền nhiễm;
- Tiến hành thực nghiệm phân tích, dự báo dịch cúm với các phương pháp khai phá
dữ liệu được lựa chọn trên tập dữ liệu dịch cúm được công bố;
- Xây dựng mô hình dự báo phù hợp và hiệu quả trong công tác dự báo dịch cúm
có khả năng ứng dụng cho tình hình thực tế ở Việt Nam.
Tóm tắt Chương 1
Chương 1 đã giới thiệu tổng quan các vấn đề của dịch bệnh truyền nhiễm, lịch sử
hình thành, phát triển của y tế dự phòng và thực trạng diễn biến dịch bệnh truyền
nhiễm hiện nay. Qua thực trạng đó, để thấy được tính cấp thiết trong việc ứng dụng
công nghệ thông tin trong phân tích, dự báo qua đó hỗ trợ công tác quản lý, định
hướng chính sách y tế để phòng ngừa và ngăn chặn diễn biến dịch bệnh. Bên cạnh đó,
cũng đề cập hiện trạng và phương pháp nghiên cứu ứng dụng phân tích, dự báo trong
lĩnh vực y tế đặc biệt là mảng y tế dự phòng.
7
Chương 2 của luận văn sẽ trình bày các phương pháp và công cụ phổ biến hiện nay
phục vụ khai thác dữ liệu, đề xuất lựa chọn một phương pháp phù hợp nhằm xử lý,
phân tích và dự báo tập dữ liệu về dịch bệnh cúm do Google Flu Trends cung cấp.
8
CHƯƠNG 2: CÁC PHƯƠNG PHÁP VÀ CÔNG CỤ KHAI PHÁ DỮ LIỆU
Với sự phát triển mạnh mẽ của Internet, dữ liệu được tạo ra ngày càng nhiều về số
lượng, khối lượng và phát triển mạnh về quy mô làm cho việc phân loại, lựa chọn, khai
thác, sử dụng gặp nhiều khó khăn.
Khai phá dữ liệu là một trong những thuật ngữ mới xuất hiện từ những năm 1990,
nó là hệ quả của sự bùng nổ Internet. Theo một công bố của Intel vào tháng 9/2013 cứ
11 giây trôi qua chúng ta có thêm 1 Petabybe dữ liệu, nó tương đương với một video
chất lượng HD dài 13 năm. Và để khai phá, trích xuất nó thì khai phá dữ liệu ra đời.
Về kỹ thuật của khai phá dữ liệu thì có thể có nhiều kỹ thuật được áp dụng và việc áp
dụng kỹ thuật khai phá dữ liệu nào còn tùy thuộc vào bài toán và dữ liệu cần khai phá.
2.1. Khai phá dữ liệu
2.1.1. Khái niệm
Khai phá dữ liệu là quá trình trích xuất thông tin bên trong bộ dữ liệu lớn để xác
định các mẫu và thiết lập các mối quan hệ để giải quyết các vấn đề thông qua phân tích
dữ liệu [6]. Công cụ khai thác dữ liệu cho phép chúng ta dự đoán xu hướng trong
tương lai dựa trên bộ dữ liệu đang có.
Bên cạnh cái tên khai phá dữ liệu người ta còn dùng một số tên gọi khác như: khai
phá tri thức từ cơ sở dữ liệu, phân tích dữ liệu, trích lọc dữ liệu,…. Khai phá dữ liệu
bao gồm 5 bước sau:
Hình 2.1. Các bước khai phá dữ liệu
Bước 1) Lựa chọn: tại bước này, những dữ liệu trực tiếp liên quan đến yêu cầu sẽ
được thu thập từ các tập dữ liệu gốc ban đầu.
Bước 2) Tiền xử lý: dữ liệu tại bước này được làm sạch (xử lý tập dữ liệu không
đầy đủ, dữ liệu có nhiễu, dữ liệu không nhất quán,…), kết quả của bước này ta sẽ có
một tập dữ liệu nhất quán, đầy đủ, được rút gọn.
Bước 3) Đổi dạng: chuyển dữ liệu về dạng phù hợp cho việc khai phá, dữ liệu sau
khi làm sạch tại bước tiền xử lý thậm chí không phải là đã sẵn sàng cho khai thác, khi
9
đó chúng ta cần phải biến đổi chúng thành các hình thức thích hợp.
Bước 4) Khai phá dữ liệu: đây là giai đoạn chính, trong đó các phương pháp phân
tích dữ liệu phù hợp sẽ được áp dụng để trích xuất ra các mẫu dữ liệu dựa vào các tập
dữ liệu ban đầu.
Bước 5) Trình diễn: sử dụng các kỹ thuật, công cụ để biểu diễn trực quan hoá dữ
liệu được khai phá cho người sử dụng.
2.1.2. Ưu điểm của khai phá dữ liệu với các phương pháp khác
2.1.2.1. Học máy (machine learning)
Phương pháp học máy đã có nhiều cải tiến để phù hợp hơn với khai phá dữ liệu,
tuy nhiên sự khác biệt giữa thiết kế, các đặc điểm của cơ sở dữ liệu làm cho học máy
trở nên không phù hợp, mặc dù hiện nay đa phần các phương pháp khai phá dữ liệu
vẫn dựa trên nền tảng của phương pháp học máy. Các phương pháp trong máy học cần
được phát triển để phù hợp với các yêu cầu và thách thức của khai phá dữ liệu. Đầu
tiên là tập dữ liệu có độ nhiễu cao, yêu cầu đặt ra cho một giải thuật đối với tập dữ liệu
bị nhiễu trở nên quan trọng hơn. Thứ hai là kích thước lớn của các tập dữ liệu cần xử
lý, các tập dữ liệu trong khai phá dữ liệu thường có kích thước lớn. Trong thực tế, kích
thước của các tập dữ liệu trong khai phá dữ liệu thường ở mức Tera-byte. Với kích
thước như thế, thời gian xử lý thường cực kỳ dài. Vì vậy, việc vận dụng các kỹ thuật
nhằm cải tiến các giải thuật để tạo ra các phiên bản phù hợp với những yêu cầu mới
của khai phá dữ liệu trở nên quan trọng.
Trong hệ quản trị cơ sở dữ liệu, một cơ sở dữ liệu là một tập hợp dữ liệu được liên
kết logic với nhau, lưu trữ dữ liệu trong một hay nhiều file và được tổ chức lưu trữ,
sửa đổi và truy xuất thông tin hiệu quả và dễ dàng. Trong học máy, thuật ngữ cơ sở dữ
liệu là nói tới một tập các mẫu dữ liệu được lưu trong một tệp. Một thuật toán sẽ sử
dụng tập dữ liệu và thông tin đi kèm tập dữ liệu đó làm đầu vào và kết quả đầu ra cho
việc học.
Với đặc điểm của cơ sở dữ liệu trong học máy được đề cập, có thể thấy học máy có
khả năng áp dụng trên tệp các bản ghi của cơ sở dữ liệu. Tuy nhiên, quá trình phát hiện
tri thức trong cơ sở dữ liệu (knowledge discovery in database – KDD) làm tăng thêm
các khó khăn vốn đã là điển hình trong học máy và vượt quá khả năng của học máy.
Trong thực tế, cơ sở dữ liệu thường động, không đầy đủ, bị nhiễu và lớn hơn nhiều so
với các tập dữ liệu học máy, điều này làm cho đa phần các thuật toán học máy hầu hết
không hiệu quả. Do vậy, trong khai phá dữ liệu cần tập trung xử lý những vấn đề này
trong cơ sở dữ liệu.
2.1.2.2. Phương pháp hệ chuyên gia
Các hệ chuyên gia sẽ nắm bắt các tri thức trong một bài toán cụ thể. Các kỹ thuật
thu thập giúp các chuyên gia trong việc khai thác tri thức, mỗi phương pháp là kỹ thuật
10
xây dựng các tập luật. Các ví dụ chuyên gia đưa ra có giá trị cao hơn nhiều so với dữ
liệu trong cơ sở dữ liệu. Hơn nữa, các chuyên gia sẽ xác nhận giá trị và sự hữu dụng
của các mẫu được phát hiện. Ở phương pháp này đòi hỏi có sự tham gia của con người
mà cụ thể là các chuyên gia với kinh nghiệm của mình trong việc phát hiện tri thức.
2.1.3. Những khó khăn trong khai phá dữ liệu
Khi khai phá dữ liệu gặp phải những thách thức sau đây:
- Cơ sở dữ liệu lớn: Kích thước của cơ sở dữ liệu được xác định thông qua số lượng
các mẫu tin, các thuộc tính (hay các biến) và các bảng, số lượng có thể là hàng trăm
thuộc tính và bảng, hàng triệu các mẫu tin. Như vậy, kích thước của cơ sở dữ liệu tính
bằng terabyte đã bắt đầu xuất hiện. Dữ liệu với số chiều cao (tương ứng với thuộc tính
khi biểu diễn qua không gian các mẫu dữ liệu) làm gia tăng kích thước không gian tìm
kiếm trong mô hình quy nạp. Khi xây dựng mô hình chỉ một tập con trong cơ sở dữ
liệu tham gia, do vậy trong các thuật toán khai phá là các mẫu dữ liệu tìm được đôi khi
không có giá trị đại diện chung cho toàn bộ cơ sở dữ liệu. Một giải pháp cho vấn đề
này là giảm bớt số chiều của bài toán và sử dụng tri thức trước (prior knowledge) để
nhận biết các biến ít liên quan.
- Vấn đề over-fitting: Khi thuật toán khai phá tìm kiếm với các tham số tốt nhất cho
một mô hình đặc biệt và một giới hạn của tập dữ liệu, mô hình ấy có thể over-fitting
trên tập dữ liệu ấy nhưng lại thi hành không chính xác trên tập dữ liệu được kiểm tra.
Một giải pháp thường được sử dụng là thẩm định chéo.
- Dữ liệu và tri thức được cập nhật, thay đổi: Dữ liệu thay đổi nhanh chóng theo
thời gian dẫn đến những mẫu dữ liệu đã được khai phá trước đây không còn giá trị.
Thêm vào đó, các biến đã được đo trong cơ sở dữ liệu bị thay đổi, bị xóa hoặc đã tăng
lên với một độ đo mới. Điều này có thể được thực hiện bằng cách gia tăng các phương
thức cập nhật mẫu và xem xét các thay đổi cho việc khám phá bằng việc sử dụng nó để
xử lý thích hợp việc tìm kiếm các mẫu chỉ với sự thay đổi.
- Dữ liệu thiếu và nhiễu: Đây là vấn đề rất được quan tâm trong khai phá dữ liệu,
việc dữ liệu thiếu và nhiễu thường dẫn đến việc dự đoán thiếu chính xác.
- Tích hợp với hệ thống: Hệ thống khai phá dữ liệu thực sự là hữu ích khi phải
được tích hợp với cơ sở dữ liệu thông qua các giao diện như truy vấn, bảng tính và các
công cụ trực quan khác. Hơn nữa, phải tạo ra một môi trường thuận lợi cho việc tương
tác với người dùng.
2.2. Các kỹ thuật khai phá dữ liệu
Các nhiệm vụ của khai phá dữ liệu gồm hai phần: dự đoán (predictive) được sử
dụng để dự đoán các giá trị tương lai của cùng hoặc một tính năng khác và mô tả
(descriptive) tìm các mô hình thú vị và dễ diễn giải của con người [6]. Trong nội dung
luận văn, học viên sẽ đề cập đến bốn kỹ thuật khai thác dữ liệu: Hồi quy (regression);
11
kết hợp (association); phân lớp (classification); phân cụm (clustering).
2.2.1. Hồi quy (Regression)
Phân tích hồi quy được sử dụng để mô hình hóa mối quan hệ giữa một biến độc lập
và biến phụ thuộc. Phương pháp này cho phép chúng ta thu được những kết quả tốt
nhất về mối quan hệ chân thực giữa các biến số. Từ phương trình ước lượng này, có
thể dự báo về giá trị của biến phụ thuộc (chưa biết trước giá trị) dựa vào giá trị cho
trước của biến độc lập (đã biết trước giá trị).
Dưới đây là một số ví dụ:
- Dự đoán doanh thu của một sản phẩm mới dựa trên các sản phẩm bổ sung;
- Dự đoán ung thư dựa trên số lượng thuốc lá tiêu thụ, thực phẩm bị tiêu hao, độ
tuổi;
- Dự đoán chuỗi thời gian của thị trường chứng khoán và các chỉ số.
Phương trình thể hiện các mối quan hệ trong hồi quy: 𝑦 = 𝐹(𝑥, 𝜃) + 𝑒, cho thấy
hồi quy là quá trình ước tính giá trị mục tiêu y trong một hàm F gồm một hoặc nhiều
biến dự đoán (𝑥1, 𝑥2, … , 𝑥𝑛), một tập các tham số (𝜃1, 𝜃2, … , 𝜃𝑛), và một số đo lỗi (e).
2.2.1.1. Hồi quy tuyến tính (linear regression)
Một kỹ thuật hồi quy tuyến tính có thể được sử dụng nếu mối quan hệ giữa các yếu
tố dự đoán và kết quả có thể xấp xỉ bằng một đường thẳng.
Hình 2.2. Tuyến tính hồi quy với một dự đoán duy nhất
Hồi quy tuyến tính với một dự báo đơn có thể được biểu diễn bằng phương trình:
𝑦 = 𝜃2𝑥 + 𝜃1 + 𝑒, (1.2)
trong đó: θ2 là độ dốc của đường thẳng, góc giữa điểm dữ liệu và đường hồi quy, θ1
là điểm đánh dấu y, điểm mà x vượt qua trục y (x = 0).
2.2.1.2. Hồi quy tuyến tính đa biến
Hồi quy tuyến tính đa biến đề cập đến hồi quy tuyến tính với hai hoặc nhiều biến
dự đoán (𝑥1, 𝑥2, … , 𝑥𝑛). Khi sử dụng nhiều dự đoán, đường hồi quy không thể được
12
hiển thị trong không gian hai chiều. Tuy nhiên, dòng này có thể được tính toán bằng
cách mở rộng phương trình cho hồi quy tuyến tính dự đoán đơn để bao gồm các tham
số cho từng biến dự đoán.
𝑦 = 𝜃1 + 𝜃2𝑥1 + 𝜃3𝑥2 + … … … + 𝜃𝑛𝑥𝑛−1 + 𝑒 (1.3)
Trong hồi quy tuyến tính đa biến, tham số hồi quy được gọi là hệ số. Khi xây dựng
một mô hình hồi quy tuyến tính đa biến, thuật toán tính toán một hệ số cho từng biến
dự báo được sử dụng bởi mô hình. Hệ số là thước đo tác động của dự báo x trên mục
tiêu y.
2.2.1.3. Hồi quy phi tuyến
Bình thường mối quan hệ giữa x và y không phải luôn được xấp xỉ bằng một đường
thẳng. Trong trường hợp này, một kỹ thuật hồi quy phi tuyến có thể được sử dụng.
Ngoài ra, dữ liệu có thể được xử lý trước để tạo mối quan hệ tuyến tính. Mô hình hồi
quy phi tuyến xác định y là một hàm của x sử dụng một phương trình phức tạp hơn
phương trình hồi quy tuyến tính.
Hình 2.3. Mô hình hồi quy phi tuyến tính
2.2.1.4. Hồi quy phi tuyến đa biến
Hồi quy phi tuyến tính đa biến đề cập đến hồi quy phi tuyến với hai hoặc nhiều yếu
tố dự đoán (𝑥1, 𝑥2, … , 𝑥𝑛). Khi sử dụng nhiều dự đoán, mối quan hệ phi tuyến không
thể được hình dung trong không gian hai chiều.
Các kỹ thuật phân tích hồi quy rất hữu ích trong khoa học dữ liệu và thuật ngữ "hồi
quy logistic" (logistic regression), xuất hiện gần như ở mọi khía cạnh trong lĩnh vực
này. Điều này, đặc biệt đúng với trường hợp do tính hữu ích và sức mạnh của mạng
nơ-ron sử dụng kỹ thuật dựa vào hồi quy để tạo ra những chức năng phức tạp mà bắt
chước chức năng của bộ não người.
2.2.2. Kết hợp (Association)
Phát hiện quy tắc kết hợp là một phương pháp mô tả quan trọng trong khai thác dữ
liệu [11]. Đó là một phương pháp rất đơn giản, nhưng được đánh cao về mức độ thông
13
minh và đưa ra kết quả dự đoán chính xác. Kỹ thuật của phương pháp là phát hiện và
tìm ra trong tập dữ liệu cần khai phá những mối liên hệ giữa các giá trị [11]. Đầu ra
của phương pháp này là tập luật kết hợp tìm được từ tập dữ liệu ban đầu [11].
Ví dụ, những khách hàng mua ngũ cốc tại cửa hàng tạp hóa thường sẽ mua kèm
sữa. Trong thực tế, phân tích kết hợp có thể tìm ra 85% các lần kiểm tra hành vi mua
sắm của khác hàng mua ngũ cốc sẽ bao gồm sữa.
2.2.3. Phân lớp (Classification)
Phân lớp là một kỹ thuật khai phá dữ liệu mà gán các mục trong một bộ dữ liệu để
nhằm mục tiêu phân loại [11]. Mục tiêu của phân lớp là dự đoán chính xác lớp mục
tiêu cho từng trường hợp dữ liệu.
Một kỹ thuật phân lớp bắt đầu với một tập dữ liệu trong đó các phép gán lớp được
biết. Ví dụ, một mô hình phân lớp dự đoán rủi ro tín dụng có thể được phát triển dựa
trên dữ liệu quan sát của nhiều người nộp đơn vay trong một khoảng thời gian. Ngoài
xếp hạng tín dụng lịch sử, dữ liệu còn theo dõi lịch sử việc làm, quyền sở hữu nhà
hoặc cho thuê, số năm cư trú, số lượng và loại hình đầu tư, v.v… Xếp hạng tín dụng sẽ
là mục tiêu, các thuộc tính khác sẽ là các yếu tố dự báo và dữ liệu cho từng khách hàng
sẽ tạo thành một trường hợp.
2.2.4. Phân cụm (Clustering)
Phân cụm cơ sở dữ liệu là tương tự như phân lớp, nghĩa là chúng ta xác định các
yếu tố trong một tập dữ liệu có đặc điểm chung và nhóm chúng lại với nhau dựa trên
những đặc điểm chung này [11]. Sự khác biệt với phân cụm, chúng ta để các thuật toán
xác định các nhóm dựa vào lựa chọn một hoặc thậm chí tất cả các dữ liệu có sẵn, trong
khi với phân lớp chúng ta đã có các nhóm được định nghĩa. Sự khác biệt này cũng
được xác định là có giám sát (phân lớp) so với không có giám sát (phân cụm).
Phân cụm là kỹ thuật tìm ra các cụm dữ liệu có đặc điểm tương tự nhau trong tập
dữ liệu cần khai phá. Các thành viên của một cụm giống nhau hơn so với các thành
viên của các cụm khác. Mục đích của phân cụm là tìm các cụm chất lượng cao sao cho
độ tương đồng giữa các cụm thấp và tương đồng của dữ liệu trong cụm cao. Phân cụm
hữu ích cho việc khám phá dữ liệu. Nếu có nhiều trường hợp dữ liệu không có nhóm
rõ ràng, thuật toán phân cụm có thể được sử dụng để tìm nhóm tự nhiên. Phân cụm
cũng có thể phục vụ như là một bước tiền xử lý dữ liệu hữu ích để xác định các nhóm
thuần nhất và xây dựng các mô hình được giám sát.
2.3. Dữ liệu chuỗi thời gian (time series data)
Dữ liệu trong khai phá dữ liệu gồm nhiều loại: dữ liệu bảng (table data), dữ liệu
chéo (cross sectional data), dữ liệu chuỗi thời gian,… Định hướng phân tích của luận
văn trên tập dữ liệu của Google Flu Trends là dạng dữ liệu chuỗi thời gian, tập dữ liệu
này ghi nhận về diễn biến dịch cúm của các nước trên thế giới từ năm 2003 – 2015,
14
nên luận văn giới thiệu kiểu dữ liệu chuỗi thời gian.
Dữ liệu chuỗi thời gian là chuỗi các giá trị đo một đại lượng nào đó và giá trị đó
được ghi nhận theo diễn biến thời gian. Chúng ta có thể hiểu chuỗi dữ liệu thời gian là
một dãy các vector hoặc một dãy các giá trị phụ thuộc vào các mốc thời gian:
{𝑥(𝑡0), 𝑥(𝑡1), 𝑥(𝑡2), … , 𝑥(𝑡𝑖−1), 𝑥(𝑡𝑖), 𝑥(𝑡𝑖+1), … }. Việc phân tích dữ liệu chuỗi thời
gian chính là việc tìm ra mối liên hệ giữa P và tương ứng với giá trị 𝑥(𝑡), ta có công
thức như sau: 𝑃 → 𝑥(𝑡).
Ta thấy nhiều ví dụ về dữ liệu chuỗi thời gian như: số lượng người mắc cúm diễn
biến theo thời gian, số liệu thu nhập bình quân đầu người của Việt Nam diễn biến qua
nhiều năm,..… Có thể chia dữ liệu chuỗi thời gian thành hai dạng: rời rạc và liên tục.
Các chuỗi dữ liệu có thời gian không liền mạch kéo theo dữ liệu không liền mạch đó là
chuỗi dữ liệu rời rạc. Với dữ liệu đảm bảo tính liên tục, t là các mốc thời gian và
𝑥(𝑡) là các dữ liệu tương ứng với thời gian t đó là chuỗi dữ liệu liên tục.
Với đặc điểm của tập dữ liệu dịch bệnh cúm do Google Flu Trends là các số liệu
được ghi nhận theo diễn biến thời gian, và giá trị các số liệu chỉ có một thuộc tính duy
nhất là số ca mắc cúm. Sự tương quan của các dữ liệu trong tập dữ liệu ở đây là sự
biến đổi dữ liệu theo thời gian. Chính vì vậy, qua phân tích chi tiết các phương pháp
khai phá dữ liệu ở phần trên, luận văn quyết định lựa chọn phương pháp phân tích hồi
quy trên tập dữ liệu thời gian (time series regression), với hai đặc tính của hai biến:
biến độc lập và biến phụ thuộc, được thể hiện tương quan giữa thời gian và số ca mắc
cúm tại thời điểm tương ứng.
2.4. Các công cụ, phần mềm hỗ trợ khai phá dữ liệu
Các phần mềm hỗ trợ khai phá dữ liệu rất đa dạng, trong phạm vi luận văn này chỉ
đề cập tới một số phần mềm đang thông dụng, đang sử dụng rộng rãi. Trên cơ sở đó,
nghiên cứu, lựa chọn một công cụ phù hợp và áp dụng trên tập dữ liệu dịch bệnh cúm
do Google Flu Trends công bố. Các công cụ đã được luận văn nghiên cứu đề cập:
- Phần mềm Weka;
- Phần mềm phân tích số liệu SPSS;
- Phần mềm phân tích thống kê R.
2.4.1. Phân tích số liệu bằng phần mềm Weka
Weka (viết tắt của Waikato Environment for Knowledge Analysis) là một công cụ
khai thác dữ liệu ban đầu được phát triển tại Đại học Waikato tại New Zealand [12].
Weka bắt đầu như là một dự án chính phủ tài trợ vào năm 1993 [12]. Mặc dù Pentaho
đã thông qua các công cụ Weka làm công cụ khai thác dữ liệu của nó, nó chỉ là một
phần của nền tảng BI. Việc tích hợp trong nền tảng Pentaho được giới hạn một plugin
đặc biệt cho Kettle để gọi một thuật toán điểm Weka. Năm 1996, phiên bản đầu tiên đã
được phát hành vào năm 1999 và phiên bản 3 (100% được viết bằng Java) đã được
15
phát hành. Phiên bản hiện tại 3.6 là một bản phát hành nâng cấp vẫn dựa trên mã 3.0,
làm Weka có lẽ là phần trưởng thành hầu hết các nền tảng Pentaho BI.
Hình 2.4. Giao diện phần mềm weka
Weka bao gồm ba công cụ khác nhau, mỗi công cụ trong số đó có thể được sử dụng
độc lập, nhưng khi kết hợp với nhau tạo ra một nền tảng khai thác dữ liệu rất mạnh mẽ.
Các chức năng chính như sau:
Explorer – Điểm khởi đầu cho làm quen với Weka và khai thác dữ liệu. Explorer
cho phép dễ dàng làm việc với các bộ dữ liệu. Nó cũng cung cấp một loạt các chức
năng.
Experimenter – làm việc, thiết lập và thực hiện các thí nghiệm lớn, nơi tập hợp
nhiều dữ liệu và nhiều thuật toán có thể được thêm vào cùng một lúc. Kết quả của thí
nghiệm sau đó có thể được so sánh với nhau để xác định các kết quả đã được (thống
kê) tốt hơn so với những người khác.
KnowledgeFlow – Sự bổ sung mới nhất cho các bộ công cụ Weka có thể được sử
dụng để xây dựng hoàn chỉnh quy trình công việc khai thác dữ liệu tương tự như các
quy trình bạn đã quen thuộc với trong Pentaho tích hợp dữ liệu hoặc các studio thiết
kế.
Định dạng đầu vào của Weka: Trước khi bạn có thể phân tích dữ liệu, nó phải
được chuẩn bị để sử dụng trong Weka. Weka có thể đọc dữ liệu từ nhiều nguồn khác
nhau, bao gồm cả trực tiếp từ một cơ sở dữ liệu JDBC và các tập tin CSV. Weka cũng
có riêng, định dạng file gốc của nó. Việc đầu tiên được gọi ARFF (Attribute Relation
File Format) là một định dạng tập tin dựa trên văn bản nhưng với siêu dữ liệu thêm
vào để Weka biết loại dữ liệu trong tập tin. Như bạn có thể thấy, nó có chứa các mối
quan hệ (chủ đề của sự phân tích), tất cả các thuộc tính được sử dụng bao gồm cả các
giá trị có thể hoặc các kiểu dữ liệu, và các dữ liệu chính nó.
Định dạng thứ hai được gọi là XRFF (eXtensible attribute-Relation File Format) và
là một phần mở rộng dựa trên XML của các định dạng ARFF. Cả hai tập tin ARFF và
XRFF có thể được mở trong một hình thức lưu trữ là tốt. XRFF có lợi thế hơn ARFF
16
chuẩn ở chỗ nó cho phép các thuộc tính lớp được xác định trong tập tin. Các tập tin
chuẩn ARFF không chỉ định một thuộc tính lớp và để lại nó cho người dùng lựa chọn
một thông qua giao diện người dùng đồ họa hoặc thông qua một lựa chọn nếu sử dụng
giao diện dòng lệnh Weka của. XRFF mặt khác cho phép một thuộc tính lớp mặc định
được xác định trong tập tin. Thuộc tính này sau đó được chọn tự động trong giao diện
dòng lệnh hoặc giao diện Weka. Tất nhiên, điều này không ngăn chặn người dùng tự
chọn thuộc tính khác như các lớp nếu họ mong muốn. Cuối cùng, XRFF cho phép
thêm cả thuộc tính và khởi tạo, cho phép cân bằng tầm quan trọng của mỗi thuộc tính
trong một kết quả.
2.4.2. Giới thiệu về SPSS (Statistical Product and Services Solutions)
SPSS là phần mềm phục vụ thống kê, với một bộ thư viện lớn các thuật toán học
máy, phân tích văn bản, nguồn mở, tích hợp dễ dàng với những dữ liệu lớn [13]. SPSS
dễ sử dụng, linh hoạt và thường được dùng trong nghiên cứu xã hội, kinh tế học.
Hình 2.5. Giao diện SPSS
SPSS cung cấp các chức năng quản lý dữ liệu và phân tích thống kê với giao diện
đồ họa thân thiện với người dùng. SPSS phiên bản 22 đem lại cho người dùng một
giao diện đơn giản giúp bạn tạo ra các đồ thị và dễ dàng hiệu chỉnh đồ thị. Trong
SPSS, các đồ thị có chất lượng cao và bạn có thể dễ dàng dán chúng vào các tài liệu
khác cũng như từ các tài liệu khác như Word, Excel bạn có thể dễ dàng copy dữ liệu
qua lại.
2.4.3. Phân tích số liệu bằng R
R là một phần mềm hoàn toàn miễn phí, được sử dụng cho phân tích dữ liệu, thống
kê và vẽ biểu đồ [14]. R là ngôn ngữ lập trình đa năng, có thể sử dụng cho nhiều mục
đích, tính toán, giải trí, phân tích thống kê phức tạp [14]. R là một ngôn ngữ lập trình,
cho nên chúng ta có thể sử dụng nó để phát triển các phần mềm phục vụ tính toán [14].
17
Hình 2.6. Giao diện phần mềm R
Đánh giá hỗ trợ của R về mặt phân tích và dự đoán số liệu thì thấy rằng R là công
cụ phân tích thống kê mạnh, nhưng cũng có một số đánh giá sau:
- Thích hợp với các bài toán phân tích thống kê và vẽ biểu đồ;
- Môi trường làm việc sử dụng câu lệnh, phức tạp và khó khai thác;
- Dữ liệu đầu vào cho phân tích dạng bảng theo cấu trúc file .csv hoặc file .txt,
công cụ không có hỗ trợ kết nối trực tiếp vào cơ sở dữ liệu;
- Trong R cho phép tính toán thực hiện trên vectors hay nói cách khác R là một
ngôn ngữ vector, vì vậy chúng ta có thể sử dụng bất kỳ hàm nào trên vector và không
phải sử dụng vòng lặp. Ví dụ: chúng ta có một mảng và qua mỗi phần tử trong mảng
lại tăng 1. Nếu chúng ta không dùng vector, cần lặp qua dãy các phần tử và trong vòng
lặp chúng ta có n phép tính +1 với mảng gồm n phần tử.
- R là ngôn ngữ thống kê và được sử dụng nhiều và có thế mạnh trong lĩnh vực sinh
học, thống kê dữ liệu và di truyền họ.
Với những ưu điểm vượt trội như trên, trong luận văn này học viên quyết định lựa
chọn R làm công cụ hỗ trợ phân tích tập dữ liệu dịch bệnh cúm do Google Flu Trends
cung cấp tại phần trình bày thực nghiệm.
Tóm tắt chương 2
Chương 2 học viên đã giới thiệu về các phương pháp và công cụ phục vụ khai phá
dữ liệu. Bên cạnh đó, cũng đã đề cập đến chuỗi dữ liệu thời gian để chúng ta hiểu bản
chất của chuỗi dữ liệu thời gian. Qua phân tích chi tiết đặc điểm của các phương pháp
khai phá dữ liệu và dựa trên đặc điểm của tập dữ liệu Google Flu Trends, đã quyết
định lựa chọn phương pháp hồi quy để phân tích và dự báo.
18
Chương 3 sẽ đi sâu phân tích phương pháp phân tích hồi quy với chuỗi dữ liệu thời
gian làm cơ sở cho việc thực nghiệm.
19
CHƯƠNG 3. PHƯƠNG PHÁP PHÂN TÍCH VÀ DỰ BÁO
VỚI CHUỖI DỮ LIỆU THỜI GIAN
3.1. Dữ liệu chuỗi thời gian
Dữ liệu chuỗi thời gian là một dãy giá trị phép đo trên cùng một đối tượng được
ghi nhận theo thời gian, các phép đo được thực hiện theo thời gian định kỳ hoặc không
[10].
Hình 3.1. Số liệu diễn biến cúm tại phía Nam Châu phi từ năm 2006 đến 2015
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
[10].
Hình 3.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.
20
Hình 3.3. Biểu diễn thay đổi chuỗi thời gian theo từng khoảng thời gian
- 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 3.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 3.5. Sơ đồ chuỗi thời gian với định lượng 𝐘(𝐭) theo diễn biến thời gian t
21
Với sơ đồ Hình 3.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:
- Mô hình cộng: 𝑌𝑡 = 𝑇𝑡 + 𝑆𝑡 + 𝐶𝑡 + 𝐼𝑡. (3.1)
- Mô hình nhân: 𝑌𝑡 = 𝑇𝑡𝑆𝑡𝐶𝑡𝐼𝑡. (3.2)
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).
Mô hình nhân được sử dụng nhiều hơn. 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ỳ.
3.2. 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 [4]. 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 [4]. Chuỗi Yt được coi là dừng khi thỏa
mãn:
- 𝐸(𝑌𝑡) = 𝜇(∀𝑡). (3.3)
- 𝑉𝑎𝑟(𝑌𝑡) = 𝐸(𝑌𝑡 − 𝜇)2 = 𝜎2(∀𝑡). (3.4)
- 𝐶𝑜𝑣(𝑌𝑡 , 𝑌𝑡+𝑘) = 𝐸[(𝑌𝑡+𝑘 − 𝜇)(𝑌𝑡 − 𝜇)] = 𝑌𝑘(∀𝑡). (3.5)
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 thời đoạn.
3.2.1. Kiểm tra tính dừng chuỗi thời gian
3.2.1.1. Kiểm tra trực quan trên trên đồ thị biểu diễn chuỗi thời gian
Chuỗi yt, 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.
3.2.1.2. Kiểm tra dựa trên sơ đồ tự tương quan và tự tương quan riêng phần
3.2.1.2.1. Sơ đồ tự tương quan ACF (Autocorelation Function)
Sử dụng dùng hàm tự tương quan ACF, trong đó: độ trễ k ký hiệu bằng ρk, xác định
bằng công thức như sau:
22
𝐴𝐶𝐹(𝑘) = 𝑝𝑘𝑐𝑜𝑣(𝑌𝑡, 𝑌𝑡−𝑘)
𝑉𝑎𝑟(𝑌𝑡) (3.6)
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.
3.2.1.2.2. Sơ đồ tự tương quan riêng phần PACF (Partial Autocorrelation
Function)
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 để đ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:
𝑃𝐴𝐶𝐹(𝑘) = 𝑝𝑘𝑘 =𝑝𝑘− ∑ 𝑝𝑘−1 𝑗 𝑝𝑘−𝑗
𝑘−1𝑗=1
1 − ∑ 𝑝𝑘−1 𝑗 𝑝𝑗𝑘−1𝑗=1
(3.7)
Hệ số tương quan riêng phần thể hiện mối quan hệ giữa hai biến khi tất cả những
biến khác giữ nguyên giá trị. Nếu chuỗi dừng thì các kk cũng có phân phối chuẩn
𝑁(0, 1𝑛⁄ ), do đó kiểm định giả thiết đối với ρkk tương tự như đối với ρk.
3.2.2. Biến đổi chuỗi không dừng thành chuỗi dừng
Với chuỗi thời gian ban đầu không có tính dừng, trước khi xây dựng mô hình
ARIMA ta phải biến chuỗi thành có tính dừng, phương pháp là lấy sai phân cấp d với
d = 1 hoặc d = 2,...
Ta có công thức: 𝑌𝑡 = 𝑌𝑡−1 + 𝑢𝑡, giá trị ut là nhiễu trắng.
Ta có công thức sai phân cấp 1 của yt như sau: 𝐷(𝑌𝑡) = 𝑌𝑡 − 𝑌𝑡−1 = 𝑢𝑡, trong đó
với ut là nhiễu trắng nên 𝐷(𝑌𝑡) là chuỗi dừng.
Nếu lấy sai phân cấp 1 chuỗi thời gian Yt nhưng chưa cho kết quả là chuỗi dừng thì
tiếp tục lấy sai phân cấp 2, 3… Có thể nói, luôn có một giá trị d để sai phân cấp d của
Yt là chuỗi dừng. Khi đó, Yt là liên kết bậc d, ký hiệu là I(d). Sai phân của cấp d được
tính như sau:
+ Cấp 1: 𝐷(𝑌𝑡) = 𝑌𝑡 − 𝑌𝑡−1 (3.8)
+ Cấp 2: 𝐷(𝐷(𝑌𝑡)) = 𝐷2(𝑌𝑡) = (𝑌𝑡 − 𝑌𝑡−1) − (𝑌𝑡−1−𝑌𝑡−2) (3.9)
+ Tương tự như vậy với sai phân cấp d: 𝐷(𝐷𝑑−1(𝑌𝑡)) (3.10)
Nếu yt ở dạng logarit thì giá trị 𝐷(𝑌𝑡) là phần trăm thay đổi của yt so với trước đó.
3.3. Mô hình ARIMA
23
3.3.1. Mô hình tự hồi quy AR (Autoregressive process)
Ý tưởng mô hình AR(p) là hồi quy số liệu của nó trong quá khứ ở những chu kì
trước.
𝑌𝑡 = 𝑎0 + 𝑎1𝑌𝑡−1 + 𝑎2𝑌𝑡−2 + ⋯ + 𝑎𝑝𝑌𝑡−𝑝 + 𝑢𝑡; (3.11)
trong đó:
Yt : quan sát dừng hiện tại;
Yt-1, Yt-2,...: là quan sát dừng ở thời điểm trong quá khứ;
a0, a1, a2, …: các tham số phân tích hồi quy;
ut : sai số dự báo ngẫu nhiên của giai đoạn hiện tại, với ut giá trị trung bình được
mong đợi bằng 0.
Hàm tuyến tính Yt là của chuỗi quan sát dừng những thời điểm trong quá khứ: Yt-1,
Yt-2…
Khi phân tích hồi quy Yt theo các giá trị trong chuỗi thời gian, chuỗi dừng có độ
trễ, chúng ta sẽ được mô hình AR. Số quan sát dừng ở các thời điểm quá khứ được sử
dụng trong mô hình tự hồi quy là bậc p của mô hình AR. Nếu sử dụng 2 quan sát dừng
ở quá khứ, ta có mô hình tương quan bậc hai AR(2).
- Mô hình AR(1) : 𝑌𝑡 = 𝑎0 + 𝑎1𝑌𝑡−1 + 𝑢𝑡 (3.12)
- Mô hình AR(2) : 𝑌𝑡 = 𝑎0 + 𝑎1𝑌𝑡−1 + 𝑎2𝑌𝑡−2 + 𝑢𝑡 (3.13)
3.3.2. Mô hình trung bình trượt MA (Moving Average)
Hàm tuyến tính yt phụ thuộc vào các biến sai số dự báo quá khứ và hiện tại. Mô
hình trung bình trượt là một trung bình trọng số của những sai số mới nhất.
𝑌𝑡 = 𝑏0 + 𝑢𝑡 + 𝑏1𝑢𝑡−1 + 𝑏2𝑢𝑡−2 + ⋯ + 𝑏𝑞𝑢𝑡−𝑞 (3.14)
trong đó:
Yt : quan sát dừng hiện tại;
ut : sai số dự báo;
ut-1, ut-2,... : sai số dự báo quá khứ;
b0, b1, b2,... : giá trị trung bình của yt và các hệ số bình quân di động;
q : là bậc của MA.
- Mô hình MA(1) : 𝑌𝑡 = 𝑏0 + 𝑢𝑡 + 𝑏1𝑢𝑡−1 (3.15)
- Mô hình MA(2) : 𝑌𝑡 = 𝑏0 + 𝑢𝑡 + 𝑏1𝑢𝑡−1 + 𝑏2𝑢𝑡−2 (3.16)
3.3.3. Mô hình trung bình trượt và tự hồi quy ARMA (Autoregressive Moving
Average)
24
Để biểu diễn sơ đồ Y không chỉ riêng AR hoặc MA mà có thể kết hợp cả hai, sự
kết hợp ta được mô hình ARMA, còn gọi là mô hình trung bình trượt tự hồi quy.
Yt là quá trình ARMA(1, 1) nếu Y có thể biểu diễn dưới dạng:
Yt = 𝑎0 + 𝑎1𝑌𝑡−1 + 𝑢𝑡 + 𝑏0 + 𝑏1𝑢𝑡−1 (u là nhiễu trắng) (3.17)
Tóm lại, Yt là quá trình ARMA (p, q) nếu Yt có thể biểu diễn dưới dạng:
Yt = 𝑎0 + 𝑎1𝑌𝑡−1 + 𝑎2𝑌𝑡−2 + … + 𝑎𝑝𝑌𝑡−𝑝 + 𝑢𝑡 + 𝑏0 + 𝑏1𝑢𝑡−1 +
𝑏2𝑢𝑡−2+ . . . + 𝑏𝑞𝑢𝑡−𝑞
(3.18)
3.3.4. Mô hình trung bình trượt tự hồi quy ARIMA (Autoregressive
Intergrated Moving Average)
Một chuỗi thời gian có thể tuân theo nhiều mô hình khác nhau. Tuy nhiên, cả ba
mô hình AR, MA, ARMA đều yêu cầu chuỗi phải có tính dừng [4]. Nhưng thực tế có
nhiều chuỗi thời gian không có tính dừng. Vậy làm thế nào để áp dụng được các mô
hình trong thực tế ? Câu trả lời ở đây là sử dụng phương pháp lấy sai phân biến đổi
một chuỗi không dừng thành chuỗi dừng, trước khi sử dụng mô hình ARMA.
Nếu chuỗi Yt có đồng liên kết bậc d trên mô hình ARMA (p, q) cho chuỗi sai phân
bậc d, thì chúng ta có mô hình ARIMA (p, d, q). Với bậc tự hồi quy p, số lần lấy sai
phân d để chuỗi Yt được xác định là chuỗi dừng, bậc trung bình trượt q (p và q là bậc
tương ứng của chuỗi dừng).
- Trong mô hình ARIMA (p, d, q), khi d = 0 và q = 0 thì ta có AR(p).
- Trong mô hình ARIMA (p, d, q), khi d = 0 và p = 0 thì ta có MA(q).
- Với ARIMA(1,1,1) nghĩa là Yt có sai phân bậc 1 là một chuỗi dừng. Chuỗi sai
phân dừng này có thể biểu diễn dưới dạng ARMA (1,1).
∆𝑌𝑡 = 𝑎0 + 𝑎1𝑌𝑡−1 + 𝑎0𝑢𝑡 + 𝑎1𝑢𝑡−1 (u là nhiễu trắng) (3.19)
Như vậy, xác định được các giá trị p, d, q ta sẽ mô hình hóa được chuỗi ARIMA.
Ta thấy, mô hình ARIMA chỉ sử dụng các giá trị trong quá khứ của chuỗi chứ không
dùng thêm biến độc lập khác.
3.3.5. Dự báo dữ liệu chuỗi thời gian
Dự báo chuỗi thời gian là phương pháp dự báo sử dụng các giá trị lịch sử của các
nhân tố chẳng hạn như giá và sản lượng, lạm phát, lợi nhuận trong quá khứ,… để dự
báo giá trị hiện tại hoặc dự báo sự thay đổi của giá trị hiện [4]. Gồm có loại dự báo
chính là dự báo định tính và dự báo định lượng. Chuỗi thời gian thuộc lớp dự báo định
lượng vì kết quả của mô hình là một giá trị định lượng, nên được sử dụng khá phổ biến
trong nghiên cứu kinh tế học như GDP, lạm phát, tăng trường hay nghiên cứu giá cả
thị trường. Trong loại hình này một vài nguyên tắc dự báo cơ bản thường được dùng là
AR, MA,…
25
Phương pháp Box-Jenkins được xem là một trong những kỹ thuật có hiệu quả cao
trong việc đưa ra các dự báo chính xác và có độ tin cậy cao. Sức mạnh của nó là ở chỗ
nó đưa ra những thông tin giúp nhà phân tích chuỗi thời gian lựa chọn mô hình phù
hợp với dữ liệu quan sát được. Đối với các phương pháp khác, nhà phân tích giả thiết
một mô hình nào đó rồi tiến hành ước lượng các tham số của mô hình. Trong giai đoạn
đầu tiên, ta nhận dạng một mô hình thử nghiệm bằng cách so sánh các hàm tự tương
quan mẫu và tự tương quan riêng phần mẫu của chuỗi thời gian dừng với các hàm tự
tương quan và tự tương quan riêng lí thuyết của các mô hình ARMA.
ARIMA là một mô hình dự báo phổ biến và linh hoạt sử dụng dữ liệu trong quá
khứ để đưa ra các dự báo [7]. Loại mô hình này là một kỹ thuật dự báo cơ bản có thể
được sử dụng làm nền tảng cho các mô hình phức tạp hơn. Dựa vào những đặc điểm
đó, trong phần thực nghiệm học viên quyết định sử dụng mô hình ARIMA để thực
nghiệm trên tập dữ liệu chuỗi thời gian.
Các bước chính trong phương pháp Box‐Jenkins:
Bước 1: Nhận dạng mô hình
Dữ liệu quá khứ được sử dụng để nhận dạng thử một mô hình ARIMA thích hợp.
Bước 2: Ước lượng mô hình
Dữ liệu quá khứ được sử dụng để ước lượng các tham số của mô hình thử nghiệm.
Bước 3: Kiểm tra dự đoán xem mô hình có phù hợp
Các đánh giá khác nhau được dùng để kiểm tra sự thích hợp của mô hình thử
nghiệm, và nếu cần thiết, gợi ý một mô hình tốt hơn rồi sau đó mô hình này lại được
xem như một mô hình thử nghiệm mới.
Bước 4: Dự báo
Khi đã chọn được mô hình cuối cùng, nó được sử dụng để dự báo các giá trị tương
lai của chuỗi thời gian.
26
Nhận dang mô hình
Ước lượng mô hình
Mô hình có phù hợp?
Dự báo
Vẽ biểu đồ chuỗi giá trị
Là chuỗi dừng?
Lấy sai phân của chuỗi
Điều chỉnh mô hình
Có
Không
Có
Không
Hình 3.6. Các bước chính trong phương pháp Box‐Jenkins
Trên thực tế, nhiều chuỗi thời gian có thể được biểu diễn bằng những mô hình đơn
giản. Mô hình với số tham số thường được ưa chuộng hơn. Thông thường đối với các
mô hình ARMA(p, q) ta chỉ cần xét p ≤ 2 và/hoặc q ≤ 2. Có thể cải thiện việc biểu
diễn mô hình bằng cách sử dụng một phép biến đổi dữ liệu gốc phù hợp. Dữ liệu đã
được biến đổi, nếu chưa có tính dừng, sẽ được sai phân hóa cho đến khi đạt được tính
dừng bởi vì ta bắt buộc phải làm việc với chuỗi thời gian dừng.
Tóm tắt chương 3
Chương 3 đã đi sâu chi tiết phân tích các đặc điểm chuỗi dữ liệu chuỗi thời gian, và
dựa vào đặc điểm của dữ liệu chuỗi thời gian đã đưa ra lựa chọn mô hình phân tích
phù hợp ARIMA.
Chương 4 học viên tiến hành thực nghiệm tập dữ liệu dịch bệnh cúm do Google
Flu Trends công bố sử dụng R và dựa trên mô hình ARIMA.
27
CHƯƠNG 4. THỰC NGHIỆM VÀ ĐÁNH GIÁ
Hiện nay, có nhiều phương pháp ứng dụng trong việc khai phá, phân tích và dự
đoán xu hướng dữ liệu. Kéo theo đó là rất nhiều phần mềm hỗ trợ cho việc phân tích
và dự đoán dữ liệu. Luận văn này sử dụng phần mềm R để làm thực nghiệm trên tập
dữ liệu dịch cúm Google Flu Trends công bố.
4.1. Mô hình thực nghiệm
Trong phần thực nghiệm này, với bộ dữ liệu liên quan đến dịch bệnh cúm như đã
đề cập ở trên, luận văn sẽ giới thiệu từng bước thực nghiệm sử dụng mô hình ARIMA
và sử dụng R.
Mô hình ARIMA phổ biến và linh hoạt trong lĩnh vực dự đoán bằng việc sử dụng
những thông tin trong quá khứ để đưa ra dự đoán. Loại mô hình này là kỹ thuật dự
đoán cơ bản mà có thể được sử dụng giống như một nền tảng cho những mô hình hoàn
thiện hơn.
ARIMA cho hồi quy tự động được tích hợp trung bình trượt và được chỉ định bởi
thứ tự 3 tham số (p, d, q), tiến trình phù hợp mô hình ARIMA là thỉnh thoảng được đề
cập tới giống như phương thức Box-Jenkins.
Một công cụ tự hồi quy (auto regressive - AR) hướng tới sử dụng những giá trị quá
khứ trong công thức hồi quy cho chuỗi Y, tham số tự hồi quy p chỉ định số lượng của
độ trễ được dùng trong mô hình.
𝑌𝑡 = 𝑎0 + 𝑎1𝑌𝑡−1 + 𝑎2𝑌𝑡−2 + ⋯ + 𝑎𝑝𝑌𝑡−𝑝 + 𝑢𝑡 (4.2)
Một công cụ trung bình trượt (moving average - MA) nêu ra lỗi của mô hình giống
như sự kết hợp thành phần lỗi trước đây et. Theo đó q xác định số lượng giới hạn gồm
có trong mô hình.
𝑌𝑡 = 𝑏0 + 𝑒𝑡 + 𝑏1𝑒𝑡−1 + 𝑏2𝑒𝑡−2 + ⋯ + 𝑏𝑞𝑒𝑡−𝑞 (4.3)
Mặt khác, tự hồi quy và công cụ trung bình trượt thể hiện một mô hình ARIMA
theo mùa có thể được viết bằng sơ đồ tuyến tính:
𝑌𝑡 = 𝑎0 + 𝑎1𝑌𝑡−1 + 𝑎2𝑌𝑡−2 + … + 𝑎𝑝𝑌𝑡−𝑝 + 𝑢𝑡 + 𝑏0 + 𝑏1𝑢𝑡−1
+ 𝑏2𝑢𝑡−2 + . . . + 𝑏𝑞𝑢𝑡−𝑞
(4.4)
Lưu ý rằng mô hình ở trên giả định chuỗi không theo mùa, có nghĩa là ta có thể cần
phải không hợp lý hóa chuỗi trước khi mô hình hóa.
Mô hình ARIMA có thể được chỉ định thông qua cấu trúc mùa. Trong trường hợp
này, mô hình được chỉ định với hai tập của tham số (p, d, q) giống như mô tả ở trên và
những tham số mô tả thành phần mùa m.
Phương pháp ARIMA có những hạn chế của nó. Những mô hình này dựa trực
tiếp vào các giá trị trong quá khứ và hoạt động tốt nhất trên chuỗi dữ liệu dài và
28
ổn định.
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ự đoá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ự đoá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 soá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 soá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
soát và phòng ngừa các chứng bệnh của Mỹ đưa ra.
29
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.
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.
(1)
(2)
30
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 soá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ự đoá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
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
31
Đầ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
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:
32
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 Argentina
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
33
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.
34
Đá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:
35
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ự đoán được.
Ngoà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).
36
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ịn
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 quá 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 quá khứ của chuỗi. Đầu tiên, tính toá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
toá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ỳ
37
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
38
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
ngoà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
39
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.
Hình 4.15. Mô hình ACF với 𝐝 = 𝟏
Hình 4.16. Mô hình PACF với 𝐝 = 𝟏
Bây giờ chúng ta áp dụng mô hình. Gói thư viện forecast cho phép người dùng xác
định rõ bậc của mô hình bằng cách sử dụng hàm ARIMA() hoặc tự động tạo một tập
hợp tối ưu (p, d, q) sử dụng auto.arima().
Hai trong số các tiêu chí được sử dụng rộng rãi nhất là tiêu chí thông tin Akaike
(AIC) và các tiêu chuẩn thông tin Baysian (BIC). Các tiêu chí này có liên quan chặt
chẽ và được hiểu là ước tính số lượng thông tin sẽ bị mất nếu một mô hình cụ thể được
chọn. Khi so sánh các mô hình, người ta muốn giảm thiểu AIC và BIC.
Bước 5: Trình diễn
40
Ta có thể chỉ định cấu trúc không theo mùa ARIMA và phù hợp với mô hình để
khử dữ liệu theo mùa. Các tham số (1, 1, 1) được đề xuất bởi quy trình tự động; mô
hình kết hợp sự khác biệt về bậc 1 và sử dụng thuật ngữ tự động của độ trễ đầu tiên và
mô hình trung bình động auto.arima().
Ta đã có một mô hình dự báo, chúng ta có thể bắt đầu bằng cách kiểm tra các ô
ACF và PACF.
Hình 4.17. Mô hình 𝐀𝐑𝐈𝐌𝐀(𝟏, 𝟏, 𝟏)
Có một mô hình ACF / PACF và các ô mẫu còn lại lặp lại ở độ trễ 7. Điều này cho
thấy mô hình của chúng ta có thể tốt hơn với một đặc tả khác, như 𝑝 = 7 ℎ𝑜ặ𝑐 𝑞 = 7.
Chúng ta có thể lặp lại quá trình phù hợp cho phép thành phần 𝐴𝑅(7) và kiểm tra
lại mô hình chẩn đoán. Lần này, không có hiện tượng tự tương quan đáng kể nào. Nếu
mô hình không được chỉ định chính xác, thì thường sẽ được phản ánh dưới dạng các
xu hướng, độ lệch, hoặc bất kỳ mẫu nào khác không được mô hình nắm bắt. Lý tưởng
nhất, dư lượng sẽ trông giống như nhiễu trắng, có nghĩa là chúng thường được phân
phối. Hàm tsdisplay() có thể được sử dụng để vẽ các mô hình chẩn đoán này. Các mô
hình còn lại cho thấy phạm vi lỗi nhỏ hơn, ít nhiều tập trung xung quanh 0. Chúng ta
có thể quan sát thấy AIC nhỏ hơn đối với cấu trúc (1, 1, 7).
41
Hình 4.18. Mô hình ARIMA (1, 1, 7)
Chúng ta có thể thông qua mô hình trong R để dự báo h giai đoạn trong tương lai,
với tham số h được xác định theo chu kỳ 30 ngày liên tiếp có ghi nhận số liệu cúm của
tập dữ liệu.
Hình 4.19. Mô hình dự báo với hệ số (1, 1, 1)
Đường màu xanh nhạt ở trên cho thấy sự phù hợp do mô hình cung cấp. Một
phương pháp nữa là dự trữ một phần dữ liệu của chúng ta dưới dạng tập hợp "giữ"
(hold-out), phù hợp với mô hình và sau đó so sánh dự báo với các giá trị được quan sát
thực tế.
42
Hình 4.20. Mô hình dự báo
Tuy nhiên, đường màu xanh đại diện cho dự báo có vẻ rất đơn giản, nó đi gần với
một đường thẳng khá sớm, mà dường như không giống với mô hình trong quá khứ của
chuỗi. Nhớ rằng mô hình này, giả sử một chuỗi không có thời vụ và phân biệt dữ liệu
không có tính dừng ban đầu. Nói cách khác, dự đoán được vẽ dựa trên giả định rằng sẽ
không có biến động theo mùa nào khác trong dữ liệu và thay đổi về số lượng cúm từ
ngày này sang ngày khác ít nhiều liên tục về trung bình và phương sai.
Chúng ta thêm lại thành phần theo mùa mà đã trích xuất trước đó. Một cách tiếp
cận khác là cho phép các thành phần (p, d, q) được đưa vào mô hình, đó là một mặc
định trong hàm auto.arima(). Lắp lại mô hình trên cùng một dữ liệu, ta thấy rằng vẫn
có thể có một số mẫu theo mùa trong chuỗi, với thành phần theo mùa được mô tả bởi
𝐴𝑅(1).
Hình 4.21. Mô hình dự báo ARIMA(0, 2, 0)(0, 0, 1)(7)
Lưu ý rằng, các thông số (p, d, q) thay đổi sau khi chúng ta bao gồm một thành
phần theo mùa. Chúng ta có thể trải qua quá trình đánh giá mô hình còn lại và các ô
ACF / PACF và điều chỉnh cấu trúc nếu cần thiết.
Cả hai ước tính dự đoán ở trên được cung cấp với độ tin cậy cao: độ tin cậy 80%
43
được tô bằng màu xanh sẫm hơn và 95% màu xanh nhạt hơn. Dự báo dài hạn thường
sẽ có sự không chắc chắn hơn, vì mô hình sẽ hồi quy Y trong tương lai dựa trên các
giá trị được dự đoán trong quá khứ của chuỗi.
Ta quan sát tập dữ liệu cúm của Argentina được biểu diễn từ năm 2003 đến 2010,
số liệu cúm cũng diễn biến theo như hình dưới đây:
Hình 4.22. Diễn biến dịch bệnh thực tế tại Argentina từ năm 2003 đến 2015
4.6. Đánh giá kết quả
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.19 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
mùa những tháng 1, 2, 3, 4 dịch cúm ở mức thấp ; đến tháng 5, 6, 7, 8, 9 do sự thay đổi
thời tiết khiến dịch bệnh 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ư vậy model ARIMA dự báo được chính xác 80% số trường hợp tăng của dịch
bệnh, trong phần thực nghiệm ta sử dụng tập dữ liệu mẫu số liệu bệnh cúm tại
Arrgentina.
Để rõ hơn về quy luật này ta nhìn vào Hình 4.20. Diễn biến dịch bệnh tại Argentina
từ năm 2003 đến 2015, số liệu được biến thiên đều đặn hàng năm theo biểu đồ hình sin
từ năm 2003 đến 2011.
Tóm tắt chương 4
Chương 4 luận văn tiến hành thực nghiệm phân tích tập dữ liệu dịch bệnh cúm của
Google Flu Trends trên R, thông qua mô hình ARIMA và đưa ra dự báo dữ liệu từ tập
dữ liệu cúm của Argentina. Qua kết quả phân tích và đối chiếu mô hình dự báo với dữ
2003-02-02 2004-02-15 2005-02-27 2006-03-12 2007-03-25 2008-04-06 2009-04-19 2010-05-02 2011-05-15 2012-05-27 2013-06-09 2014-06-22 2015-07-05
10
02
00
30
04
00
44
liệu thực tế cho thấy tỷ lệ chính xác lên 95%, qua đó có thể thấy độ tin cậy của kết quả
dự đoán trong phần thực nghiệm.
45
KẾT LUẬN
1. Các kết quả đạt được
Để nghiên cứu bài toán ứng dụng khai phá dữ liệu trong y tế dự phòng, học viên
đã tập trung nghiên cứu các khái niệm về y tế dự phòng, thực trạng về nhu cầu trong
việc quản lý, phân tích và dự báo đươc dịch bệnh trên tập số liệu được báo cáo.
Bên cạnh đó, học viên cũng nghiên cứu, tìm hiểu một số phương pháp khai phá
dữ liệu hiện nay. Cùng với đó là đề xuất một số phương pháp khai dữ liệu phù hợp với
tập dữ liệu dịch bệnh cúm do Google công bố.
Dựa trên nghiên cứu đó luận văn đề xuất một mô hình dự báo dịch bệnh truyền
nhiễm dựa trên tập dữ liệu thời gian. Luận văn cũng tiến hành cài đặt thực nghiệm một
tập dữ liệu được trích xuất trong tập dữ liệu của một quốc gia. Dựa vào kết quả phân
tích, dự báo như đã trình bày trong phần thực nghiệm, lấy đó làm cơ sở cho cho xây
dựng các bài toán dự báo tình hình dịch bệnh.
2. Hướng nghiên cứu tiếp theo
Trong khuôn khổ luận văn này, tôi mới chỉ dừng lại ở việc phân tích chuỗi dữ
liệu thời gian và đưa ra dự báo dựa vào xu hướng dữ liệu trên thực nghiệm trong mô
hình đó, đánh giá kết quả dự báo trên tập dữ liệu so với số liệu thực tế.
Trong thời gian tới, tôi sẽ tiếp tục thực nghiệm các tập dữ liệu còn lại trong tập
dữ liệu được công bố, đồng thời xem xét hướng nghiên cứu bổ sung nhằm phân tích,
đánh giá các quy luật diễn biến dịch bệnh cúm trên toàn cầu dự trên các đặc điểm thời
gian, địa lý, điều kiện thời tiết để nâng cao độ chính xác và giảm thiểu việc bỏ sót các
cặp quan hệ trong chuỗi dữ liệu thời gian.
46
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1] Nguyễn Minh Sơn - Dịch tễ học, Nhà xuất bản Giáo dục 2012.
Tiếng Anh
[2] Centers for Disease Control and Prevention (CDC USA) - Principles of
epidemiology in public health practice, Third edition 2012. 2
[3] Dorland - Dorland's Illustrated Medical Dictionary 32nd Edition, 2011.
[4] Chi-Chen Wang. “A comparision study between fuzzy time series model and
ARIMA model for forecasting Taiwan export”. Expert Systems with Applications,
vol.38, no.8, pp.9296-9304, 2011.
[5] Hippocrates - On airs, waters, and places written 400 B.C.E (Translated by
Francis Adams).
[6] Han, Jiawei, Jian Pei, and Micheline Kamber. Data mining: concepts and
techniques. Elsevier, 2011.
[7] K. Senthamarai Kannan and E. Sakthivel. “Fuzzy Time Series Model and
ARIMA Model – A Comparative Study”. Indian Journal of Applied Research, vol.4,
no.8, pp.624-636, 2014.
[8] LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. "Deep learning." Nature
521.7553 (2015): 436-444.
[9] R. Bonita, R. Beaglehole, Tord Kjellström - Basic epidemiology 2nd edition,
World Health Organization.
[10] Shasha, D., High Performance Discovery in Time Series, Berlin:
Springer, ISBN 0387008578, 2004.
[11] Verikas, Antanas, Adas Gelzinis, and Marija Bacauskiene. "Mining data
with random forests: A survey and results of new tests." Pattern Recognition 44.2
(2011): 330-349.
[12] https://www.cs.waikato.ac.nz
[13] https://www.spss-tutorials.com/spss-what-is-it
[14] https://www.r-project.org
[15] https://www.britannica.com/science/preventive-medicine.
47
PHỤ LỤC
1. Gọi thư viện: ggplot2, forecast, tseries, lubridate.
> library('ggplot2')
> library('forecast')
> library('tseries')
> library(lubridate)
2. Cài đặt thư viện:
> install.packages("lubridate")
3. Nạp tập dữ liệu:
> d<-read.csv("dataArgentina.csv", head=T)
> d
4. Trích xuất dữ liệu của một năm bất kỳ trong tập d với dữ liệu của năm
2004 của Argentina.
> Nam2004 <- d[format(as.Date(d$Date, format = '%m/%d/%Y'), '%Y')==2004,]
> Nam2004
5. Xây dựng sơ đồ diễn biến số liệu năm 2004 của Argentina.
> Nam2004$Date = as.Date(Nam2004$Date)
> ggplot(Nam2004, aes(Date, Argentina))+ geom_line()+ scale_x_date('month')+
ylab("Số ca mắc cúm")+xlab("thời gian")
6. Làm mịn tập dữ liệu:
> count_sc = ts(Nam2004[, c('Argentina')])
> Nam2004$clean_scm = tsclean(count_sc)
> Nam2004
7. Vẽ biểu đồ với tập dữ liệu Nam2004 sau khi được xử lý qua hàm tsclean():
> ggplot() + geom_line(data = Nam2004, aes(x = Date, y = clean_scm))
+ylab('Số ca mắc cúm (Cleaned)')
8. 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ự đoán được:
> Nam2004$cnt_ma = ma(Nam2004$clean_scm, order=7) #sử dụng số tại cột
clean_scm đã được loại bỏ ngoại lệ
> Nam2004$cnt_ma30 = ma(Nam2004$clean_scm, order=30)
> ggplot() + geom_line(data = Nam2004, aes(x = Date, y = clean_scm, colour
48
="Counts")) + geom_line(data = Nam2004, aes(x = Date, y = cnt_ma30, colour = "Di
chuyển trượt hàng tháng")) + ylab('Số ca bệnh mắc')
9. 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ụ:
> count_sm = ts(na.omit(Nam2004$cnt_ma), frequency=7)
> decomp = stl(count_sm, s.window="periodic")
> deseasonal_scm <- seasadj(decomp)
> plot(decomp)
10. Sử dụng ADF để kiểm tra tính dừng của chuỗi thời gian:
> adf.test(count_sm, alternative = "stationary")
11. Biểu diễn sơ đồ dữ liệu với ACF và PACF:
> Acf(count_sm, main='')
> Pacf(count_sm, main='')
12. Kiểm tra sơ đồ với d = 1:
> count_d1 = diff(deseasonal_scm, differences = 1)
> plot(count_d1)
> adf.test(count_d1, alternative = "stationary")
13. Biểu diễn sơ đồ dữ liệu với ACF và PACF với d = 1:
> Acf(count_d1, main='ACF for Differenced Series')
> Pacf(count_d1, main='PACF for Differenced Series')
14. Biểu diễn mô hình ARIMA:
> auto.arima(deseasonal_scm, seasonal=FALSE)
> fit<-auto.arima(deseasonal_scm, seasonal=FALSE)
> tsdisplay(residuals(fit), lag.max=45, main='(1,1,1) Model Residuals')
> fit2 = arima(deseasonal_scm, order=c(1,1,7))
15. Biểu diễn mô hình dự báo:
> fcast <- forecast(fit2, h=30)
> plot(fcast)