Представьте, что вы начали планировоать свое путешествие по Европе, но ваша заинтересованность о распространенности вируса сподвигла вас на мысль об исследовании актуальных данных о распространении и опасности этого вируса в странах ЕС. Таким образом, вы поставили себе задачу ответить на несколько актуальных вопросов, ответы на которые будут представлены ниже.

Предупреждения:

  1. Решение данного задания не требует предварительной подготовки и опыта работы с языком R, но авторы постарались поделиться с вами новым форматом, который может стать эффективным введением в концепцию отчетов в RMarkdown

  2. Предоставленные нами данные могут немного иметь немного другое содержание в силу повседневного обновления таблицы на сайте, поэтому не волнуйтесь, если будут какие-то незначительные несовпадения в полученных расчетах

Данные и пакеты

Данные по распространению covid-19 в странах ЕС. Каждая строка - это данные за день о количествах заражений и летальных исходов в определенной стране.

dateRep - дата наблюдения

country_name - название страны

cases - количество случаев заражений в указанную дату в стране из колонки country_name

deaths - количество летальных исходов в указанный день в стране из колонки country_name

library(utils)
library(dplyr)
library(stringr)
library(ggplot2)

data <- read.csv("https://opendata.ecdc.europa.eu/covid19/nationalcasedeath_eueea_daily_ei/csv", na.strings = "", fileEncoding = "UTF-8-BOM")

Предобработка данных

В данном пункте мы объединили исходный датасет с датасетом с информацией о площадях всех стран мира после сохранения только тех наблюдений, которые соответствуют самому последнему году обновления датасета (2018).

P.S данные в датасете land-area-km.csv представлены в динамичном формате, начиная с 1961 года

Предупреждение От вас не ожидается предобработка данных, так как предобработанный и исходный датасеты предоставлены нашими авторами вместе с условием задачи

Именно объеденененный датасет был предоставлен вам в комплекте с двумя исходными для того, чтобы у вас была возможность свободного выбора данных для работы и эффективного переключения между ними.

data_2 = read.csv('land-area-km.csv', sep = ',')

names(data)[names(data) == 'countriesAndTerritories'] <- 'country_name'
names(data_2)[names(data_2) == 'Entity'] <- 'country_name'

data_compiled = data %>% inner_join(data_2, on = 'country_name') %>% filter(Year == 2018)

Ответы на вопросы

Вопрос-1 Определить топ-5 стран по абсолютной и относительной смертностям и сравнить результаты

P.S Относительная смертность = смертность/количество случаев

Давайте ранжируем страны по абсолютной смертности (сумма показателей смертности по странам) и придём к такому выводу:

Топ-5 стран по смертности:

  1. Италия

  2. Франция

  3. Германия

  4. Испания

  5. Польша

data %>% group_by(country_name) %>% summarize(cases_total = sum(cases), deaths_total = sum(deaths)) %>% arrange(-deaths_total) %>% top_n(5)
## # A tibble: 5 x 3
##   country_name cases_total deaths_total
##   <chr>              <int>        <int>
## 1 Italy            4641890       130421
## 2 France           6964699       116251
## 3 Germany          4160970        93123
## 4 Spain            4937984        85983
## 5 Poland           2899008        75503

Топ-5 стран по относительной смертности:

  1. Болгария

  2. Венгрия

  3. Румыния

  4. Италия

  5. Польша

data %>% group_by(country_name) %>% summarize(deaths_rel = sum(deaths)/sum(cases)) %>% arrange(-deaths_rel) %>% top_n(5)
## # A tibble: 5 x 2
##   country_name deaths_rel
##   <chr>             <dbl>
## 1 Bulgaria         0.0416
## 2 Hungary          0.0368
## 3 Romania          0.0308
## 4 Italy            0.0281
## 5 Poland           0.0260

Вопрос 2 Определить топ-5 стран по средней смертности

Ответ совпадает с рейтингом стран по абсолютной сметртности

data %>% group_by(country_name) %>% summarize( deaths_avg = mean(deaths)) %>% arrange(-deaths_avg) %>% top_n(5)
## # A tibble: 5 x 2
##   country_name deaths_avg
##   <chr>             <dbl>
## 1 Italy              633.
## 2 France             564.
## 3 Germany            452.
## 4 Spain              417.
## 5 Poland             367.

Вопрос 3 Определить день с максимальными количествами зарегистрированных заражений и летальных исходов и сравнить полученные результаты

Можем заметить, что 28.02.2021 и 01.03.2021 являются самыми насыщенными днями в исходном датасете, но при просмотре других строк и логическом анализе эти значения оказываются неправдоподобно высокими, т.к за почти двухлетний период в во всем мире было зарегистрировано не более 220 миллионов случаев, а здесь - 3,1 и 19,5 миллионов. Такие значения могут быть связаны с тем, что сайт мог разместить всю предыдущую статистику в первый день своей работы (28 февраля). Можете копнуть глубже для поиска правдоподных причин :)

По этой причине, правильным ответом можно назвать третье место нашего топа - это 01.04.2021

d = data %>% group_by(day, month, year) %>% summarize(max_cases = sum(cases)) %>% arrange(-max_cases)
d[1:5,]
## # A tibble: 5 x 4
## # Groups:   day, month [5]
##     day month  year max_cases
##   <int> <int> <int>     <int>
## 1     1     3  2021  19504293
## 2    28     2  2021   3109689
## 3     1     4  2021    194153
## 4    26     3  2021    193222
## 5    25     3  2021    184234

В случае с летальными исходами наблюдается похожая тенденция с особенностью данных, но правдоподобный день отличается от полученного на первых двух позициях результата

b = data %>% group_by(day, month, year) %>% summarize(max_deaths = sum(deaths)) %>% arrange(-max_deaths)
b[1:5,]
## # A tibble: 5 x 4
## # Groups:   day, month [5]
##     day month  year max_deaths
##   <int> <int> <int>      <int>
## 1     1     3  2021     479082
## 2    28     2  2021      69142
## 3     9     4  2021       3349
## 4     8     4  2021       3181
## 5    10     4  2021       3121

Самый интересный вопрос

Вопрос 4 Определить самую безопасную/опасную страну для поездки в коронавирусные выходные. В данном задании предполагалось придумать свой способ определения такой страны, но данные по территориальной информации стран должны были послужить в качестве подсказки

Решение: Авторы задачи взяли количество случаев на квадратный километр в качестве метрики опасности и пришли к ответам ниже

Самая опасная страна: Мальта

data_compiled %>% group_by(country_name) %>% summarize(prop = sum(cases)/Land.area..sq..km.
) %>% group_by(country_name) %>% summarize(prop = mean(prop)) %>% arrange(-prop) %>% top_n(5)
## # A tibble: 5 x 2
##   country_name  prop
##   <chr>        <dbl>
## 1 Malta        116. 
## 2 Netherlands   59.0
## 3 Belgium       40.5
## 4 Luxembourg    31.9
## 5 Czechia       21.9

Самая безопасная страна: Исландия

data_compiled %>% group_by(country_name) %>% summarize(prop = sum(cases)/Land.area..sq..km.
) %>% group_by(country_name) %>% summarize(prop = mean(prop)) %>% arrange(-prop) %>% top_n(-5)
## # A tibble: 5 x 2
##   country_name  prop
##   <chr>        <dbl>
## 1 Sweden       2.82 
## 2 Latvia       2.44 
## 3 Norway       0.501
## 4 Finland      0.451
## 5 Iceland      0.114