«Кракен» - очередная мутация COVID-19
В последнее время всё меньше людей вспоминает о COVID-19, хотя совсем недавно он изменил нашу жизнь до неузнаваемости: удалённая работа/учёба, дистанционная защита дипломов и т.д.
И все же жизнь показывает, что расслабляться рано. Мы еще не забыли мутирующий штамм коронавирусной инфекции «Омикрон», и вот его новая разновидность с пугающим названием «Кракен». Ученые видят опасность в крайне высокой степени распространения и развитии неблагоприятного течения болезни за счет так называемой сочетанной инфекции, когда к коронавирусу присоединяются инфекции ОРВИ или гриппа. Именно это дает дополнительную нагрузку на все органы и системы организма и может вызвать тяжелые последствия.
Расскажем, как применяя предобработку, визуализировать данные по заболеваниям COVID-19, используя ретро информацию с помощью статистического анализа, который будет производиться на ЯП Python.
Начинаем с начала.
Перед тем как рассказать о нашем исследовании, стоит отметить, что на данный момент Россия находится на 108 месте в топе стран с вакцинированным населением (53,3% является привитым по данным проекта Out World in Data на 11.12). Анализировать мы решили данные из репозитория университета Джонса Хопкинса на GitHub (https://github.com/CSSEGISandData/COVID-19/tree/master/csse_covid_19_data/csse_covid_19_time_series), но немного разобравшись в информации поняли, что он берёт их с сайта стопкоронавирус.рф.
Взглянем на исходную информацию. На рисунке 1 показан импорт и вид исходных данных.
Итого перед нами оказалась картина о распространении коронавируса по 289 странам по дням, начиная с 22 января 2020 года по 12 декабря 2022. Среди некоторых стран известна так же статистика распространения по регионам. Так же у нас есть аналогичные данные, касающиеся умерших и поправившихся (итого 3 датафрейма).
Уже на этом моменте можно заметить отсутствие множества данных, особенно в начальном периоде. Так что исходную информацию в любом случае необходимо подвергнуть предобработке.
Предобработка данных
Так как нас в этом исследовании больше заботит вопрос: “А что там в России?”, то мы отфильтровали получившийся датафрейм, исключив другие страны. Ниже показан код, с помощью которого мы это сделали..
Также мы удалили не интересующие нас столбцы, а именно: Province/State (данные для России о распространении по регионам отсутствуют), Country/Region (так как у нас будет одна страна) и другие. Для удобства дальнейшего анализа провели транспонирование датафрейма.
На рисунке 2 представлен результат выполнения этого кода.
Исходя из рисунка 2, как было сказано ранее, можно заметить отсутствие данных за некоторый начальный период. Уберем его из рассмотрения. Реализующий код и его результат показан ниже (рисунок 3).
Из результата видно, что присутствуют только 2 заболевших с 31 января 2020 - единственные заболевшие до 2 марта 2020. Мы удалили данный период, ограничив его аналогичным образом, который может негативно повлиять на качество прогноза.
Далее от остальных 2-х датафреймов мы отсекли по 40 первых наблюдений (дней) для равенства выборок. Из количества умерших можно отбросить и больше, но это уже сместит данные о начальных смертях.
После этого собрали все транспонированные датафреймы в один с 3-мя столбцами, а именно Количество заболевших, Количество смертей и Количество поправившихся. В итоге у нас получился датафрейм из 3 столбцов и 1016 строк.
Визуализация данных
Продолжая анализ решили добавить визуализацию данных. Для этого использовали библиотеку seaborn (кто до сих пор о ней не слышал, рекомендую ознакомиться http://newtechaudit.ru/vizualizacziya-v-python-seaborn).
Однако, после построения общего графика, показанного на рисунке 4, можно заметить в столбце с количеством поправившихся отсутствие множества данных, а именно из 1016 строк (количество дней), ненулевые значения содержатся только в 521 наблюдении и, начиная с 4 августа 2021 года, отсутствует. Учитывая высокую летальность при заболевании COVID-19 это похоже просто на отсутствующие данные. Конечно, можно было бы заполнить этот датафрейм какой-нибудь скользящей средней и т.д., но так как у нас есть другие данные, то отбросим их полностью.
И на этом мы завершили нашу предобработку и визуализацию данных. Помните, что обработка исходной информации и грамотное её отсечение, порой являются задачей более важной, чем работа над самими данными. Ведь если в них присутствуют выбросы, это может испортить показания множества моделей.
Построением прогнозов мы займёмся во второй части нашей публикации. Для выполнения этой задачи мы используем датафрейм, состоящий из столбцов с количеством заболевших и количеством смертей, включающих в себя 1016 наблюдений вполне достаточных для построения прогнозирующей модели. Визуализация данных представлена на рисунке 6.
Полный код доступен по ссылке: https://github.com/MikhailOznobikhin/covid2022.