DSinRL: Phân tích tình hình Covid-19 tại Nhật Bản

Chào mọi người, lại là mình, SuNT đến từ team AI VTI-VN!

Nhật Bản là một trong những quốc gia phải gánh chịu hậu quả nặng nề của đại dịch Covdid-19. Tính từ tháng 03/2020 đến này đã có hơn một triệu ca mắc Covid-19, hàng trăm nghìn người phải nhập viên, và hàng chục nghìn người tử vong. Những con số còn lớn hơn cả thiệt hai của trận sóng thần năm 2011.

Trong bài hôm nay, chúng ta sẽ cùng nhau phân tích cụ thể, chi tiết hơn về tình hình này thông qua các bảng biểu đồ thị, nhận xét, đánh giá. Dữ liệu để phân tích là dữ liệu thực tế được cập nhật đến ngày 22/08/2021.

Nội dung bài viết bao gồm các phần:

  • Chuẩn bị và tìm hiểu dữ liệu.
  • Phân tích dữ liệu: phần này sẽ được chia thành 4 hạng mục nhỏ hơn:
    • Phân tích dữ liệu trên toàn lãnh thổ Nhật Bản theo 3 khu vực: Nội địa, Sân bay và Khu vực cách ly những người từ nước ngoài trở về.
    • Phân tích dữ liệu chi tiết khu vực nội địa.
    • Phân tích dữ liệu trên toàn lãnh thổ Nhật Bản theo 47 tỉnh thành phố.
    • Phân tích dữ liệu chi tiết tại thành phố Tokyo.

OK, hãy cùng bắt đầu!

1. Chuân bị dữ liệu

Trước tiên, hãy download dữ liệu tại đây và tại đây.

Có tất cả 5 files như mô tả trong bảng sau:

STT Tên file Mô tả Cập nhật mới nhất Ghi chú
1 covid_jpn_total.csv Thống kê số lượng người mắc bênh, tử vong, cần nhập viện, ... theo 3 khu vực: Nội địa, sân bay và khu vực cách ly người trở về. 22-8-2021 Không bao gồm bệnh nhân trên tàu Diamond Princess (Yokahama) và tàu Costa Atlantica (Kanasaki)
2 covid_jpn_prefecture.csv Thống kê số lượng người mắc bênh, tử vong, cần nhập viện, ... theo từng tỉnh, thành phố. 21-8-2021 Không bao gồm bệnh nhân trên tàu Diamond Princess (Yokahama) và tàu Costa Atlantica (Kanasaki)
3 covid_jpn_metadata.csv Một số thông tin bổ sung như mật độ dân cư, số giường bệnh, ... của mỗi tỉnh, thành phố. 22-8-2021
4 tokyo_cases_byarea.csv Thống kê số lượng người mắc bệnh theo từng quận của Tokyo. 09-01-2021
5 tokyo_covid19_patients.csv Thống kê thông tin về giới tính, độ tuổi, tình trạng sức khỏe của các bệnh nhân ở Tokyo. 09-01-2021

Hơi tiếc một chút là hai file cuối cùng chỉ được cập nhật đến ngày 09-01-2021.

Số liệu thống kê trong mỗi ngày là kết quả tích lũy từ những ngày trước đó.

Chi tiết từng trường thông tin trong mỗi file như sau:

  • File covid_jpn_total.csv:
STT Tên Feature Ý nghĩa
1 Date Ngày thu thập dữ liệu
2 Location Nơi kiểm tra: Domestic, Airport hoặc Returnee
3 Positive Số ca duơng tính
4 Tested Số lượng người được thử nghiệm
5 Symptomatic Số ca bệnh có triệu chứng rõ ràng
6 Asymptomatic Số ca bệnh không có triệu chứng rõ ràng
7 Sym-unknown Số ca bệnh mà không biết có triệu chứng hay không
8 Hosp_require Số ca bệnh cần nhập viện điều trị
9 Hosp_mild Số ca bệnh có triệu chứng nhẹ
10 Hosp_severe Số ca bệnh trong tình trạng nguy kịch
11 Hosp_unknown Số ca bệnh mà không biết có triệu chứng hay không
12 Hosp_waiting Số ca bệnh cần nhập viện nhưng không được đáp ứng
13 Discharged Số ca khỏi bệnh được xuất viện
14 Fatal Số người tử vong
15 Vacinated_1st Số người được tiêm vacine mũi thứ nhất
16 Vacinated_2nd Số người được tiêm vacine mũi thứ hai
  • File covid_jpn_prefecture.csv:
STT Tên Feature Ý nghĩa
1 Date Ngày thu thập dữ liệu
2 Prefecture Tên tỉnh thành (47 tỉnh, thành phố)
3 Positive Số ca duơng tính
4 Tested Số lượng người được thử nghiệm
5 Discharged Số ca khỏi bệnh được xuất viện
6 Fatal Số ca bệnh tử vong
7 Hosp_require Số ca bệnh cần nhập viện điều trị
8 Hosp_severe Số ca bệnh trong tình trạng nguy kịch
  • File covid_jpn_metadata.csv:
STT Tên Feature Ý nghĩa
1 Prefecture Tên tỉnh thành (47 tỉnh, thành phố)
2 Category Các nhóm thông tin: Dân số, Giường bệnh, ...
3 Item Sub-category: Total, Care, ...
4 Value Giá trị tuơng ứng với các categories, sub-categories
5 Date Ngày thu thập dữ liệu
6 Primary_source Nguồn thu thập dữ liệu thứ nhất
7 Secondary_source Nguồn thu thập dữ liệu thứ hai
  • File tokyo_cases_byarea.csv:
STT Tên Feature Ý nghĩa
1 #No Số thứ tự
2 Date Ngày thu thập dữ liệu
3 Date (Onset) Ngày bắt đầu có triệu chứng
4 Region Khu vực nơi mà bệnh nhân sinh sống
5 Age Độ tuổi của bệnh nhân
6 Gender Giới tính của bệnh nhân
7 Situation Tình trạng của bệnh nhân
  • File tokyo_covid19_patients.csv:
STT Tên Feature Ý nghĩa
1 Are Khu vực mà thành phố thộc về: Tama area, Special ward area
2 Municipality Tên thành phố
3 Positive Case Số ca duơng tính
4 Region Khu vực nơi mà bệnh nhân sinh sống
5 Code Mã thành phố

2. Phân tích dữ liệu

2.1 Phân tích dữ liệu trên toàn lãnh thổ Nhật Bản

Đầu tiên, import các thư viện cần thiết:

a, Load dữ liệu
  • Load dữ liệu từ file csv và hiển thị một vài dữ liệu mẫu
  • Hiển thị thông tin chi tiết hơn dữ liệu

Ta thấy có 16 features như trong phần mô tả bên trên. Điều cần chú ý ở đây là đa số các features đều có missing data. Thậm chí một số features có số lượng missing data rất lớn, vượt quá 50%: Symptomatic, Asymptomatic, Sym-unknown, Hosp_mild, Hosp_unknown, Hosp_waiting, Vaccinated_1st, Vaccinated_2nd. Ta sẽ cần giải quyết vấn đề này trong phần Data Cleaning trước khi tiến hành phân tích.

b, Data Cleaning

Đầu tiên, tạo một bản sao của dữ liệu gốc. Đây là dữ liệu mà ta sẽ làm việc trên đó:

Tiếp theo, tiến hành một số bước làm sạch dữ liệu như sau:

  • Loại bỏ tất cả các hàng mà toàn bộ giá trị của nó đều là Null/NaN.
  • Loại bỏ tất cả các features mà chứa số lượng missing data vượt quá 50%:
  • Đặt lại tên cho các features để cho dễ hiểu hơn:
  • Chuyển feature 'Date' từ dạng Object sang dạng Datetime để dễ dàng thực hiện các theo tác về sau:
  • Bổ sung thêm các ngày còn thiếu vào dữ liệu

Không phải tất cả các ngày đều có mặt trong dữ liệu. Để cho đầy đủ, ta sẽ thêm chúng vào bằng cách sử dụng kỹ thuật Resample dữ liệu theo ngày.

  • Sắp xếp lại dữ liệu theo chiều giảm dần giá trị của feature 'Date'
  • Thay thế các missing data bởi các giá trị sinh ra bằng phương pháp nội suy::
  • Tạo ra một feature mới là tỉ lệ giữa số ca dương tính trên số người được xét nghiệm. Feature này được sử dụng thay thể cho feature 'Tested' bởi vì các giá trị của feature 'Tested' thường lớn hơn rất nhiều lần so với các giá trị của các features khác. Điều này làm cho việc so sánh trên đồ thị không thực sự mang lại nhiều thông tin.
  • Cuối cùng là xóa feature 'Tested'.
c, Tiến hành EDA
  • So sánh sự thay đổi về số ca mắc Covid-19 tại 3 khu vực: Domestic, Airport, và Returnee
  • Quan sát thấy số cả dương tính trong ngày 13/08/2021 tại khu vực Domestic cao một các bất thường. Khả năng cao là có sự nhầm lẫn ở đây. Vì vậy, cách tốt nhất là loại bỏ nó đi để tránh làm Outlie dữ liệu:
  • Đồ thị thể hiện

Khu vực nội địa của Nhật Bản có sự tăng về só ca nhiễm Covid-19 nhanh nhất so với các khu vực còn lại.

  • So sánh sự thay đổi về số lượng bệnh nhân Covid-19 tử vọng tại 3 khu vực: Domestic, Airport, và Returnee

Rất dễ hiểu khi số ca bệnh không qua khỏi tại khu vực Domestic tăng nhanh nhất so với các khu vực còn lại, phù hợp với logic bên trên.

2.2 Phân tích chi tiết dữ liệu trong khu vực nội địa của Nhật Bản

a,b Load Data & Date Cleaning

Hai phần này giống hệt mục 2.1 vì phần này sử dụng chung file dataset với phần 2.1.

c, Tiến hành EDA
  • Đầu tiên, lựa chọn những mẫu dữ liệu thuộc khu vực Domestic:
  • Chuyển Date feature thành index của dataset để thuận tiện trong việc vẽ biểu đồ:
  • So sánh sự thay đổi về số ca dương tính, số ca dương tính trên số ca xét nghiệm, số ca tử vong, số ca cần nhập viện, số ca có triệu chứng nặng, và số ca khỏi bệnh được xuất viện

Đồ thị dạng Line:

Nhận thấy số ca dương tính và số bệnh nhân được chữa khỏi đều tăng nhanh, nhưng khoảng cách giữa hai nhóm được duy trì khá tốt. Đây có thể coi làm một tín hiệu đáng mừng.

Đồ thị dạnh Bar trong video:

  • Để có cái nhìn rõ hơn về sự thay đổi của từng nhóm người bên trên, ta có thể thể hiện riêng số liệu của các nhóm đó lên đồ thị. Ví dụ:

Số ca tử vong cũng tăng rất nhanh, liên tục từ 03/2020 đến hiện tại, đặc biệt là từ đầu năm 2021.

Số lượng người bệnh cần nhập viện có lúc tăng, lúc giảm nhưng xu hướng chung đến hiện tại vẫn là tăng.

Tỉ lệ giữa số ca dương tính và số người được xét nghiệm có xu hướng giảm từ 03/2020 đến 07/2020, sau đó duy trì ở mức tương đối ổn định đến nay.

  • Phân tích tình hình hiện tại (ngày 22/08/2021)

So sánh số ca dương tính, số ca dương tính trên số ca xét nghiệm, số ca tử vong, số ca cần nhập viện, số ca có triệu chứng nặng, và số ca khỏi bệnh được xuất viện

Tính đến ngày 21/08/2021, tổng số ca dương tính được ghi nhận là 1273652, số ca chữa khỏi là 1048617, số bênh nhân cần nhập viện là203540, và số bệnh nhân tử vong là 15589.

2.3 Phân tích dữ liệu của 47 tỉnh, thành phố.

Import thư viện:

a, Load dữ liệu
  • Load dữ liệu từ file csv và hiển thị ví dụ một số mẫu
  • Hiển thị thông tin về các features:
  • Hiển thị danh sách 47 tỉnh:
b, Data Cleaning
  • Tạo một bản copy của dữ liệu gốc:
  • Đổi tên các features để cho dễ nhớ hơn:
  • Xóa các hàng mà toàn bộ giá trị là missing data:
  • Chuyển feature 'Date' sang dạng DateTime để thuận tiện xử lý về sau:
  • Bổ sung thêm các ngày còn thiếu vào dữ liệu

Không phải tất cả các ngày đều có mặt trong dữ liệu. Để cho đầy đủ, ta sẽ thêm chúng vào bằng cách sử dụng kỹ thuật Resample dữ liệu theo ngày.

  • Sắp xếp lại dữ liệu theo chiều giảm dần giá trị của feature 'Date'
  • Thay thế các missing data bởi các giá trị sinh ra bằng phương pháp nội suy::
c, Tiến hành EDA
  • So sánh sự thay đổi về số ca dương tính của 47 tỉnh, thành theo thời gian.

Tất cả các tỉnh thành đều chứng kiến sự tăng về số ca dương tính với Covid-19. Trong đó, Tokyo là thành phố có tốc độ tăng nhanh nhất so với các tình thành còn lại.

  • So sánh sự thay đổi về số người chết vì Covid-19 của 47 tỉnh, thành theo thời gian.

Tương ứng với số ca dương tính thì số người chết cũng có xu hướng tăng ở cả 47 tỉnh, thành. Từ tháng 03/2020 đến nửa đầu tháng 06/2021, Tokyo luôn có số ca bệnh tử vong cao nhất cả nước, nhưng sau đó thì Osaka đã vượt lên dẫn đầu.

  • So sánh sự thay đổi về số bệnh nhân khỏi bệnh được xuất viện của 47 tỉnh, thành theo thời gian.

Tokyo vẫn là địa phương dẫn đầu và bỏ khá xa các địa phương khác về co số này. Sau Tokyo là Osaka.

$$$ Phân tích số liệu mới nhất (ngày 21/08/2021)

  • Chọn ra các số liệu ghi nhận trong ngày 21/08/2021 của 47 tỉnh, thành.
  • Thêm mới feature 'Dead Rate' thể hiện tỉ lệ giữa số người chết và số người mắc bệnh.
  • Sắp xếp dữ liệu theo chiều giảm dần của số ca dương tính.
  • So sánh số lượng bênh nhân Covid-19 giữa các tỉnh, thành:

Hiện tại thì Tokyo đang có số ca bệnh Covid-19 lớn nhất, gần gấp đôi con số của địa phương xếp ngay sau là Osaka.

  • So sánh số người chết giữa các tỉnh, thành:

Tuy nhiên, đáng ngạc nhiên là con số người chết tại Osaka lại vượt lên Tokyo.

  • So sánh số người phải nhập viện vì Covid-19 giữa các tỉnh, thành:

Số bệnh nhân cần nhập viện điều trị tại Tokyo cũng đang là rất lớn, lên đến hơn 40.000 ca, gần gấp đôi so với Saitama.

  • So sánh tỉ lệ giữa số ca tử vong và số ca bệnh:

Về tỉ lệ này thì địa phương đứng đầu là Tokushima, tiếp theo là Hokkaido.

2.3_* Phân tích dữ liệu của 47 tỉnh thành phố, về mật độ dân cư và số giường bệnh (Mở rộng)

Trong dataset của chúng ta còn có một file chứa thông tin về dân cư và cơ sở hạ tầng ý tế của các tỉnh thành ở Nhật Bản. Mặc dù dữ liệu hơi cũ (thống kê từ năm 2020) nhưng cũng đáng để chúng ta xem xét.

Import thư viện sử dụng:

a, Load dữ liệu
  • Load dữ liệu từ file csv và hiển thị một vài dữ liệu
  • Hiển thị thông tin chi tiết hơn của dữ liệu
b, Data Cleaning
  • Tạo bản sao của dữ liệu gốc:
  • Xóa bỏ 2 features có nhiều missing data, và không có nhiều ý nghĩa trong phân tích lần này:
  • Hợp nhất hai features 'Category' và 'Item' thành feature mới là 'Title' bởi vì chúng mang ý nghĩa tương tự nhau:
  • Chuyển feature 'Date' sang dạng DateTime và sắp xếp dữ liệu theo chiều giảm của nó:
  • Tạo bảng pivot_table chỉ chứa thông tin dùng để phân tích trong bài này: Prefecture, Title, và Value
  • Chuyển một số features tự dạng object về dạng integer/float để thuận tiện xử lý
c, Tiến hành EDA
  • So sánh mật độ dân cư trên tổng diện tích, mật độ dân cư trên diện tích có khả năng sinh sống của 47 tỉnh, thành.
  • So sánh số giường bệnh có thể điều trị bênh nhân Covid-19 của 47 tỉnh, thành

2.4 Phân tích dữ liệu tại Tokyo

Dữ liệu tại Tokyo nằm chung trong file covid_jpn_prefecture.csv, nên phần load và làm sạch dữ liệu giống như phần 2.3. Sau đó, ta sẽ lọc ra các mẫu thuộc Tokyo để phân tích.

a, Load dữ liệu
b, Data Cleaning
  • Lọc danh sách mẫu dữ liệu thuộc khu vực Tokyo:
  • Thêm mới feature Positive_Tested_Rate thể hiện tỉ lệ giữa số ca mắc Covid-19 trên số lượng người được xét nghiệm.
c, Tiến hành EDA
  • Hiển thị danh sách dữ liệu dạng bảng:
  • So sánh sự thay đổi về số ca dương tính, tỉ lệ mắc Covid-19 trên số người được xét nghiệm, số bệnh nhân khỏi bệnh được xuất viện, số ca tử vong theo thời gian:

Nhận thấy số ca dương tính và số bệnh nhân được công bố khỏi bệnh tăng tương đối đều nhau, khoảng cách giữa chúng được duy trì khá ổn đỉnh. Đây có thể xem là tín hiệu tốt.

  • Sự thay đổi của số ca dương tính theo thời gian

Số người dương tính với Covid-19 đang tăng cao, đặc biệt là từ đầu năm 2021 đến nay.

  • Sự thay đổi về số lượng người được xét nghiệm Covid-19

Con số này cũng tăng rất nhanh, gần như là tuyến tính. Có lẽ Tokyo đang tăng cường, tập trung xét nghiệm để bóc tách F0 ra khỏi cộng đồng.

  • Sự thay đổi về tỉ lệ giữa số ca mắc Covid-19 và số người được xét nghiệm

Từ tháng 03/2020 đến tháng 06/2020, tỉ lệ này rất cao, khoảng 0.35. Từ tháng 07/2020 trở đi thì tỉ lệ này giảm và duy trì trong khoảng 0.06 đến 0.09. Đây cũng là một tín hiệu tích cực.

  • Sự thay đổi về số lượng bệnh nhân nặng, cần nhập viện điều trị

Bình thường nếu F0 không có triệu chứng, hoặc triệu chứng nhẹ thì sẽ được cách ly và theo dõi tại nhà. Nếu trở nặng thì sẽ được nhập viện để điều trị tích cực. Con số này tăng vọt vào tháng 02/2021 và hiện tại (08/2021).

  • Sự thay đổi về số người được chữa khỏi.

Số người được công bố hết bệnh tăng tương tự với số người mắc Covid-19.

  • Sự thay đổi về số lượng người chết vì Covid-19

Đối với thống kê này, có thể thấy từ cuối tháng 02/2021 đến nay, số lượng người chết tăng rất nhanh. Hiện tại đã lên đến gần 3000 người.

  • Phân tích số liệu hiện tại của Tokyo

Lấy dữ liệu trong ngày thống kê mới nhất, 21/08/2021:

Thể hiện kết quả lên đồ thị Pie:

Thể hiện kết quả lên đồ thị Bar:

Theo thống kê mới nhất vừa cập nhật cách đây khoảng 2h cho ngày 21/08/2021 thì số ca dương tính là 307870, số người được xét nghiệm là 3119292, số bệnh nhân được công bố khỏi bệnh là 260043, và số người cần nhập viện điều trị là 45456.

2.4_a Phân tích dữ liệu thông tin bệnh nhân tại Tokyo

Thông tin chi tiết về các bệnh nhân mắc Covid-19 được lưu ở một file dữ liệu riêng. Thông tin này được cập nhật đến ngày 02/02/2021. Ta sẽ đi phân tích nó.

Import thư viện sử dụng:

a, Load dữ liệu
  • Load dữ liệu từ file csv và hiển thị một vài dữ liệu
  • Hiển thị thông tin chi tiết hơn về dữ liệu
b, Data Cleaning
  • Tạo một bản sao của dữ liệu gốc
  • Xóa feature Date (Onset) bởi vì nó là dữ liệu bị missing quá nhiều
  • Chuyển feature Date sang dạng DateTime để thuận tiện xử lý
  • Thay thể các missing data bằng các giá trị mới sinh ra bằng phương pháp nội suy
c, Tiến hành EDA
  • Phân tích tuổi của bệnh nhân

Có thể số bênh nhân trong độ tuổi 20-30 chiếm tỉ lệ lớn nhất. Tỉ lệ này giảm dần khi số tuổi tăng lên. Người trên 100 tuổi vẫn có nguy cơ mắc Covid-19. Không thấy báo cáo về tỉ lệ nhiễm bệnh của trẻ em và thanh thiếu nên dưới 20 tuổi.

  • Phân tích giới tính của bệnh nhân

Nam giới dường như có nguy cơ mắc Covid-19 nhiều hơn so với nữ giới, mặc dù co số chênh lệch không quá lớn.

2.4_b So sánh số ca mắc Covid-19 tại 23 quận của Tokyo

Dữ liệu về Covid-19 tại các quận của Tokyo cũng được thống kê trong một file khác. Tuy nhiên, nó chỉ cập nhật đến tháng 01/2021. Ta sẽ đi phân tích nó.

Import thư viện sử dụng:

a, Load dữ liệu
  • Load dữ liệu từ file csv và hiển thị một vài dữ liệu
  • Hiển thị thông tin chi tiết hơn dữ liệu
  • Ta cũng load thêm thông tin địa lý về các quận của Tokyo phục vụ mục đích hiển thị dữ liệu lên bản đồ.
b, Data Cleaning

Các dữ liệu trong file csv không có missing data, nên ta chỉ cần bỏ đi feature không cần thiết và sắp xếp lại dữ liệu.

  • Tạo bản sao của dữ liệu gốc
  • Loại bỏ feature Area bởi vì ta sẽ không cần dùng đến nó
  • Sắp xếp lại dữ liệu theo chiều giảm dần của số ca dương tính với Covid-19
  • Đối với dữ liệu về địa lý thì cần phải chỉnh lý một chút theo khuyến nghị từ tác giả:
c, Tiến hành EDA
  • So sánh số ca mắc Covid-19 tại 23 quận trên bảng dữ liệu:
  • So sánh số ca mắc Covid-19 tại 23 quận trên đồ thị Bar:
  • So sánh số ca dương tính với Covid-19 trên bản đồ:

Setagaya đang là quận có số ca mắc Covid-19 cao nhất, tiếp sau đó là Shinjuku.

3. Kết luận

Vậy là chúng ta đã hoàn thành việc phân tích dữ liệu thống kê về tình hình Covid-19 tại Nhật Bản. Đây là dữ liệu thực tế, cập nhật nóng hổi đến hiện tại giúp chúng ta có thể áp dụng những kiến thức về Data Science vào trong bài toán thực tế. Mình nghĩ là có khá nhiều kiến thức thú vị mà bạn đã học được thông qua bài này. Cảm ơn các bạn đã theo dõi!

Toàn bộ code của bài này, các bạn có thể tham khảo tại đây.

4. Tham khảo

[1] SuNT, "Phân tích tình hình Covid-19 tại Nhật Bản", Available online: https://tiensu.github.io/blog/104_eda_covid_in_japan/ (Accessed on 22 Aug 2021).

Leave a Reply