Прогноз пандемии коронавируса. Математическая модель
Как и все сознательные люди, я сижу дома и пытаюсь себя всячески развлечь. Но со всех утюгов только и слышно, что про коронавирус.
Решил я узнать, когда же закончится эта канитель. Покопался в интернете и на то время ничего конкретного ни нашел.
На своей работе я уже давно ничего не программировал, а руки-то чешутся. Вот и придумал написать сайт, который соберет данные из открытых источников, красиво их отобразит их, да и еще сделает прогноз, что будет дальше.
Согласно статистике, развитие эпидемий в мире происходит по нормальному закону распределения Гаусса. Его и взял за основу.
Для начала подключился к открытым источникам и научился выкачивать данные раз в 15 минут. Отобразил их красиво с помощью Chart.js и перешел к прогнозу. Взял для работы функцию нормального распределения
y(t) = b · e -c·(t-a)2
Исходные данные ti - ежедневные отметки времени xi - число активных случаев болезни в этот день
Взял натуральный логарифм от y(t) и от данных xi
ui = ln(xi)
u(t) = ln(y) = ln(b)-c·t2 + 2c·a·t-c·a2
Сделаем замены: А=-с; B=2a·c; C=ln(b)-c·a2; Получаем
u(t) = A·t2+B·t+C
Чтобы найти А, В и С - использую метод наименьших квадратов, согласно которому сумма по i от 1 до n квадратов разностей
Σ(xi-y(ti))2 -> min
должна стремится к минимуму.
Назовем эту сумму Ф(А,В,С)
Продифференцируем dФ по dA, dB и dC. Производные при это должны быть равны нулю.
Получаем систему уравнений
A·Σti4+B·Σti3+C·Σti2 = Σui·ti2
A·Σti3+B·Σti2+C·Σti = Σui·ti
A·Σti2+B·Σti+C·n = Σui
Решаем эту систему по методу Крамера
А = ∆A/∆
B = ∆B/∆
C = ∆C/∆
Находим нужные коэффициенты a,b,c для исходной функции
c = -A a = B/2·c b = eC+c·a2
И, вуаля, готово! Программируем и рисуем красивые графики и узнаем когда это кончится!
Так как данные обновляются с появлением новых случаев, и мой прогноз обновляется тоже.
Чем больше данных, тем точнее прогноз. На данный момент, реальные данные экспертов в Италии говорят о пике эпидемии, и кривая Гаусса показывает тоже самое
Будьте здоровы!
"Прогноз развития эпидемии в России"
В Италии "карантин" вроде бы стабилизированный, прогноз совпадает.
В РФ даже карантина нет. Тот случай, когда прогнозы погоды умеют делать только на три дня. Поэтому прогноз по РФ на три дня. Хватило бы и линейной аппроксимации.
А экстремум будет обнаружен практическим путем.
Согласно теории хаоса это невозможно принципиально. Прогноз погоды не могут делать на длительные сроки:
...Зависимость от начальных условий предполагает, что мы не можем делать долгосрочные прогнозы в нестабильных динамических системах. Любая погрешность в начальных условиях не позволит нам предсказать результат на какой-либо продолжительный отрезок времени. Если, к примеру, взять модель Лоренца, в качестве входных данных для определения скорости ветра нам будет необходимо ввести значения температуры и давления в каждой точке земной атмосферы, только тогда можно будет ожидать достоверный прогноз на длительный срок. Причём, входные данные должны быть абсолютно точными, т. е. с бесконечным числом знаков после запятой. А как известно, совершенно все измерительные приборы на Земле имеют ненулевую погрешность.
undecim - Хабр
"не можем делать долгосрочные прогнозы в нестабильных динамических системах" - Совершенно согласен.
Это вы про РФ и цену на нефть? 😂😂
"Это вы про РФ и цену на нефть?" - Это отдельный разговор.
Если же строить прогнозы по хреновирусу - более-менее точные прогнозы можно строить только по относительно небольшим агломерациям ( около 1 млн. особей), достаточно удаленным от мск (более чем на 1000 км). Набрав данные за неделю.