Визуализируйте данные, предоставленные Европейским центром профилактики и контроля заболеваний, с помощью ggplot2 и R.

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

Должен признаться, в последнее время я делаю то же самое. Меня, как немца, особенно интересует, как соседние страны справляются с ситуацией. Растут ли ежедневные числа в Испании быстрее, чем во Франции? В Италии, наконец, началось снижение числа случаев? Повлияют ли более строгие меры, принятые в последние несколько дней, в ближайшие дни и недели?

Давайте предположим, что это вопросы, на которые данные могут помочь ответить. Я знаю, что у нас нет достоверных цифр, так как мы не можем протестировать всех людей, а многие инфицированные вообще не попадают в статистику. Скоро мы можем вообще перестать проводить тесты в некоторых странах из-за нехватки времени и инструментов. Но я должен сказать, что буду чувствовать себя лучше, если увижу, что число ежедневных случаев уменьшается. Научная строгость здесь меня не успокаивает.

Если вы похожи на меня и заинтересованы в отслеживании этих цифр, возможно, вы знаете о хороших графиках, предоставленных Worldometers.info. К сожалению, они показывают их только для отдельных стран или всего мира вместе взятых. Следовательно, нет прямого сравнения развития стран. Альтернативные дашборды предоставлены Джонсом Хопкинсом и Европейским центром профилактики и контроля заболеваний. Опять же, они действительно детализированы и визуально очень привлекательны. Однако они оба не показывают графики, которые я ищу.

Так что я могу сделать? Мне скучно, у меня есть время, я не могу выйти на улицу… Давайте посмотрим, где я могу получить данные о коронавирусе на уровне страны и самостоятельно построить «приборную панель» по коронавирусу. Приглашаю вас следить за моим прогрессом. Я предоставляю вам полный код в конце статьи.

Надеюсь, вам понравится это читать. Оставайтесь в безопасности!

Если вы хотите забежать вперед, ознакомьтесь со следующей статьей: Руководство для начинающих по созданию информационной панели Corona (Часть 2; прямо сейчас!), где я делюсь полным блестящим примером приложения для информационной панели Corona на основе предоставленных данных. Johns Hopkins с задержкой в ​​один день.

Отказ от ответственности. Я не ученый и не претендую на это. Пожалуйста, рассматривайте эту статью скорее как техническое руководство и не пытайтесь делать какие-либо выводы из созданных графиков. Придерживайтесь мнений экспертов, т.е. от Джонса Хопкинса или для Германии Институт Роберта Коха (RKI).

Шаг 1. Получение данных о вирусе на уровне страны

Я начал с изучения того, где я могу получить нужные мне данные, то есть количество подтвержденных случаев в день и страну. К счастью, Европейский центр профилактики и контроля заболеваний (ECDC) ежедневно публикует эти данные на своем сайте: https://www.ecdc.europa.eu/en/publications-data/download-todays-data-geographic-distribution- covid-19-cases-worldwide, так что это хорошее место для начала.

Они даже показывают небольшой R-скрипт, который можно использовать для получения данных. Хотя для меня это изначально не работало. Я узнал, что они изменили свою версию Excel, поэтому старые файлы заканчивались на .xls, а новые — на .xlsx. Они изменили свой код на следующий день, так что теперь все в порядке. Но специально для вас на заметку на случай, если скрипт перестанет работать: проверьте их файл и при необходимости адаптируйте скрипт.

Тем не менее, это отличная основа для начала. Я загрузил данные в RStudio и создал отдельные таблицы для каждой интересующей меня страны, используя GeoID.

Шаг 2: Визуализируйте данные

Как страна, где все, кажется, началось, справлялась с вирусом до сих пор? Давайте выясним это, построив график количества зарегистрированных случаев в день для Китая с помощью ggplot2. Поскольку Китай изменил способ сообщения о случаях заболевания, я использую функцию регрессии Лесса, чтобы сгладить график.

Мне очень нравится то, что я вижу: число заболевших в день, кажется, достигло своего пика в первой декаде февраля, а затем продолжило падать до нуля. Именно такую ​​кривую я хотел бы увидеть для своих европейских соседей (и, конечно, для всех других стран) в ближайшие недели.

Как на самом деле выглядит кривая для этих стран? По сравнению с Китаем мы должны сказать, что мы еще не там. Говоря оптимистично, мы все еще находимся на левой стороне кривой нормального распределения. И до сих пор неизвестно, насколько высоко должны подняться числа перед пиком.

Количество обращений в день

Вот количество случаев в день для Испании, Италии, Германии и Франции на основе данных ECDC (до 22 марта 2020 г.).

Совокупное количество обращений

Еще одна интересная кривая — это кривая, показывающая кумулятивное количество случаев с течением времени. Интерпретация наклона даст нам представление о том, увеличивается ли предельный рост или когда он начинает выравниваться (наверняка слишком рано). Прежде чем сделать это, обязательно прочитайте предостережение в следующем разделе.

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

Интерпретация графиков: немного осторожности

С технической точки зрения все: у нас есть данные в RStudio, и мы можем генерировать визуальные эффекты, которые хотели видеть. Однако, как сказано во вступлении, будьте осторожны с этими цифрами и графиками.

Во-первых, я обнаружил, что цифры ECDC для Германии сильно отличаются от цифр других издателей, таких как Институт Роберта Коха (RKI) и Johns Hopkins. По крайней мере, в Германии в некоторые дни выявляется только половина случаев, но опять же, на следующий день выявляется гораздо больше случаев, чем должно было быть. На приведенном ниже графике показаны очевидные резкие скачки числа ежедневных случаев (которые необоснованны).

Во-вторых, кумулятивный график не показывает активных случаев. Он просто суммирует ежедневные случаи без вычитания умерших или выздоровевших пациентов (для которых у нас даже меньше достоверных данных, чем для случаев в целом). Так что не удивляйтесь, если увидите такой график для Китая.

Согласно сайту агрегации и визуализации данных Worldometers.info, график, показывающий фактически активные случаи в Китае, больше похож на кривую нормального распределения. Опять же, то, что я хотел бы увидеть и для остального мира в ближайшие недели.

Резюме и следующие шаги

Итак, подведем итог: да, данные в свободном доступе для работы. Мы можем использовать их для создания графиков, которые могут помочь нам лучше понять постоянно меняющуюся ситуацию (конечно, зная, что мы должны быть осторожны с ней). Объединение этих графиков в одну большую «приборную панель» может быть отличной идеей, и скрипт делает именно это.

Тем не менее, реальная панель инструментов должна быть интерактивной, чтобы любой пользователь, не знакомый с R, мог вносить изменения (например, выбирать страну, период времени и т. д.). Это естественный следующий шаг для меня в этом проекте. Я мог бы превратить то, что у меня есть, в интерактивную панель инструментов с помощью Shiny. Это что-то для следующих выходных. Будьте уверены, как только мне это удастся создать, я тоже опубликую (и, конечно, напишу об этом, чтобы вы тоже могли это сделать).

Кроме того, мы должны быть осторожны в случае, если страны и институты изменят то, как они сообщают о случаях. ECDC не может быть хорошим источником для такого рода визуализаций. По крайней мере, мы должны попытаться взглянуть на других издателей данных, таких как Johns Hopkins.

В своей следующей статье я сделаю именно это. Я изменил сценарий, чтобы создать аналогичные графики на основе данных из Университета Джона Хопкинса, которые на данный момент кажутся одним из самых надежных источников, в то время как немецкие цифры, как правило, немного выше, чем те, которые опубликованы Институтом Роберта Коха.

Будьте в безопасности, все!

Йонас Шредер

Полный код для Corona Dashboard (на основе данных ECDC)