Môi trường, cấu hình hệ thống và công cụ

Một phần của tài liệu (LUẬN văn THẠC sĩ) khai phá dữ liệu và ứng dụng trong y tế dự phòng luận văn ths công nghệ thông tin 84802 (Trang 45)

CHƯƠNG 4 THỰC NGHIỆM VÀ ĐÁNH GIÁ

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

Đầ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 Bước 1: Lựa chọn dữ liệu

Trong tập dữ liệu được nạp d là dữ liệu từ năm 2003 đến năm 2015, dữ liệu được thu thập và có biến động tại các thời điểm khác nhau trong mỗi năm và từ năm này qua năm khác. Tuy nhiên, với sự biến động dữ liệu này, bằng trực quan cũng có thể nhận

thấy một số mẫu dữ liệu, ví dụ: số ca mắc cúm thường tăng cao vào những tháng 5, 6, 7 hàng năm. Để dự đoán được xu hướng diễn biến dịch cúm trong một năm, ta tiến hành trích xuất dữ liệu của một năm bất kỳ trong tập d, cụ thể dữ liệu của năm 2004.

Hình 4.6. Tập dữ liệu cúm của Argentina năm 2004

Ta trích lấy mẫu dữ liệu của Argentina được thu thập vào năm 2004 để tự đánh giá diễn biến của mô hình dữ liệu trong một năm của dịch cúm. Xây dựng sơ đồ diễn biến ta thấy số liệu có sự biến đổi theo các tháng trong năm, tập trung cao điểm vào các tháng 5, 6 và có sự suy giảm vào các tháng khác.

Hình 4.7. Diễn biến cúm năm 2004 của Argentina theo tháng

Với số liệu được trình diễn bằng sơ đồ ta có thể thấy rằng diễn biến dịch bệnh được thay đổi theo thời gian và có chu kỳ diễn biến nhất định. Tại Hình 4.7, sơ đồ biểu diễn dịch bệnh cúm mùa của Argentina năm 2004, số ca mắc được phân bổ như sau: vào những tháng 1, 2, 3, 4 dịch cúm ở mức thấp; đến tháng 5, 6, 7, 8, 9 số ca mắc tăng vọt và giảm dần vào cuối năm từ tháng 10, 11, 12. Chu kỳ biến động dịch bệnh cũng được lặp đi lặp lại từ năm này qua năm khác. Từ phép phân tích trên có thể nhận thấy chu kỳ tăng, giảm của bệnh dịch qua đó sẽ đưa ra dự báo cho thời diểm trong tương lai.

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:

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ịn4.5.2. Phân tách dữ liệu 4.5.2. Phân tách dữ liệu

Bước 4: Khai phá dữ liệu

Các thành phần được xây dựng của 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ỳ

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.

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

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.

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 độngauto.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).

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 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ả 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

Một phần của tài liệu (LUẬN văn THẠC sĩ) khai phá dữ liệu và ứng dụng trong y tế dự phòng luận văn ths công nghệ thông tin 84802 (Trang 45)

Tải bản đầy đủ (PDF)

(63 trang)