COVID-19: прогнозируем число больных коронавирусом

в 11:55, , рубрики: coronavirus, COVID-19, social network analysis, Биотехнологии, визуализация данных, коронавирус, машинное обучение, Научно-популярное, открытые данные, пандемия, эпидемия

Коронавирус окончательно захватил весь мир — и выражается это не в том, что им успел переболеть каждый житель планеты. На данный момент эта тема является главной и единственной — как в мировых, так и в российских новостях. В этой статье мы постараемся максимально абстрагироваться от политики и рассуждений о том, запустили ли вирус китайские военные, или же Дональд Трамп. Вместо этого мы посмотрим на проблему с математической точки зрения — а именно, выясним, как можно описать эпидемию одним уравнением, а в конце статьи предскажем итоговое число зараженных COVID-19 — в том числе в России.

COVID-19: прогнозируем число больных коронавирусом - 1

Теория: уравнение эпидемии

Еще чуть меньше века назад, в 1927 году, два ученых парня Кермак и МакКендрик в своей статье донесли до мира идею о том, что распространение эпидемии можно описать математически. В самом простом случае, когда популяция из N человек заражается каким-то вирусом, и в самой популяции люди могут либо быть здоровыми (S), либо болеть без возможности выздоровления (I), уравнение доли зараженного населения в момент t будет выглядеть следующим образом:

$i(t)=frac{i_0}{i_0 + (1-i_0)e^{-beta t}},$

где $i_0$ представляет собой изначальную долю зараженных от общего числа популяции, а $beta$ отвечает за коэффициент распространения эпидемии — и именно благодаря этому параметру мы можем регулировать вероятность передачи вируса от человека к человеку и приближать/отдалять момент того, когда вся популяция заразится (ведь при $t to infty , i(t) to 1$).

Знатокам может показаться, что ребята позаимствовали уравнение логистической кривой у бельгийского математика Ферхюльста — однако, в данном случае это уравнение есть не что иное, как результат решения системы дифференциальных уравнений (не буду уходить в математические дебри, однако если кому интересно, то здесь объясняется вся теория эпидемии, а тут — как всегда великолепная визуализация от Гранта Сандерсона).

График функции являет собой нечто вроде вытянутой латинской буквы s (наверное поэтому ее еще иногда называют s-кривая):

COVID-19: прогнозируем число больных коронавирусом - 6

А теперь, прежде чем перейти непосредственно к моделированию, небольшой спойлер того, что эта модель находит отражение в реальности, и конкретно в случае COVID-19: посмотрите на график выявленных случаев заражения в Mainland China, взятого из проекта университета Джона Хопкинса:

COVID-19: прогнозируем число больных коронавирусом - 7

Выводим свое уравнение для COVID-19

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

В реальности же бессмысленно выводить модель исходя только из одного начального условия, т.к. в каждой стране (и даже местности) свои особенности распространения вируса — и итоговое число зараженных может быть совсем разным в двух регионах с $i_0=1$. Одного коэффициента $beta$ в помощь к $i_0$ тоже оказывается недостаточно — слишком уж много факторов воздействуют на распространение вируса и гнут/ломают логистическую кривую на свой лад.

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

$i(t)=frac{a}{b + c*e^{d-beta t}},$

В данном случае мы также дополнительно вводим слагаемое в степень экспоненты — и, имея 5 параметров вместо 2, мы несомненно можем более тонко настроить кривую.

Подбор параметров

Благодаря тому, что в нашем распоряжении есть данные о выявленных случаях заражения за первые $n$ дней пандемии, а не только в самом начале, т.е. набор значений подтвержденных случаев $(y_0, y_1, dots , y_n)$, мы можем свести задачу поиска оптимальных параметров $(a, b, c, d, beta)$ к задаче минимизации суммы квадратов отклонений:

$sum_{t=1}^{n} (y_t - i(t))^{2} to min$

Максимально упрощая задачу, мы определили конечный набор значений для каждого из параметров функции $i(t)$, и по факту провели оптимизацию гиперпараметров поиском по сетке для вышеозначенной функции потерь.

Прогнозы для стран

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

Данные для прогноза взяты с GitHub проекта университета Джона Хопкинса. Прогнозное значение подтвержденных случаев вируса выдается в виде доли от популяции страны, домноженной на 10 000 (домножение нужно для того, чтобы числа не получались очень маленькими, иначе алгоритм просто будет предсказывать нули). По оси $x$ идет количество дней с момента регистрации первого случая заражения вирусом.

На графиках представлены подтвержденные случаи на данный момент (Real Current Confirmed), значения в эти же даты, но предсказанные моделью (Predicted Current Confirmed), и предсказанные значения на следующие 30 дней (Preficted Future Confirmed).

Китай

Впервые вирус был зафиксирован в городе Ухань, столице провинции Хубэй. Как выяснилось недавно, первый случай был зарегистрирован не в конце декабря 2019 года, как полагали до этого, а аж 17 ноября. Сути это не меняет, и благодаря четким действиям китайского правительства в сфере обеспечения карантина, к концу февраля удалось остановить локальную пандемию. Однако сразу оговоримся, что данные для модели имеются только с 22 января, и к тому моменту было зарегистрировано уже 444 заболевших.

COVID-19: прогнозируем число больных коронавирусом - 18
Данные о первом инфицированном: 22.01.2020

Италия

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

COVID-19: прогнозируем число больных коронавирусом - 19
Данные о первом инфицированном: 31.01.2020

Германия

Канцлер Ангела Меркель привлекла внимание мировой общественности своим заявлением о том, что в конечном итоге коронавирусом переболеют 70 процентов населения страны.

COVID-19: прогнозируем число больных коронавирусом - 20
Данные о первом инфицированном: 27.01.2020

Однако, если верить прогнозу, то заболеванию подвергнутся чуть более чем 0.05%

Испания

Горячие мачо решили не отставать от своих «коллег по климату» (итальянцев, разумеется) — и пока что нет никаких оснований говорить о скором угасании темпов распространения вируса.
Однако испанцы не унывают и придумывают, пожалуй, самые увлекательные фейки вокруг коронавируса — так недавно проскочила новость о том, что в Валенсии был закрыт на карантин бордель с 119 людьми, из которых 86 — клиенты, из-за того, что у одной из представительниц древнейшей профессии был выявлен коронавирус — видимо, она закашлялась, а среди клиентов нашелся врач.

COVID-19: прогнозируем число больных коронавирусом - 21
Данные о первом инфицированном: 01.02.2020

Россия

Ситуация вокруг коронавируса в нашей стране до сих пор остается неясной с точки зрения того, а все ли случаи были зафиксированы — иначе как объяснить резкий рост случаев пневмонии, которую без дополнительных исследований невозможно отличить от коронавируса?

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

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

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

COVID-19: прогнозируем число больных коронавирусом - 22
Данные о первом инфицированном: 31.01.2020

Согласно прогнозам модели, России еще далеко до точки перегиба, т.е. того момента во времени, после которого прирост заболевших по сравнению с предыдущим днем будет становиться все меньше и меньше.

Итоги

Конечно же, представленная модель является очень базовой:

  • не учитывается тот факт, что происходит изменение температурного фона с зимнего на весенний, и значит активность распространения вируса должна падать вслед за ростом температуры
  • пренебрежение закрытием границ государств, установлением более жестких карантинных мер внутри самой страны, и, как следствие, падением интенсивности контактирования людей друг с другом
  • модель можно улучшать до бесконечности: выбрать более сложный вид функции, добавить больше параметров; использовать вместо grid search для подбора параметров генетические алгоритмы; вместо простой оптимизации функции потерь использовать метод максимального правдободобия, EM-алгоритмы и т.д.

Однако, если вы заинтересовались данной темой, то советуем вам присоединиться к самому горячему COVID-19 Open Research Dataset Challenge (CORD-19) и решать задачи: от определения факторов риска до создания вакцины!

Также с сегодняшнего дня мы запускаем нашего бота в Telegram (@CoronavirusMonitorBot), в котором мы мониторим актуальную информацию вокруг ситуации с коронавирусом. Рекомендуем вам подписаться, чтобы быть в курсе того, как будет развиваться ситуация.

Главное, что хочется сказать — не нужно паниковать. В подобных ситуациях соблюдение элементарных правил гигиены и избегание мест скопления людей поможет избежать взрывного характера распространения вируса. А в остальном положитесь на математику :)

Автор: Pavel Sulimov

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js