Найти тему
Дмитрий Торшин

Предсказываем заболеваемость, или почему надо продолжать сидеть дома

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

 Сегодня 10 апреля, а число заболевших в Москве почти 8 тысяч
Сегодня 10 апреля, а число заболевших в Москве почти 8 тысяч

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

Для более точного прогноза, нам не так уж необходимы данные о том, как болезнь начинала своё распространение. Есть очень простой математический подход - завтра число заболевших вырастет настолько, насколько оно выросло сегодня(производные равны). Если предсказывать на 1 день вперёд, то такая оценка окажется достоверной. Однако, если взять интервал в 10 суток, то этого недостаточно. Нам нужны вторые, третие производные и так далее. Поскольку у нас данные обновляются только раз в день, то производную по определению мы посчитать не можем, поэтому я решил взять отрезок длиной в 10 дней и получившийся график(из 10 точек) стал приближать раннее выбранным способом, а именно экспонентой. Этот процесс можно делать скользящим окном, получая последовательность из коэффициентов, отвечающих за показатель экспоненты. Таким образом мы можем визуализировать динамику развития.

Видно, что небольшая тенденция уменьшения показателя экспоненты есть(или иначе увеличивается число дней, за которое число заболевших удваивается)
Видно, что небольшая тенденция уменьшения показателя экспоненты есть(или иначе увеличивается число дней, за которое число заболевших удваивается)

Следующий шаг который хочется сделать, это забыть про то, что мы хотим приближать экспонентой и честно перебрать некоторый набор функций, который нам может подойти. Выбор наиболее подходящей, функции я осуществил так: построил 2 модели: 1) за 10 последних дней, 2)с 11 до предпоследнего дня. Затем сравнил коэффициенты, которые подобрала мне регрессия и выбрал те, которые наболее похожи друг на друга(т.е. их отношение близко к 1). Ниже прилагаю кусочек кода

-3

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

красная линия - экспонента, построенная на всём периоде(в некотором роде что было бы если ничего не предпринималось),
синяя - экспонента, построенная на динамике последних 10 дней,
зелёная - парабола, построенная на динамике последних 10 дней(так получилось, что она подходит лучше всего)
красная линия - экспонента, построенная на всём периоде(в некотором роде что было бы если ничего не предпринималось), синяя - экспонента, построенная на динамике последних 10 дней, зелёная - парабола, построенная на динамике последних 10 дней(так получилось, что она подходит лучше всего)

И похожий график для данных по стране:

-5

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

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

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

-6

Горизонталь символизирует характер роста на всём периоде, вертикальная ось отвечает за рост на текущий момент. Соответственно, чем ближе к правому верхнему углу - тем хуже ситуация в стране. Наклонные прямые, что я построил показывают, мою догадку о том, что будет происходить. Страны окоро зелёной прямой добиваются существенного замедления роста заболеваемости. А в странах рядом с красной напротив идёт взрывной рост числа заболевших. Как некое подтверждение этому - США, в которых уже 500тыс случаев.

Надеюсь, что было познавательно. Приложу ссылку на данные и jupyter notebookи, чтобы можно было посмотреть, тем, кому интересно. Не болейте и самоизолируйтесь!

https://github.com/JustM57/CoronaDynamics