{"id":321810,"date":"2021-04-21T15:00:07","date_gmt":"2021-04-21T15:00:07","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=321810"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2021-04-21T15:00:07","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=321810","title":{"rendered":"\u0427\u0435\u043c \u0433\u0440\u043e\u0437\u0438\u0442 \u041c\u043e\u0441\u043a\u0432\u0435 \u00ab\u0431\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0439\u00bb \u0448\u0442\u0430\u043c\u043c COVID-19? \u041e\u0442\u0432\u0435\u0447\u0430\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Python \u0438 \u0434\u0438\u0444\u0443\u0440\u043e\u0432"},"content":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8fe\/2c7\/223\/8fe2c7223a3af3c754dc3f802c6a732f.png\" width=\"780\" height=\"439\"><figcaption><\/figcaption><\/figure>\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0411\u043e\u0440\u0438\u0441, \u044f \u0432\u044b\u043f\u0443\u0441\u043a\u043d\u0438\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u201c\u041d\u0430\u0443\u043a\u0438 \u043e \u0434\u0430\u043d\u043d\u044b\u0445\u201d \u0424\u041a\u041d \u0412\u0428\u042d, \u0440\u0430\u0431\u043e\u0442\u0430\u044e ML \u0418\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u043c \u0438 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e \u0432 OTUS \u043d\u0430 \u043a\u0443\u0440\u0441\u0430\u0445 <a href=\"https:\/\/otus.pw\/Cy6M\/\">ML Professional<\/a>, <a href=\"https:\/\/otus.pw\/aYDx\/\">DL Basic<\/a>, <a href=\"https:\/\/otus.pw\/tV17\/\">Computer Vision<\/a>.<\/p>\n<p>\u0412 \u043f\u0435\u0440\u0432\u044b\u0445 \u0447\u0438\u0441\u043b\u0430\u0445 \u044f\u043d\u0432\u0430\u0440\u044f 2021 \u044f \u0443\u0437\u043d\u0430\u043b \u043f\u0440\u043e \u201c\u0431\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0439\u201d \u0448\u0442\u0430\u043c\u043c \u043a\u043e\u0440\u043e\u043d\u0430\u0432\u0438\u0440\u0443\u0441\u0430,&nbsp;<a href=\"https:\/\/thezvi.wordpress.com\/2021\/01\/06\/fourth-wave-covid-toy-modeling\/\">\u043f\u0440\u043e\u0433\u043d\u043e\u0437\u044b \u043e \u043d\u043e\u0432\u043e\u0439 \u0432\u043e\u043b\u043d\u0435 \u0432 \u0421\u0428\u0410<\/a>. <em>\u042f \u043f\u043e\u0434\u0443\u043c\u0430\u043b: \u201c\u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u044f \u0438\u043b\u0438 \u043a\u0442\u043e\u201d? \u041c\u043d\u0435 \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0437\u0430\u0431\u0438\u0442\u044c \u0433\u0432\u043e\u0437\u0434\u0438\u043a \u0441\u0432\u043e\u0438\u043c \u043c\u0438\u043a\u0440\u043e\u0441\u043a\u043e\u043f\u043e\u043c \u0438 \u0443\u0437\u043d\u0430\u0442\u044c, \u0432\u044b\u0437\u043e\u0432\u0435\u0442 \u043b\u0438 \u201c\u0431\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0439\u201d \u0448\u0442\u0430\u043c\u043c \u0432\u043e\u043b\u043d\u0443 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432 \u041c\u043e\u0441\u043a\u0432\u0435&nbsp;<s>\u0438 \u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u044c \u0430\u0432\u0438\u0430\u0431\u0438\u043b\u0435\u0442\u044b \u043d\u0430 \u043b\u0435\u0442\u043e<\/s>.<\/em><\/p>\n<p>\u0412\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u043e \u043a\u0430\u043a \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u0432\u0435 \u043d\u0435\u0434\u0435\u043b\u0438, \u043d\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u043e\u0441\u044c \u0432 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u0440\u0438 \u043c\u0435\u0441\u044f\u0446\u0430. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u044f \u0432\u044b\u044f\u0441\u043d\u0438\u043b, \u0447\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u044d\u043f\u0438\u0434\u0435\u043c\u0438\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u0442. \u0411\u0430\u043d\u0430\u043b\u044c\u043d\u043e \u0430\u0432\u0442\u043e\u0440\u044b \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u043e \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e COVID-19 \u0432 \u0442\u043e\u043f\u043e\u0432\u044b\u0445 \u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0445 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0434\u0435\u043b\u0430\u044e\u0442 train-test split.<\/p>\n<p>\u042f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0432\u043e\u0435\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f. \u0412 \u043d\u0451\u043c \u044f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0441\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u0430\u0436\u043d\u044b\u0435 \u0434\u0435\u0442\u0430\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043b\u0438 \u0431\u044b \u043c\u043d\u0435 \u043c\u043d\u043e\u0433\u043e \u043d\u0435\u0434\u0435\u043b\u044c, \u0435\u0441\u043b\u0438 \u0431\u044b \u043e \u043d\u0438\u0445 \u043a\u0442\u043e-\u0442\u043e \u043f\u0438\u0441\u0430\u043b.<\/p>\n<blockquote>\n<p><em>\u041d\u043e\u0443\u0442\u0431\u0443\u043a \u043a <\/em><a href=\"https:\/\/github.com\/btseytlin\/covid_peak_sir_modelling\/blob\/main\/habr_code.ipynb\"><em>\u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0443.<\/em><\/a><\/p>\n<p><em>\u041a\u0440\u0430\u0442\u043a\u0430\u044f \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 <\/em><a href=\"https:\/\/docs.google.com\/presentation\/d\/170NqHtg-jH5f7bxwq5tptt1nxKO8XWEGrQvJhMWKw4w\/edit?usp=sharing\"><em>\u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f<\/em><\/a><em>.<\/em><\/p>\n<p><em>\u041f\u0440\u0435\u043f\u0440\u0438\u043d\u0442 \u0441\u0442\u0430\u0442\u044c\u0438: TBA<\/em><\/p>\n<\/blockquote>\n<hr>\n<h3>\u041a\u0430\u043a\u043e\u0439 \u0431\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0439 \u0448\u0442\u0430\u043c\u043c?<\/h3>\n<p>COVID-19 \u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f, \u043a \u043d\u0435\u043c\u0443 \u043c\u044b \u0443\u0436\u0435 \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u043e\u0432\u044b\u0435 \u043c\u0443\u0442\u0430\u0446\u0438\u0438 (\u0448\u0442\u0430\u043c\u043c\u044b) \u0432\u0438\u0440\u0443\u0441\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0445\u043e\u0434 \u044d\u043f\u0438\u0434\u0435\u043c\u0438\u0438. \u0421\u0435\u0439\u0447\u0430\u0441 \u0412\u041e\u0417&nbsp;<a href=\"https:\/\/www.who.int\/publications\/m\/item\/weekly-epidemiological-update-on-covid-19---31-march-2021\">\u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442<\/a>&nbsp;\u0442\u0440\u0438 \u0442\u0430\u043a\u0438\u0445 \u0448\u0442\u0430\u043c\u043c\u0430 (variants of concern). \u0421\u0440\u0435\u0434\u0438 \u043d\u0438\u0445 \u0448\u0442\u0430\u043c\u043c B.1.1.7, \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u201c\u0431\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0439\u201d \u0448\u0442\u0430\u043c\u043c.<\/p>\n<p>\u041f\u043e\u0447\u0435\u043c\u0443 \u043c\u0435\u043d\u044f \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d? \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445,&nbsp;<a href=\"https:\/\/science.sciencemag.org\/content\/early\/2021\/03\/03\/science.abg3055.abstract\">\u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442<\/a>, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0448\u0442\u0430\u043c\u043c \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 40% &#8212; 90% \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043a\u043e\u0440\u043e\u043d\u0430\u0432\u0438\u0440\u0443\u0441 (\u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0445: R0 \u043d\u0430 40% &#8212; 90% \u0431\u043e\u043b\u044c\u0448\u0435). \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0441\u043b\u0443\u0447\u0430\u0439 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u043c \u0448\u0442\u0430\u043c\u043c\u043e\u043c \u0443\u0436\u0435 \u0431\u044b\u043b&nbsp;<a href=\"https:\/\/www.kommersant.ru\/doc\/4639704\">\u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d<\/a>&nbsp;\u0432 \u0420\u043e\u0441\u0441\u0438\u0438. \u0412-\u0442\u0440\u0435\u0442\u044c\u0438\u0445, \u043d\u0435\u043f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e\u0431\u044b \u043a\u0442\u043e-\u0442\u043e \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0441\u044f \u043a \u0435\u0433\u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044e.<\/p>\n<p>\u041f\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u0448\u0435\u043b \u043a \u0432\u044b\u0432\u043e\u0434\u0443, \u0447\u0442\u043e B.1.1.7 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043d\u043e\u0432\u043e\u0439 \u0432\u043e\u043b\u043d\u0435 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u0439 COVID-19 \u0438 \u043c\u043e\u0436\u0435\u0442 \u0443\u043d\u0435\u0441\u0442\u0438 30 \u0442\u044b\u0441\u044f\u0447 \u0436\u0438\u0437\u043d\u0435\u0439.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/896\/57c\/500\/89657c50014798a6c40c2643f019ba23.png\" width=\"1415\" height=\"386\"><figcaption><\/figcaption><\/figure>\n<h3>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435<\/h3>\n<p>\u041d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043f\u043e \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c, \u0441\u043c\u0435\u0440\u0442\u044f\u043c \u0438 \u0432\u044b\u0437\u0434\u043e\u0440\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u043c \u0432 \u041c\u043e\u0441\u043a\u0432\u0435. \u0415\u0451 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c <a href=\"https:\/\/yandex.ru\/covid19\/stat\">\u0441\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.<\/a><br \/>\u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u044b\u043b \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u0434\u0430\u0442: 2020.03.10 &#8212; 2021.03.23.<\/p>\n<p>\u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u044b \u0434\u043b\u044f \u0432\u0441\u0435\u0439 \u0420\u043e\u0441\u0441\u0438\u0438. \u041c\u043e\u0434\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043b\u0443\u0447\u0448\u0435 \u0434\u043b\u044f \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u044b\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0439, \u0442\u0430\u043a \u0447\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u043c\u0441\u044f \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0434\u043b\u044f \u041c\u043e\u0441\u043a\u0432\u044b. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0438 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0435\u043c \u043a\u043e\u043b\u043e\u043d\u043a\u0438.<\/p>\n<pre><code class=\"python\">df.columns = ['date', 'region',              'total_infected', 'total_recovered', 'total_dead',             'deaths_per_day', 'infected_per_day', 'recovered_per_day'] df = df[df.region == '\u041c\u043e\u0441\u043a\u0432\u0430'].reset_index() df['date'] = pd.to_datetime(df['date'], format='%d.%m.%Y') df['infected'] = df['total_infected'] - df['total_recovered'] - df['total_dead'] df = df.drop(columns=['index', 'region']) df = df.sort_values(by='date') df.index = df.date df['date'] = df.date.asfreq('D')<\/code><\/pre>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u0433\u043b\u0430\u0436\u0435\u043d\u043d\u044b\u0435 \u0441\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0438\u043c \u043e\u043a\u043d\u043e\u043c \u0432 7 \u0434\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0432\u0441\u0435\u0445 \u043a\u043e\u043b\u043e\u043d\u043e\u043a. \u041e\u043d\u0438 \u043f\u0440\u0438\u0433\u043e\u0434\u044f\u0442\u0441\u044f \u043d\u0430\u043c \u043f\u043e\u0437\u0436\u0435.<\/p>\n<pre><code class=\"python\">df_smoothed = df.rolling(7).mean().round(5) df_smoothed.columns = [col + '_ma7' for col in df_smoothed.columns]  full_df = pd.concat([df, df_smoothed], axis=1) for column in full_df.columns:     if column.endswith('_ma7'):         original_column = column.strip('_ma7')         full_df[column] = full_df[column].fillna(full_df[original_column])<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/740\/4b9\/141\/7404b9141275c59922af63d1d43b6b85.png\" width=\"931\" height=\"588\"><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u0430\u043c\u0438, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0438\u0445 \u0441\u0433\u043b\u0430\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438:<\/p>\n<ul>\n<li>\n<p><code>infected_per_day<\/code>&nbsp;\u2014 \u043d\u043e\u0432\u044b\u0445 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043d\u044c.<\/p>\n<\/li>\n<li>\n<p><code>recovered_per_day<\/code>&nbsp;\u2014 \u043d\u043e\u0432\u044b\u0445 \u0432\u044b\u0437\u0434\u043e\u0440\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043d\u044c.<\/p>\n<\/li>\n<li>\n<p><code>deaths_per_day<\/code>&nbsp;\u2014 \u043f\u043e\u0433\u0438\u0431\u0448\u0438\u0445 \u043e\u0442 \u0438\u043d\u0444\u0435\u043a\u0446\u0438\u0438 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043d\u044c.<\/p>\n<\/li>\n<li>\n<p><code>total_infected<\/code>&nbsp;\u2014 \u0432\u0441\u0435\u0433\u043e \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u043a \u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443, \u043a\u0443\u043c\u0443\u043b\u044f\u0442\u0438\u0432\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430&nbsp;<code>infected_per_day<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>total_dead<\/code>&nbsp;\u2014 \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u0433\u0438\u0431\u0448\u0438\u0445 \u043a \u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443, \u043a\u0443\u043c\u0443\u043b\u044f\u0442\u0438\u0432\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u043e\u0442&nbsp;<code>deaths_per_day<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>total_recovered<\/code>&nbsp;\u2014 \u0432\u0441\u0435\u0433\u043e \u0432\u044b\u0437\u0434\u043e\u0440\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u043a \u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443, \u043a\u0443\u043c\u0443\u043b\u044f\u0442\u0438\u0432\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u043e\u0442&nbsp;<code>recovered_per_day<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041e\u0441\u043d\u043e\u0432\u0430 \u043c\u043e\u0434\u0435\u043b\u0438: SEIRD<\/h3>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Compartmental_models_in_epidemiology\">SIR<\/a>&nbsp;\u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0438\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u0442 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u044d\u043f\u0438\u0434\u0435\u043c\u0438\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0442\u0440\u0438 \u0433\u0440\u0443\u043f\u043f\u044b: Susceptible, Infected, Recovered.<br \/>\u0418\u0434\u0435\u044f \u201c\u043d\u0430 \u043f\u0430\u043b\u044c\u0446\u0430\u0445\u201d:<\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u0442\u044c \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u0430\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u044f \u0438 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0445 (Infected).<\/p>\n<\/li>\n<li>\n<p>\u0412 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u0434\u043d\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0439 \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u043d\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u0442 \u043a\u043e\u0433\u043e-\u0442\u043e \u0438\u0437 \u0433\u0440\u0443\u043f\u043f\u044b Susceptible. \u041d\u043e\u0432\u044b\u0435 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044f\u0442 \u0432 \u0433\u0440\u0443\u043f\u043f\u0443 Infected.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0435\u0441\u044f \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 Infected \u0432\u044b\u0437\u0434\u043e\u0440\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0441\u0440\u043e\u043a \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0431\u043e\u043b\u0435\u0437\u043d\u0438 \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044f\u0442 \u0432 \u0433\u0440\u0443\u043f\u043f\u0443 Recovered.<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0430 \u043c\u043d\u043e\u0433\u043e \u0434\u043d\u0435\u0439 \u0432\u043f\u0435\u0440\u0435\u0434 \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0433\u0440\u0443\u043f\u043f.<\/p>\n<\/li>\n<\/ul>\n<p>SIR \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0438\u043d\u043a\u0443\u0431\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0438 \u043f\u043e\u0433\u0438\u0431\u0448\u0438\u0445, \u0442\u0430\u043a \u0447\u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044e SEIRD \u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0435\u0433\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435. SEIRD \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435, \u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u044e \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b:<\/p>\n<ul>\n<li>\n<p>Susceptible \u2014 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u044b.<\/p>\n<\/li>\n<li>\n<p>Exposed \u2014 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u044b \u0432\u0438\u0440\u0443\u0441\u043e\u043c, \u043d\u043e \u043d\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u044e\u0442 \u0435\u0433\u043e, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0438\u043d\u043a\u0443\u0431\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434.<\/p>\n<\/li>\n<li>\n<p>Infectious \u2014 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u044e\u0442 \u0432\u0438\u0440\u0443\u0441.<\/p>\n<\/li>\n<li>\n<p>Recovered \u2014 \u043f\u0435\u0440\u0435\u0431\u043e\u043b\u0435\u043b\u0438 \u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u044b.<\/p>\n<\/li>\n<li>\n<p>Dead \u2014 \u043f\u043e\u0433\u0438\u0431\u043b\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0433\u0440\u0443\u043f\u043f \u0437\u0430 \u0434\u0435\u043d\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442 \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c54\/111\/b88\/c54111b88f5b9da8b9a2d65c96eb2c7f.png\" width=\"555\" height=\"420\"><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0440\u0435\u0442\u044c\u0435 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b Infected \u0437\u0430 \u0434\u0435\u043d\u044c. \u0421 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\u044e&nbsp;<strong><em>\u03b4<\/em><\/strong>&nbsp;\u0443 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430 \u0438\u0437 \u0433\u0440\u0443\u043f\u043f\u044b&nbsp;<strong><em>E<\/em><\/strong>&nbsp;\u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u043a\u0443\u0431\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 \u0438 \u043e\u043d \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u0433\u0440\u0443\u043f\u043f\u0443&nbsp;<strong><em>I<\/em><\/strong>. \u0422\u0430\u043a \u0436\u0435 \u0441 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\u044e&nbsp;<strong><em>\u03b3<\/em><\/strong>&nbsp;\u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0438\u0437 \u0433\u0440\u0443\u043f\u043f\u044b&nbsp;<strong><em>I<\/em><\/strong>&nbsp;\u0432\u044b\u0437\u0434\u043e\u0440\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0438\u043b\u0438 \u043f\u043e\u0433\u0438\u0431\u0430\u0435\u0442, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044f \u0432 \u0433\u0440\u0443\u043f\u043f\u0443&nbsp;<strong><em>R<\/em><\/strong>&nbsp;\u0438\u043b\u0438&nbsp;<strong><em>D<\/em><\/strong>. \u041a\u0443\u0434\u0430 \u043e\u043d \u043f\u043e\u043f\u0430\u0434\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c&nbsp;<strong><em>\u03b1<\/em><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u043e\u043b\u0435 \u0441\u043c\u0435\u0440\u0442\u043d\u043e\u0441\u0442\u0438 (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Case_fatality_rate\">Infection Fatality Rate<\/a>). \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c \u0433\u0440\u0443\u043f\u043f\u0443 \u043f\u043e\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u043d\u043e\u0432\u044b\u0435 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0435, \u0430 \u043f\u0435\u0440\u0435\u0431\u043e\u043b\u0435\u0432\u0448\u0438\u0435 \u0443\u0445\u043e\u0434\u044f\u0442 \u0438\u0437 \u0433\u0440\u0443\u043f\u043f\u044b.<\/p>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043c\u043e\u0434\u0435\u043b\u0438:<br \/><strong><em>\u03b1<\/em><\/strong>&nbsp;\u2014 case fatality rate.<br \/><strong><em>\u03b2<\/em><\/strong>&nbsp;\u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0434\u0438\u043d \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0447\u0438\u043a \u0437\u0430\u0440\u0430\u0436\u0430\u0435\u0442 \u0437\u0430 \u0434\u0435\u043d\u044c.<br \/><strong><em>\u03b4<\/em><\/strong>&nbsp;\u2014 1 \u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u0441\u0440\u0435\u0434\u043d\u044e\u044e \u0434\u043b\u0438\u043d\u0443 \u0438\u043d\u043a\u0443\u0431\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430.<br \/><strong><em>y<\/em><\/strong>&nbsp;\u2014 1 \u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u0441\u0440\u0435\u0434\u043d\u044e\u044e \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0431\u043e\u043b\u0435\u0437\u043d\u0438.<br \/><strong><em>R0 = \u03b2\/y<\/em><\/strong>&nbsp;\u2014 \u0431\u0430\u0437\u043e\u0432\u043e\u0435 \u0440\u0435\u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u0442\u043e \u0435\u0441\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0434\u0438\u043d \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0447\u0438\u043a \u0437\u0430\u0440\u0430\u0436\u0430\u0435\u0442 \u0437\u0430 \u0432\u0440\u0435\u043c\u044f \u0441\u0432\u043e\u0435\u0439 \u0431\u043e\u043b\u0435\u0437\u043d\u0438.<\/p>\n<p>\u0415\u0441\u0442\u044c \u0442\u0440\u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e SEIRD. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b SEIRD \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0431\u043e\u043b\u0435\u0437\u043d\u0438, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u043a\u0438\u043d\u0443\u0442\u044c \u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u043c\u0435\u0434\u0438\u0446\u0438\u043d\u0441\u043a\u0438\u0445 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439 COVID-19 \u043a\u0430\u043a \u0431\u043e\u043b\u0435\u0437\u043d\u0438. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u044d\u0442\u0443 \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u0447\u0435\u043d\u044c \u043b\u0435\u0433\u043a\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u043c\u0435\u0440\u044b \u043a\u0430\u0440\u0430\u043d\u0442\u0438\u043d\u0430, \u043d\u0435\u043f\u043e\u043b\u043d\u043e\u0442\u0443 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0448\u0442\u0430\u043c\u043c. \u0412-\u0442\u0440\u0435\u0442\u044c\u0438\u0445, \u044d\u0442\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043b\u0435\u0433\u043a\u043e \u201c\u043f\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u044c\u201d \u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e: \u201c\u0427\u0442\u043e \u0431\u0443\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u0432 \u044d\u0442\u043e\u0439 \u0436\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432\u0442\u043e\u0440\u043e\u0439 \u0448\u0442\u0430\u043c\u043c \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440&nbsp;<strong><em>R0<\/em><\/strong>&nbsp;\u0443 \u043d\u0435\u0433\u043e \u043d\u0430 90% \u0431\u043e\u043b\u044c\u0448\u0435?\u201d \u0421\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043d\u043e\u0433\u043e \u0431\u0443\u0441\u0442\u0438\u043d\u0433\u0430, \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435.<\/p>\n<p>\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043c\u0438\u043d\u0443\u0441 SEIRD: \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c. \u041e\u043d\u0430 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430 \u043a \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c. \u041f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043a\u0438 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u0414\u043b\u044f \u043d\u0430\u0441 \u044d\u0442\u043e \u043d\u0435 \u0441\u0442\u0440\u0430\u0448\u043d\u043e: \u043c\u044b \u0432\u0435\u0434\u044c \u043d\u0435 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0430\u043c\u044b\u0439 \u0442\u043e\u0447\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u043f\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0445, \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043d\u044f\u0442\u044c&nbsp;<em>\u043c\u043e\u0436\u0435\u0442 \u043b\u0438 \u0448\u0442\u0430\u043c\u043c B.1.1.7 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0432\u043e\u043b\u043d\u0443<\/em>. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u044d\u0442\u043e, \u043b\u0443\u0447\u0448\u0430\u044f \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e COVID-19 \u044d\u0442\u043e&nbsp;<a href=\"https:\/\/covid19-projections.com\/about\/#about-the-model\">\u043e\u0447\u0435\u043d\u044c \u043d\u0430\u0432\u043e\u0440\u043e\u0447\u0435\u043d\u043d\u0430\u044f SEIR \u043c\u043e\u0434\u0435\u043b\u044c<\/a>.<\/p>\n<h3>\u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 SEIRD<\/h3>\n<p>\u041f\u0440\u0438\u0432\u043e\u0436\u0443 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e SEIRD.<\/p>\n<pre><code class=\"python\">class BarebonesSEIR:     def init(self, params=None):         self.params = params &lt;span class=\"hljs-function\" style=\"box-sizing: border-box;\"&gt;&lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;def&lt;\/span&gt; &lt;span class=\"hljs-title\" style=\"box-sizing: border-box; color: rgb(121, 93, 163);\"&gt;get_fit_params&lt;\/span&gt;(&lt;span class=\"hljs-params\" style=\"box-sizing: border-box;\"&gt;self&lt;\/span&gt;):&lt;\/span&gt;     params = lmfit.Parameters()     params.add(&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;\"population\"&lt;\/span&gt;, value=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;12_000_000&lt;\/span&gt;, vary=&lt;span class=\"hljs-literal\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;False&lt;\/span&gt;)     params.add(&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;\"epidemic_started_days_ago\"&lt;\/span&gt;, value=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;10&lt;\/span&gt;, vary=&lt;span class=\"hljs-literal\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;False&lt;\/span&gt;)     params.add(&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;\"r0\"&lt;\/span&gt;, value=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;4&lt;\/span&gt;, &lt;span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: rgb(0, 92, 197);\"&gt;min&lt;\/span&gt;=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;3&lt;\/span&gt;, &lt;span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: rgb(0, 92, 197);\"&gt;max&lt;\/span&gt;=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;5&lt;\/span&gt;, vary=&lt;span class=\"hljs-literal\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;True&lt;\/span&gt;)     params.add(&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;\"alpha\"&lt;\/span&gt;, value=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;0.0064&lt;\/span&gt;, &lt;span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: rgb(0, 92, 197);\"&gt;min&lt;\/span&gt;=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;0.005&lt;\/span&gt;, &lt;span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: rgb(0, 92, 197);\"&gt;max&lt;\/span&gt;=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;0.0078&lt;\/span&gt;, vary=&lt;span class=\"hljs-literal\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;True&lt;\/span&gt;)  &lt;span class=\"hljs-comment\" style=\"box-sizing: border-box; color: rgb(150, 152, 150);\"&gt;# CFR&lt;\/span&gt;     params.add(&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;\"delta\"&lt;\/span&gt;, value=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt;\/&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;3&lt;\/span&gt;, &lt;span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: rgb(0, 92, 197);\"&gt;min&lt;\/span&gt;=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt;\/&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;14&lt;\/span&gt;, &lt;span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: rgb(0, 92, 197);\"&gt;max&lt;\/span&gt;=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt;\/&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;2&lt;\/span&gt;, vary=&lt;span class=\"hljs-literal\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;True&lt;\/span&gt;)  &lt;span class=\"hljs-comment\" style=\"box-sizing: border-box; color: rgb(150, 152, 150);\"&gt;# E -&amp;gt; I rate&lt;\/span&gt;     params.add(&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;\"gamma\"&lt;\/span&gt;, value=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt;\/&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;9&lt;\/span&gt;, &lt;span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: rgb(0, 92, 197);\"&gt;min&lt;\/span&gt;=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt;\/&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;14&lt;\/span&gt;, &lt;span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: rgb(0, 92, 197);\"&gt;max&lt;\/span&gt;=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt;\/&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;7&lt;\/span&gt;, vary=&lt;span class=\"hljs-literal\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;True&lt;\/span&gt;)  &lt;span class=\"hljs-comment\" style=\"box-sizing: border-box; color: rgb(150, 152, 150);\"&gt;# I -&amp;gt; R rate&lt;\/span&gt;     params.add(&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;\"rho\"&lt;\/span&gt;, expr=&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;'gamma'&lt;\/span&gt;, vary=&lt;span class=\"hljs-literal\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;False&lt;\/span&gt;)  &lt;span class=\"hljs-comment\" style=\"box-sizing: border-box; color: rgb(150, 152, 150);\"&gt;# I -&amp;gt; D rate&lt;\/span&gt;     &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;return&lt;\/span&gt; params  &lt;span class=\"hljs-function\" style=\"box-sizing: border-box;\"&gt;&lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;def&lt;\/span&gt; &lt;span class=\"hljs-title\" style=\"box-sizing: border-box; color: rgb(121, 93, 163);\"&gt;get_initial_conditions&lt;\/span&gt;(&lt;span class=\"hljs-params\" style=\"box-sizing: border-box;\"&gt;self, data&lt;\/span&gt;):&lt;\/span&gt;     &lt;span class=\"hljs-comment\" style=\"box-sizing: border-box; color: rgb(150, 152, 150);\"&gt;# Simulate such initial params as to obtain as many deaths as in data&lt;\/span&gt;     population = self.params[&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;'population'&lt;\/span&gt;]     epidemic_started_days_ago = self.params[&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;'epidemic_started_days_ago'&lt;\/span&gt;]      t = np.arange(epidemic_started_days_ago)     (S, E, I, R, D) = self.predict(t, (population - &lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt;, &lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;0&lt;\/span&gt;, &lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt;, &lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;0&lt;\/span&gt;, &lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;0&lt;\/span&gt;))      I0 = I[-&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt;]     E0 = E[-&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt;]     Rec0 = R[-&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt;]     D0 = D[-&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt;]     S0 = S[-&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt;]     &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;return&lt;\/span&gt; (S0, E0, I0, Rec0, D0)  &lt;span class=\"hljs-function\" style=\"box-sizing: border-box;\"&gt;&lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;def&lt;\/span&gt; &lt;span class=\"hljs-title\" style=\"box-sizing: border-box; color: rgb(121, 93, 163);\"&gt;step&lt;\/span&gt;(&lt;span class=\"hljs-params\" style=\"box-sizing: border-box;\"&gt;self, initial_conditions, t&lt;\/span&gt;):&lt;\/span&gt;     population = self.params[&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;'population'&lt;\/span&gt;]     delta = self.params[&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;'delta'&lt;\/span&gt;]     gamma = self.params[&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;'gamma'&lt;\/span&gt;]     alpha = self.params[&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;'alpha'&lt;\/span&gt;]     rho = self.params[&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;'rho'&lt;\/span&gt;]          rt = self.params[&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;'r0'&lt;\/span&gt;].value     beta = rt * gamma      S, E, I, R, D = initial_conditions      new_exposed = beta * I * (S \/ population)     new_infected = delta * E     new_dead = alpha * rho * I     new_recovered = gamma * (&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt; - alpha) * I      dSdt = -new_exposed     dEdt = new_exposed - new_infected     dIdt = new_infected - new_recovered - new_dead     dRdt = new_recovered     dDdt = new_dead      &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;assert&lt;\/span&gt; S + E + I + R + D - population &amp;lt;= &lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1e10&lt;\/span&gt;     &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;assert&lt;\/span&gt; dSdt + dIdt + dEdt + dRdt + dDdt &amp;lt;= &lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1e10&lt;\/span&gt;     &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;return&lt;\/span&gt; dSdt, dEdt, dIdt, dRdt, dDdt  &lt;span class=\"hljs-function\" style=\"box-sizing: border-box;\"&gt;&lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;def&lt;\/span&gt; &lt;span class=\"hljs-title\" style=\"box-sizing: border-box; color: rgb(121, 93, 163);\"&gt;predict&lt;\/span&gt;(&lt;span class=\"hljs-params\" style=\"box-sizing: border-box;\"&gt;self, t_range, initial_conditions&lt;\/span&gt;):&lt;\/span&gt;     ret = odeint(self.step, initial_conditions, t_range)     &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;return&lt;\/span&gt; ret.T  <\/code><\/pre>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f.<\/p>\n<p>\u041c\u0435\u0442\u043e\u0434&nbsp;<code>get_fit_params<\/code>&nbsp;\u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043f\u0430\u0440\u0430\u043c\u0442\u0435\u0440\u043e\u0432. \u041c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443&nbsp;<code>lmfit<\/code>, \u043d\u043e \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u043d\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443&nbsp;<code>Parameters<\/code>&nbsp;\u043a\u0430\u043a \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c. \u0414\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b&nbsp;<a href=\"https:\/\/www.frontiersin.org\/articles\/10.3389\/fpubh.2020.598547\/full\">\u043c\u0435\u0442\u0430-\u0430\u043d\u0430\u043b\u0438\u0437\u044b \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a COVID-19<\/a>.<\/p>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440&nbsp;<code>epidemic_started_days_ago<\/code>&nbsp;\u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u0434\u0430\u0442\u044c \u0434\u0430\u0442\u0443 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u043e\u0433\u043e. \u0412 \u043c\u043e\u0451\u043c \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u044d\u0442\u043e&nbsp;<a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A0%D0%B0%D1%81%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_COVID-19_%D0%B2_%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B5#%D0%9C%D0%B0%D1%80%D1%82_2020_%D0%B3%D0%BE%D0%B4%D0%B0\">2 \u043c\u0430\u0440\u0442\u0430 2020<\/a>.<\/p>\n<p>\u041c\u0435\u0442\u043e\u0434&nbsp;<code>step<\/code>&nbsp;\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438. \u041e\u043d \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0432\u0441\u0435\u0445 \u0433\u0440\u0443\u043f\u043f \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u0440\u0442\u0435\u0436\u0430&nbsp;<code>initial_conditions<\/code>&nbsp;\u0438 \u043d\u043e\u043c\u0435\u0440 \u0434\u043d\u044f&nbsp;<code>t<\/code>, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0433\u0440\u0443\u043f\u043f \u0437\u0430 \u0434\u0435\u043d\u044c.<\/p>\n<p>\u041c\u0435\u0442\u043e\u0434&nbsp;<code>predict<\/code>&nbsp;\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0438 \u043c\u0430\u0441\u0441\u0438\u0432&nbsp;<code>t_range<\/code>. \u041e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442&nbsp;<a href=\"https:\/\/docs.scipy.org\/doc\/scipy\/reference\/generated\/scipy.integrate.odeint.html\">scipy.integrate.odeint<\/a>&nbsp;\u043d\u0430 \u043c\u0435\u0442\u043e\u0434\u0435&nbsp;<code>step<\/code>, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0433\u0440\u0443\u043f\u043f \u0432 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430&nbsp;<code>t_range<\/code>.<\/p>\n<p>\u041c\u0435\u0442\u043e\u0434&nbsp;<code>get_initial_conditions<\/code>&nbsp;\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u044c \u0441 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u043d\u043e\u0433\u043e \u043d\u0430&nbsp;<code>epidemic_started_days_ago<\/code>&nbsp;\u0434\u043d\u0435\u0439 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0433\u0440\u0443\u043f\u043f. \u0414\u0430\u043b\u0435\u0435 \u044d\u0442\u0438 \u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0434\u043d\u0435\u0439.<\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u043c\u043e\u0434\u0435\u043b\u044c \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u043c \u0435\u0451 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e:<\/p>\n<pre><code>model = BarebonesSEIR() model.params = model.get_fit_params() train_initial_conditions = model.get_initial_conditions(train_subset) train_t = np.arange(len(train_subset)) (S, E, I, R, D) = model.predict(train_t, train_initial_conditions) plt.figure(figsize=(10, 7)) plt.plot(train_subset.date, train_subset['total_dead'], label='ground truth') plt.plot(train_subset.date, D, label='predicted', color='black', linestyle='dashed' ) plt.legend() plt.title('Total deaths') plt.show()<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/92a\/24d\/29d\/92a24d29d3aec4c47f340463232db7c2.png\" width=\"695\" height=\"460\"><figcaption><\/figcaption><\/figure>\n<p>\u041c\u043e\u0434\u0435\u043b\u044c \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0432\u0441\u0435 \u0443\u0436\u0435 \u0443\u043c\u0435\u0440\u043b\u0438 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0431\u043e\u043b\u0435\u043b\u0438, \u0430 \u044d\u043f\u0438\u0434\u0435\u043c\u0438\u044f \u0434\u0430\u0432\u043d\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0430\u0441\u044c. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0443\u0436\u0430\u0441\u043d\u044b\u0439, \u043d\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439.<\/p>\n<p>\u0412\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0443 \u0432\u0441\u0435\u0445 \u0433\u0440\u0443\u043f\u043f SEIRD:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/65f\/baa\/fa3\/65fbaafa3f872536d5bc4f46058af92c.png\" width=\"717\" height=\"460\"><figcaption><\/figcaption><\/figure>\n<p>\u041c\u043e\u0434\u0435\u043b\u044c \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043e\u0434\u043d\u0443 \u201c\u0432\u043e\u043b\u043d\u0443\u201d \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u0432\u044b\u0437\u0434\u043e\u0440\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442, \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0439 \u0438\u043c\u043c\u0443\u043d\u0438\u0442\u0435\u0442 \u0438 \u044d\u043f\u0438\u0434\u0435\u043c\u0438\u044f \u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u043d\u0435\u0442. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043c\u044b \u043f\u043e\u0434\u0431\u0435\u0440\u0435\u043c \u0441\u0430\u043c\u044b\u0435 \u043b\u0443\u0447\u0448\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u044d\u0442\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u0430 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u201c\u0432\u043e\u043b\u043d\u201d \u044d\u043f\u0438\u0434\u0435\u043c\u0438\u0438. \u041d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<\/p>\n<h3>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0435 \u043c\u0435\u0440\u044b<\/h3>\n<p>\u041e\u0434\u043d\u0430 \u0438\u0437 \u043f\u0440\u0438\u0447\u0438\u043d \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u201c\u0432\u043e\u043b\u043d\u201d \u044d\u0442\u043e \u0441\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0435 \u043c\u0435\u0440\u044b. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u043a\u0430\u0440\u0430\u043d\u0442\u0438\u043d\u043d\u044b\u0435 \u043c\u0435\u0440\u044b \u0432 \u0434\u0435\u043d\u044c&nbsp;<strong><em>t<\/em><\/strong>, \u0441\u043d\u0438\u0436\u0430\u044e\u0442&nbsp;<strong><em>R0<\/em><\/strong>&nbsp;\u0431\u043e\u043b\u0435\u0437\u043d\u0438 \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u043d\u0442&nbsp;<strong><em>q(t)<\/em><\/strong>. \u0422\u043e\u0433\u0434\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0434\u043d\u044f \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0440\u0435\u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043a\u0430\u0440\u0430\u043d\u0442\u0438\u043d\u0430:&nbsp;<strong><em>Rt = R0 &#8212; R0 * q(t)<\/em><\/strong>. \u041e\u0442\u0441\u044e\u0434\u0430 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c&nbsp;<strong><em>\u03b2(t) = Rt * y<\/em><\/strong>&nbsp;\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0451 \u0432 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f\u0445.<\/p>\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438&nbsp;<strong><em>q(t)<\/em><\/strong>. \u0412 \u0441\u0432\u043e\u0451\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0441\u0442\u0443\u043f\u0435\u043d\u0447\u0430\u0442\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e. \u0414\u0435\u043b\u0438\u043c \u0432\u0435\u0441\u044c \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0438 \u043f\u043e 60 \u0434\u043d\u0435\u0439, \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440: \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043a\u0430\u0440\u0430\u043d\u0442\u0438\u043d\u0430 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434. \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u043c\u0435\u0436\u0434\u0443 \u043e\u0442\u0440\u0435\u0437\u043a\u0430\u043c\u0438 \u0441\u0442\u043e\u0438\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043b\u0430\u0432\u043d\u044b\u043c\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e, \u0438\u043d\u0430\u0447\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0433\u043b\u0430\u0434\u043a\u043e\u0439 \u0438 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u043e\u0436\u043d\u043e.<\/p>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438.<\/p>\n<pre><code class=\"python\">def sigmoid(x, xmin, xmax, a, b, c, r):     x_scaled = (x - xmin) \/ (xmax - xmin)     out = (a * np.exp(c * r) + b * np.exp(r * x_scaled)) \/ (np.exp(c * r) + np.exp(x_scaled * r))     return out def stepwise_soft(t, coefficients, r=20, c=0.5):     t_arr = np.array(list(coefficients.keys())) min_index = np.&lt;span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: rgb(0, 92, 197);\"&gt;min&lt;\/span&gt;(t_arr) max_index = np.&lt;span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: rgb(0, 92, 197);\"&gt;max&lt;\/span&gt;(t_arr)  &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;if&lt;\/span&gt; t &amp;lt;= min_index:     &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;return&lt;\/span&gt; coefficients[min_index] &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;elif&lt;\/span&gt; t &amp;gt;= max_index:     &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;return&lt;\/span&gt; coefficients[max_index] &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;else&lt;\/span&gt;:     index = np.&lt;span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: rgb(0, 92, 197);\"&gt;min&lt;\/span&gt;(t_arr[t_arr &amp;gt;= t])  &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;if&lt;\/span&gt; &lt;span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: rgb(0, 92, 197);\"&gt;len&lt;\/span&gt;(t_arr[t_arr &amp;lt; index]) == &lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;0&lt;\/span&gt;:     &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;return&lt;\/span&gt; coefficients[index] prev_index = np.&lt;span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: rgb(0, 92, 197);\"&gt;max&lt;\/span&gt;(t_arr[t_arr &amp;lt; index]) &lt;span class=\"hljs-comment\" style=\"box-sizing: border-box; color: rgb(150, 152, 150);\"&gt;# sigmoid smoothing&lt;\/span&gt; q0, q1 = coefficients[prev_index], coefficients[index] out = sigmoid(t, prev_index, index, q0, q1, c, r) &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;return&lt;\/span&gt; out  t_range = np.arange(100) coefficients = {     0: 0,     30: 0.5,     60: 1,     100: 0.4, } plt.title('\u041f\u0440\u0438\u043c\u0435\u0440 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0443\u0440\u043e\u0432\u043d\u044f \u043a\u0430\u0440\u0430\u043d\u0442\u0438\u043d\u0430') plt.scatter(coefficients.keys(), coefficients.values(), label='\u041c\u043e\u043c\u0435\u043d\u0442\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u043a\u0430\u0440\u0430\u043d\u0442\u0438\u043d\u0430') plt.plot(t_range, [stepwise_soft(t, coefficients, r=20, c=0.5) for t in t_range], label='\u0421\u0442\u0443\u043f\u0435\u043d\u0447\u0430\u0442\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0441 \u043f\u043b\u0430\u0432\u043d\u044b\u043c\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430\u043c\u0438') plt.xlabel('t') plt.ylabel('\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u043a\u0430\u043d\u0430\u0440\u0442\u0438\u043d\u0430') plt.legend(loc='lower center', bbox_to_anchor=(0.5, -0.6),) plt.show() <\/code><\/pre>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f48\/6f2\/901\/f486f290189d0b09c11920025b6db156.png\" width=\"486\" height=\"374\"><figcaption><\/figcaption><\/figure>\n<p>\u0427\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u043e \u0432 \u043d\u0430\u0448\u0443 SEIRD \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0448\u0430\u0433\u043e\u0432:<\/p>\n<ol>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u043a\u0430\u0440\u0430\u043d\u0442\u0438\u043d\u0430 \u0432&nbsp;<code>get_fit_params<\/code>. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043a\u0430\u0440\u0430\u043d\u0442\u0438\u043d \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043d\u0443\u043b\u044f, \u043d\u043e \u0434\u043b\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u0435\u0433\u043e \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0435\u0439. \u0422\u0430\u043a \u0436\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0433\u0438\u043f\u0435\u0440\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440, \u0437\u0430\u0434\u0430\u044e\u0449\u0438\u0439 \u0434\u043b\u0438\u043d\u0443 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432:&nbsp;<code>stepwise_size<\/code>, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 60 \u0434\u043d\u0435\u0439.<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"python\">def get_fit_params(self, data):     ...     params.add(f\"t0_q\", value=0, min=0, max=0.99, brute_step=0.1, vary=False)     piece_size = self.stepwise_size     for t in range(piece_size, len(data), piece_size):         params.add(f\"t{t}_q\", value=0.5, min=0, max=0.99, brute_step=0.1, vary=True)     return params<\/code><\/pre>\n<ol start=\"2\">\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c&nbsp;<a href=\"https:\/\/github.com\/btseytlin\/covid_peak_sir_modelling\/blob\/637ef78331c7f83fc2a43343e0c68b7542d72cff\/sir_models\/models.py#L70\">\u043d\u043e\u0432\u044b\u0439 \u043c\u0435\u0442\u043e\u0434<\/a>&nbsp;<code>get_step_rt_beta<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442&nbsp;<strong><em>\u03b2(t)<\/em><\/strong>&nbsp;\u0438&nbsp;<strong><em>Rt<\/em><\/strong>&nbsp;\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u0442\u0443\u043f\u0435\u043d\u0447\u0430\u0442\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e.<\/p>\n<\/li>\n<li>\n<p>\u0412 \u043c\u0435\u0442\u043e\u0434\u0435&nbsp;<code>step<\/code>&nbsp;\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c&nbsp;<code>get_step_rt_beta<\/code>,&nbsp;<strong><em>\u03b2(t)<\/em><\/strong>&nbsp;\u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043a\u0430\u0440\u0430\u043d\u0442\u0438\u043d\u0430 \u0432 \u0434\u0435\u043d\u044c&nbsp;<code>t<\/code>.<\/p>\n<\/li>\n<\/ol>\n<h3>\u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043d\u0435\u043f\u043e\u043b\u043d\u043e\u0442\u0443 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438<\/h3>\n<p>\u0418\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e \u043d\u0435 \u0432\u0441\u0435 \u0441\u043b\u0443\u0447\u0430\u0438 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443. \u041c\u043d\u043e\u0433\u0438\u0435 \u043b\u044e\u0434\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u0432 \u0431\u043e\u043b\u044c\u043d\u0438\u0446\u044b, \u0430 \u0447\u0430\u0441\u0442\u044c \u0431\u043e\u043b\u0435\u0435\u0442 \u0431\u0435\u0437\u0441\u0438\u043c\u043f\u0442\u043e\u043c\u043d\u043e. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0443\u0447\u0435\u0441\u0442\u044c \u044d\u0442\u043e \u0432 \u043d\u0430\u0448\u0435\u0439 \u043c\u043e\u0434\u0435\u043b\u0438.<\/p>\n<p>\u0418\u0437\u043c\u0435\u043d\u0438\u043c \u0433\u0440\u0443\u043f\u043f\u044b Infected, Recovered \u0438 Dead \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<ul>\n<li>\n<p>Iv(t) \u2014 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u044e\u0442 \u0432\u0438\u0440\u0443\u0441, \u0432\u0438\u0434\u043d\u044b \u0432 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0435.<\/p>\n<\/li>\n<li>\n<p>I(t) \u2014 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u044e\u0442 \u0432\u0438\u0440\u0443\u0441, \u043d\u0435 \u0432\u0438\u0434\u043d\u044b \u0432 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0435.<\/p>\n<\/li>\n<li>\n<p>Rv(t) \u2014 \u043f\u0435\u0440\u0435\u0431\u043e\u043b\u0435\u043b\u0438, \u0432\u0438\u0434\u043d\u044b \u0432 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0435.<\/p>\n<\/li>\n<li>\n<p>R(t) \u2014 \u043f\u0435\u0440\u0435\u0431\u043e\u043b\u0435\u043b\u0438, \u043d\u0435 \u0432\u0438\u0434\u043d\u044b \u0432 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0435.<\/p>\n<\/li>\n<li>\n<p>Dv(t) \u2014 \u043f\u043e\u0433\u0438\u0431\u043b\u0438, \u0432\u0438\u0434\u043d\u044b \u0432 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0435.<\/p>\n<\/li>\n<li>\n<p>D(t) \u2014 \u043f\u043e\u0433\u0438\u0431\u043b\u0438, \u043d\u0435 \u0432\u0438\u0434\u043d\u044b \u0432 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0434\u0432\u0430 \u043d\u043e\u0432\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430:<\/p>\n<ul>\n<li>\n<p><strong><em>pi<\/em><\/strong>&nbsp;\u2014 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0432 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443, \u0442\u043e \u0435\u0441\u0442\u044c \u0432 \u0433\u0440\u0443\u043f\u043f\u0443 Iv.<\/p>\n<\/li>\n<li>\n<p><strong><em>pd<\/em><\/strong>&nbsp;\u2014 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u043c\u0435\u0440\u0442\u0438 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u043e\u0433\u043e, \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u043e\u0433\u043e \u0432 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0435, \u0432 \u0433\u0440\u0443\u043f\u043f\u0443 Dv. \u0417\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0435 \u0438\u0437 \u0433\u0440\u0443\u043f\u043f\u044b Iv \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 Dv, \u043d\u043e \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0447\u0435\u0441\u0442\u044c, \u0447\u0442\u043e \u0447\u0430\u0441\u0442\u044c \u0441\u043c\u0435\u0440\u0442\u0435\u0439 \u043d\u0435\u0437\u0430\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0445 \u0442\u0430\u043a \u0436\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u043f\u043e \u0441\u043c\u0435\u0440\u0442\u043d\u043e\u0441\u0442\u0438 \u043e\u0442 COVID-19.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043a\u043e\u043d\u0446\u0435 \u043a\u043e\u043d\u0446\u043e\u0432 \u043c\u044b \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043c \u043a \u0442\u0430\u043a\u043e\u0439 \u0441\u0445\u0435\u043c\u0435 \u043c\u043e\u0434\u0435\u043b\u0438, \u0433\u0434\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0433\u0440\u0430\u0444\u0430 \u044d\u0442\u043e \u0433\u0440\u0443\u043f\u043f\u044b, \u0430 \u0441\u0442\u0440\u0435\u043b\u043a\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442 \u043a\u0430\u043a \u043b\u044e\u0434\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/37e\/44e\/3dc\/37e44e3dcea63b8348505d96c7591be8.jpeg\" width=\"1306\" height=\"765\"><figcaption><\/figcaption><\/figure>\n<p>\u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0435\u0451 SEIRD \u0441\u043e \u0441\u043a\u0440\u044b\u0442\u044b\u043c\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043c\u0438. \u041e\u043d\u0430 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e SEIRD \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f\u043c\u0438. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c&nbsp;<a href=\"https:\/\/github.com\/btseytlin\/covid_peak_sir_modelling\/blob\/637ef78331c7f83fc2a43343e0c68b7542d72cff\/sir_models\/models.py#L143\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<h3>\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b<\/h3>\n<p>\u041c\u043e\u0434\u0435\u043b\u044c \u0433\u043e\u0442\u043e\u0432\u0430, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u044c\u044e Iv(t), Rv(t) \u0438 Dv(t) \u0431\u044b\u043b\u0438 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043b\u0438\u0436\u0435 \u043a \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u043c. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0445 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432.<\/p>\n<p>\u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0435\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e&nbsp;<a href=\"https:\/\/lmfit.github.io\/lmfit-py\/fitting.html#lmfit.minimizer.minimize\">lmfit.minimize<\/a>. \u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 callable, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0439 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u043e\u0442 \u0438\u0441\u0442\u0438\u043d\u044b (\u043e\u0441\u0442\u0430\u0442\u043a\u0438, residuals), \u0438 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0435\u0442 \u0442\u0430\u043a\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u0447\u0442\u043e\u0431\u044b \u0441\u0443\u043c\u043c\u0430 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0439 \u0431\u044b\u043b\u0430 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c Levenberg-Marquardt (<code>method=\u2019leastsq\u2019<\/code>), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043d\u0430 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442\u0441\u044f \u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0430. \u0412\u0430\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u043e \u044d\u0442\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u0442\u044c&nbsp;<code>stepwise_size<\/code>.<\/p>\n<p>\u042f \u043d\u0430\u043f\u0438\u0441\u0430\u043b&nbsp;<a href=\"https:\/\/github.com\/btseytlin\/covid_peak_sir_modelling\/blob\/637ef78331c7f83fc2a43343e0c68b7542d72cff\/sir_models\/fitters.py#L13\">\u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u043e\u0431\u0435\u0440\u0442\u043a\u0443<\/a>&nbsp;\u0432\u043e\u043a\u0440\u0443\u0433 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c&nbsp;<code>BaseFitter<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u044b\u0435 \u0432\u0435\u0449\u0438. \u041d\u043e \u0432 \u043a\u043e\u043d\u0446\u0435 \u043a\u043e\u043d\u0446\u043e\u0432 \u0432\u0441\u0451 \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u0432\u044b\u0437\u043e\u0432\u0443&nbsp;<code>minimize<\/code>.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435:<\/p>\n<pre><code class=\"python\">def smape_resid_transform(true, pred, eps=1e-5):     return (true - pred) \/ (np.abs(true) + np.abs(pred) + eps) class HiddenCurveFitter(BaseFitter): ...     def residual(self, params, t_vals, data, model):         model.params = params     initial_conditions = model.get_initial_conditions(data)      (S, E, I, Iv, R, Rv, D, Dv), history = model.predict(t_vals, initial_conditions, history=&lt;span class=\"hljs-literal\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;False&lt;\/span&gt;)     (new_exposed,      new_infected_invisible, new_infected_visible,      new_recovered_invisible,      new_recovered_visible,      new_dead_invisible, new_dead_visible) = model.compute_daily_values(S, E, I, Iv, R, Rv, D, Dv)      new_infected_visible = new_infected_visible     new_dead_visible = new_dead_visible     new_recovered_visible = new_recovered_visible      true_daily_cases = data[self.new_cases_col].values[&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt;:]     true_daily_deaths = data[self.new_deaths_col].values[&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt;:]     true_daily_recoveries = data[self.new_recoveries_col].values[&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt;:]      resid_I_new = smape_resid_transform(true_daily_cases, new_infected_visible)     resid_D_new = smape_resid_transform(true_daily_deaths, new_dead_visible)     resid_R_new = smape_resid_transform(true_daily_recoveries, new_recovered_visible)      &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;if&lt;\/span&gt; self.weights:         residuals = np.concatenate([             self.weights[&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;'I'&lt;\/span&gt;] * resid_I_new,             self.weights[&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;'D'&lt;\/span&gt;] * resid_D_new,             self.weights[&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;'R'&lt;\/span&gt;] * resid_R_new,         ]).flatten()     &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;else&lt;\/span&gt;:         residuals = np.concatenate([             resid_I_new,             resid_D_new,             resid_R_new,         ]).flatten()      &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;return&lt;\/span&gt; residuals<\/code><\/pre>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0438\u0434\u0435\u044f \u043f\u0440\u043e\u0441\u0442\u0430\u044f. \u0414\u043b\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0430&nbsp;<code>t_vals<\/code>&nbsp;\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432 \u0434\u0435\u043d\u044c, \u0441\u043c\u0435\u0440\u0442\u0435\u0439 \u0432 \u0434\u0435\u043d\u044c \u0438 \u0432\u044b\u0437\u0434\u043e\u0440\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u0432 \u0434\u0435\u043d\u044c. \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043e\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0438 \u043a\u043b\u0430\u0434\u0435\u043c \u0432\u0441\u0451 \u044d\u0442\u043e \u0432 \u043e\u0434\u0438\u043d \u043c\u0430\u0441\u0441\u0438\u0432.<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0440\u044e\u043a\u043e\u0432, \u0434\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0434\u043e\u0439\u0442\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u044d\u043c\u043f\u0438\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0442\u044b\u043a\u0430.<\/p>\n<p>\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u043e\u0432\u044b\u0445 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0445 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u043e\u0432\u044b\u0445 \u0441\u043c\u0435\u0440\u0442\u0435\u0439 \u0438\u043c\u0435\u044e\u0442 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0440\u0430\u0437\u043d\u044b\u0439 \u043c\u0430\u0441\u0448\u0442\u0430\u0431: \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c 1000 \u043d\u043e\u0432\u044b\u0445 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0445 \u0437\u0430 \u0434\u0435\u043d\u044c \u0438 \u043b\u0438\u0448\u044c 1 \u0441\u043c\u0435\u0440\u0442\u044c \u0432 \u0442\u043e\u0442 \u0436\u0435 \u0434\u0435\u043d\u044c. \u0415\u0441\u043b\u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0435 \u043e\u0441\u0442\u0430\u0442\u043a\u0438, \u0442\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u201c\u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435\u201d \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u043f\u043e \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u043c. \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0443 \u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043a&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Symmetric_mean_absolute_percentage_error#:~:text=Symmetric%20mean%20absolute%20percentage%20error%20(SMAPE%20or%20sMAPE)%20is%20an,t%20is%20the%20forecast%20value.\">\u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0435<\/a>&nbsp;\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438&nbsp;<code>smape_resid_transform<\/code>.<\/p>\n<p>\u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c, \u0447\u0442\u043e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043f\u043e \u0441\u043c\u0435\u0440\u0442\u044f\u043c \u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u043d\u0435\u0435 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u043f\u043e \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c \u0438 \u0432\u044b\u0437\u0434\u043e\u0440\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u043c. \u0427\u0442\u043e\u0431\u044b \u0432\u043d\u0435\u0441\u0442\u0438 \u044d\u0442\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u0432\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0432\u0435\u0441\u0430 (<code>self.weights<\/code>) \u0434\u043b\u044f \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432. \u0425\u043e\u0440\u043e\u0448\u043e \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0442\u0430\u043a\u0438\u0435 \u0432\u0435\u0441\u0430:&nbsp;<code>0.5<\/code>&nbsp;\u0434\u043b\u044f \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432 \u043f\u043e \u0441\u043c\u0435\u0440\u0442\u044f\u043c \u0438&nbsp;<code>0.25<\/code>&nbsp;\u0434\u043b\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445.<\/p>\n<h3>\u0422\u0440\u0435\u043d\u0438\u0440\u0443\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u044c<\/h3>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u043d\u0430\u0442\u0440\u0435\u043d\u0438\u0440\u0443\u0435\u043c SEIRD \u0441\u043e \u0441\u043a\u0440\u044b\u0442\u044b\u043c\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043c\u0438. \u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0432\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043b\u0430\u0433\u043e\u043c \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0427\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u043b\u0438\u044f\u043b\u043e \u043d\u0430 \u043d\u0430\u0448\u0443 \u043c\u043e\u0434\u0435\u043b\u044c \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0433\u043b\u0430\u0436\u0435\u043d\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432.<\/p>\n<pre><code class=\"python\">from sir_models.fitters import HiddenCurveFitter from sir_models.models import SEIRHidden stepwize_size = 60 weights = {     'I': 0.25,     'R': 0.25,     'D': 0.5, } model = SEIRHidden(stepwise_size=stepwize_size) fitter = HiddenCurveFitter(      new_deaths_col='deaths_per_day_ma7',      new_cases_col='infected_per_day_ma7',      new_recoveries_col='recovered_per_day_ma7',      weights=weights,      max_iters=1000, ) fitter.fit(model, train_subset) result = fitter.result result<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ef0\/d9c\/80e\/ef0d9c80e07822cf5908243bf211d7aa.png\" width=\"577\" height=\"589\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0444\u0438\u0442 \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430 \u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/219\/163\/37d\/21916337d11a977b29d8a5351cf055bf.png\" width=\"637\" height=\"439\"><figcaption><\/figcaption><\/figure>\n<p>\u0412\u043e\u0442 \u044d\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0435 \u0434\u0435\u043b\u043e! \u041c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0441\u043c\u0435\u0440\u0442\u0435\u0439 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443. \u041f\u043e \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c \u0434\u0440\u0443\u0433\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430: \u0432 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043e\u0434\u043d\u0430 \u043f\u044f\u0442\u0430\u044f.<\/p>\n<p>\u041f\u043e\u043b\u0435\u0437\u043d\u043e \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b: \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u044b\u0435 \u0441\u043c\u0435\u0440\u0442\u0438, \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438 \u0432\u044b\u0437\u0434\u043e\u0440\u043e\u0432\u043b\u0435\u043d\u0438\u044f. \u041c\u043e\u0434\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0432\u0435\u0440\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043f\u043e \u0441\u043c\u0435\u0440\u0442\u044f\u043c, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 10 \u0440\u0430\u0437 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u044b\u0437\u0434\u043e\u0440\u043e\u0432\u043b\u0435\u043d\u0438\u0439, \u0438\u043b\u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c0b\/03c\/bed\/c0b03cbed75e4f674c2a994d241cd34b.png\" width=\"1415\" height=\"1055\"><figcaption><\/figcaption><\/figure>\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u0437\u0434\u0435\u0441\u044c \u0442\u043e\u0436\u0435 \u0432\u0441\u0451 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e. \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0448\u0438\u0431\u0430\u0435\u0442\u0441\u044f, \u043d\u043e \u043d\u0430\u0441 \u044d\u0442\u043e \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442: \u043d\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u0435\u043d \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u0438\u0442 \u043d\u0430 \u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u041c\u043e\u0434\u0435\u043b\u044c \u0432\u0435\u0440\u043d\u043e \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043e\u0431\u0449\u0438\u0439 \u0442\u0440\u0435\u043d\u0434. \u0417\u043d\u0430\u0447\u0438\u0442, \u043e\u043d\u0430 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u201c\u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u044d\u043f\u0438\u0434\u0435\u043c\u0438\u0438\u201d, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043e\u0448\u0438\u0431\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0434\u043d\u0438.<\/p>\n<h3>\u0412\u0435\u0440\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u044c c \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u0440\u043e\u0441\u0441-\u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438<\/h3>\n<p>\u0425\u043e\u0440\u043e\u0448\u0438\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u043d\u0430 \u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u044d\u0442\u043e \u043e\u0434\u043d\u043e, \u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u044d\u0442\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u043e\u0435. \u0425\u043e\u0442\u044c \u043c\u044b \u0438 \u043d\u0435 \u0441\u0442\u0440\u043e\u0438\u043c \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c, \u043d\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043e\u043d\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u0430 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u044d\u043f\u0438\u0434\u0435\u043c\u0438\u044e \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430.<\/p>\n<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u043f\u043e \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e COVID-19 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u0445 \u043a\u0443\u043c\u0443\u043b\u044f\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u043f\u043e\u0433\u0438\u0431\u0448\u0438\u0445, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0442\u0430\u043a \u0436\u0435.<\/p>\n<p>\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>\u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0430\u0442 \u0438\u0437 \u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u0430\u0436\u0434\u044b\u0439 20-\u044b\u0439 \u0434\u0435\u043d\u044c.<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0434\u0430\u0442\u044b:<\/p>\n<ul>\n<li>\n<p>\u041e\u0431\u0443\u0447\u0430\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430 \u0432\u0441\u0435\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043e \u044d\u0442\u043e\u0439 \u0434\u0430\u0442\u044b.<\/p>\n<\/li>\n<li>\n<p>\u0414\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u0441\u0443\u043c\u043c\u0430\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u043e\u0433\u0438\u0431\u0448\u0438\u0445 \u043d\u0430 30 \u0434\u043d\u0435\u0439 \u0432\u043f\u0435\u0440\u0435\u0434.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0447\u0438\u0442\u0430\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0443 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0441\u0440\u0435\u0434\u043d\u044e\u044e \u043e\u0448\u0438\u0431\u043a\u0443 \u043c\u043e\u0434\u0435\u043b\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c \u043e\u0448\u0438\u0431\u043a\u0443 \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 \u0431\u0435\u0439\u0437\u043b\u0430\u0439\u043d\u0430: \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0434\u043d\u044f.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"python\">from sir_models.utils import eval_on_select_dates_and_k_days_ahead from sir_models.utils import smape from sklearn.metrics import mean_absolute_error K = 30 last_day = train_subset.date.iloc[-1] - pd.to_timedelta(K, unit='D') eval_dates = pd.date_range(start='2020-06-01', end=last_day)[::20] def eval_hidden_moscow(train_df, t, train_t, eval_t):     weights = {         'I': 0.25,         'R': 0.25,         'D': 0.5,     }     model = SEIRHidden()     fitter = HiddenCurveFitter(         new_deaths_col='deaths_per_day_ma7',         new_cases_col='infected_per_day_ma7',         new_recoveries_col='recovered_per_day_ma7',         weights=weights,         max_iters=1000,         save_params_every=500)     fitter.fit(model, train_df) train_initial_conditions = model.get_initial_conditions(train_df) train_states, history = model.predict(train_t, train_initial_conditions, history=&lt;span class=\"hljs-literal\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;False&lt;\/span&gt;)  test_initial_conds = [compartment[-&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt;] &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;for&lt;\/span&gt; compartment &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;in&lt;\/span&gt; train_states] test_states, history = model.predict(eval_t, test_initial_conds, history=&lt;span class=\"hljs-literal\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;False&lt;\/span&gt;)      &lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;return&lt;\/span&gt; model, fitter, test_states  (models, fitters,  model_predictions,  train_dfs, test_dfs) = eval_on_select_dates_and_k_days_ahead(train_subset,                                         eval_func=eval_hidden_moscow,                                         eval_dates=eval_dates,                                         k=K) model_pred_D = [pred[7] for pred in model_predictions] true_D = [tdf.total_dead.values for tdf in test_dfs] baseline_pred_D = [[tdf.iloc[-1].total_dead]*K for tdf in train_dfs] overall_errors_model = [mean_absolute_error(true, pred) for true, pred in zip(true_D, model_pred_D)] overall_errors_baseline = [mean_absolute_error(true, pred) for true, pred in zip(true_D, baseline_pred_D)] print('Mean overall error baseline', np.mean(overall_errors_baseline).round(3)) print('Mean overall error model', np.mean(overall_errors_model).round(3)) overall_smape_model = [smape(true, pred) for true, pred in zip(true_D, model_pred_D)] np.median(overall_smape_model)<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f19\/8d5\/dfe\/f198d5dfe27cb6c768d1f76be9fb8953.png\" width=\"1408\" height=\"495\"><figcaption><\/figcaption><\/figure>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<ul>\n<li>\n<p>Mean Absolute Arror \u0431\u0435\u0439\u0437\u043b\u0430\u0439\u043d\u0430: 714.<\/p>\n<\/li>\n<li>\n<p>Mean Absolute Arror \u043c\u043e\u0434\u0435\u043b\u0438: 550.<\/p>\n<\/li>\n<li>\n<p>Symmetric Mean Absolute Percentage Error: 4.6%<\/p>\n<\/li>\n<\/ul>\n<p>\u041c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0431\u0438\u043b\u0430 \u0431\u0435\u0439\u0437\u043b\u0430\u0439\u043d \u0438 \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 5% \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u044c, \u0447\u0442\u043e \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0441 \u0434\u0432\u0443\u043c\u044f \u0448\u0442\u0430\u043c\u043c\u0430\u043c\u0438.<\/p>\n<h3>\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u0448\u0442\u0430\u043c\u043c\u043e\u0432<\/h3>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/66f\/2d7\/1a6\/66f2d71a67d0de74ae8856128d8635d7.png\" width=\"1319\" height=\"365\"><figcaption><\/figcaption><\/figure>\n<p>\u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u0441 \u0434\u0432\u0443\u043c\u044f \u0448\u0442\u0430\u043c\u043c\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0434\u0432\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u044d\u043f\u0438\u0434\u0435\u043c\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0440\u0430\u0436\u0430\u044e\u0442 \u043b\u044e\u0434\u0435\u0439 \u0438\u0437 \u043e\u0434\u043d\u043e\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0438. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0435 \u043e\u0434\u043d\u0438\u043c \u0448\u0442\u0430\u043c\u043c\u043e\u043c \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u0440\u0430\u0437\u0438\u0442\u044c\u0441\u044f \u0434\u0440\u0443\u0433\u0438\u043c. \u0412 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 SEIR \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u044d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0433\u0440\u0443\u043f\u043f\u044b&nbsp;<strong><em>I(t)<\/em><\/strong>&nbsp;\u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0445 \u0443 \u043d\u0430\u0441 \u0442\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0435\u0442 \u0434\u0432\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0448\u0442\u0430\u043c\u043c\u043e\u0432:&nbsp;<strong><em>I1(t)<\/em><\/strong>&nbsp;\u0438&nbsp;<strong><em>I2(t)<\/em><\/strong>.<\/p>\n<p>\u041c\u043e\u0434\u0435\u043b\u044c \u044d\u043f\u0438\u0434\u0435\u043c\u0438\u0438 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e SARS-CoV-2 \u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u043e\u0431\u0443\u0447\u0438\u043b\u0438. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043b\u044f \u201c\u0431\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u043e\u0433\u043e\u201d \u0448\u0442\u0430\u043c\u043c\u0430. \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e&nbsp;<a href=\"https:\/\/science.sciencemag.org\/content\/372\/6538\/eabg3055.abstract\">\u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u043c<\/a>&nbsp;B.1.1.7 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c&nbsp;<strong><em>R0<\/em><\/strong>: \u043e\u043d \u0432 1.4 &#8212; 1.9 \u0440\u0430\u0437 \u0431\u043e\u043b\u044c\u0448\u0435. \u0417\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u0437\u044f\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e SARS-CoV-2, \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c&nbsp;<strong><em>R0<\/em><\/strong>&nbsp;\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043b\u044f B.1.1.7.<\/p>\n<p>\u041f\u043e\u043b\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043c\u043e\u0434\u0435\u043b\u0438 \u0441 \u0434\u0432\u0443\u043c\u044f \u0448\u0442\u0430\u043c\u043c\u0430\u043c\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/91b\/bd4\/1f1\/91bbd41f15457c7739b5e21c8841940a.jpeg\" width=\"1314\" height=\"760\"><figcaption><\/figcaption><\/figure>\n<p>\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435&nbsp;<a href=\"https:\/\/github.com\/btseytlin\/covid_peak_sir_modelling\/blob\/main\/sir_models\/models.py#L243\">\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u044d\u0442\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432 \u043a\u043e\u0434\u0435&nbsp;<\/a>\u043e\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u044d\u0442\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0435 \u043e\u0431\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0430 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0448\u0442\u0430\u043c\u043c\u0430. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440&nbsp;<code>beta2_mult<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0434\u0430\u0435\u0442, \u043d\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0434\u043e \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c&nbsp;<strong><em>\u03b21(t)<\/em><\/strong>&nbsp;\u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0448\u0442\u0430\u043c\u043c\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c&nbsp;<strong><em>\u03b22(t)<\/em><\/strong>&nbsp;\u0432\u0442\u043e\u0440\u043e\u0433\u043e.<\/p>\n<pre><code class=\"python\">class SEIRHiddenTwoStrains(SEIRHidden):     ...     @classmethod     def from_strain_one_model(cls, model):         strain1_params = model.params         strain1_params.add(\"beta2_mult\", value=1.5, min=1, max=2, vary=False)         return cls(params=deepcopy(strain1_params))<\/code><\/pre>\n<p>\u041c\u044b \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c, \u0447\u0442\u043e \u043c\u0435\u0440\u044b \u043a\u0430\u0440\u0430\u043d\u0442\u0438\u043d\u0430 \u0438 \u0432\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0442 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u0448\u0442\u0430\u043c\u043c \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u043d\u0430 \u0441\u0442\u0430\u0440\u044b\u0439, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0447\u0442\u043e \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043a\u0430\u0440\u0430\u043d\u0442\u0438\u043d\u0430 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u043e\u0439 \u0436\u0435, \u043a\u0430\u043a \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0434\u0435\u043d\u044c \u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<h2>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u044d\u043f\u0438\u0434\u0435\u043c\u0438\u0438 \u043f\u0440\u0438 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0438 B.1.1.7<\/h2>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u0448\u0442\u0430\u043c\u043c\u043e\u0432. \u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043a\u0430\u043a\u043e\u0435 \u0438\u043c\u0435\u043d\u043d\u043e&nbsp;<strong><em>R0<\/em><\/strong>&nbsp;\u0443 B.1.1.7, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 \u041c\u043e\u0441\u043a\u0432\u0435 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0435\u0439 \u044d\u0442\u043e\u0433\u043e \u0448\u0442\u0430\u043c\u043c\u0430. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432.<\/p>\n<p>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435&nbsp;<strong><em>R0<\/em><\/strong>&nbsp;\u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0434\u0430\u0442\u0443 \u0438 \u0432\u044b\u0441\u043e\u0442\u0443 \u043f\u0438\u043a\u0430 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u043d\u043e\u0432\u044b\u043c \u0448\u0442\u0430\u043c\u043c\u043e\u043c. \u0412 \u043b\u0443\u0447\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 B.1.1.7 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0434\u043b\u0435\u0432\u0430\u0435\u0442 \u044d\u043f\u0438\u0434\u0435\u043c\u0438\u044e \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u043d\u0430 \u043f\u043e\u043b\u0433\u043e\u0434\u0430-\u0433\u043e\u0434. \u0412 \u0445\u0443\u0434\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0432\u043e\u043b\u043d\u0430 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u0439.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/668\/43b\/8f9\/66843b8f921932f975656b8bc1bd2ea3.png\" width=\"1519\" height=\"1105\"><figcaption><\/figcaption><\/figure>\n<p>\u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0435\u0439 \u201c\u0431\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u043e\u0433\u043e \u0448\u0442\u0430\u043c\u043c\u0430\u201d \u0432\u043b\u0438\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0434\u0430\u0442\u0443 \u043f\u0438\u043a\u0430. \u0412\u043e \u0432\u0441\u0435\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043d\u043e\u0432\u0430\u044f \u0432\u043e\u043b\u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u0433\u043e\u0434\u0430 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0448\u0442\u0430\u043c\u043c\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/361\/bae\/89b\/361bae89be087fb08a3b88d6ddfdff65.png\" width=\"1519\" height=\"1105\"><figcaption><\/figcaption><\/figure>\n<p>\u041e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u0440\u0430\u043d\u0442\u0438\u043d\u0430 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c\u0443 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u0439.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8fd\/327\/64c\/8fd32764c8fba624445a7c8ecf5177f0.png\" width=\"1560\" height=\"1105\"><figcaption><\/figcaption><\/figure>\n<p><em>\u0410\u0432\u0442\u043e\u0440 \u0441\u0442\u0430\u0442\u044c\u0438:<\/em> <strong>\u0411\u043e\u0440\u0438\u0441 \u0426\u0435\u0439\u0442\u043b\u0438\u043d<\/strong><\/p>\n<hr>\n<blockquote>\n<p>\u0423\u0437\u043d\u0430\u0439\u0442\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043a\u0443\u0440\u0441\u0435 <a href=\"https:\/\/otus.pw\/Cy6M\/\">&#171;<strong>Machine Learning. Professional<\/strong>&#171;<\/a>.<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u0435\u043c \u0432\u0441\u0435\u0445 \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0445 \u043d\u0430 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432 \u043f\u043e \u0442\u0435\u043c\u0435: <a href=\"https:\/\/otus.pw\/604j\/\"><strong>\u00ab\u0414\u0435\u043f\u043b\u043e\u0439 ML \u043c\u043e\u0434\u0435\u043b\u0438: \u043e\u0442 \u0433\u0440\u044f\u0437\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435 \u043a \u0440\u0430\u0431\u043e\u0447\u0435\u043c\u0443 \u0441\u0435\u0440\u0432\u0438\u0441\u0443\u00bb.<\/strong><\/a><\/p>\n<\/blockquote>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/553638\/\"> https:\/\/habr.com\/ru\/company\/otus\/blog\/553638\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0411\u043e\u0440\u0438\u0441, \u044f \u0432\u044b\u043f\u0443\u0441\u043a\u043d\u0438\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u201c\u041d\u0430\u0443\u043a\u0438 \u043e \u0434\u0430\u043d\u043d\u044b\u0445\u201d \u0424\u041a\u041d \u0412\u0428\u042d, \u0440\u0430\u0431\u043e\u0442\u0430\u044e ML \u0418\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u043c \u0438 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e \u0432 OTUS \u043d\u0430 \u043a\u0443\u0440\u0441\u0430\u0445 <a href=\"https:\/\/otus.pw\/Cy6M\/\">ML Professional<\/a>, <a href=\"https:\/\/otus.pw\/aYDx\/\">DL Basic<\/a>, <a href=\"https:\/\/otus.pw\/tV17\/\">Computer Vision<\/a>.<\/p>\n<p>\u0412 \u043f\u0435\u0440\u0432\u044b\u0445 \u0447\u0438\u0441\u043b\u0430\u0445 \u044f\u043d\u0432\u0430\u0440\u044f 2021 \u044f \u0443\u0437\u043d\u0430\u043b \u043f\u0440\u043e \u201c\u0431\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0439\u201d \u0448\u0442\u0430\u043c\u043c \u043a\u043e\u0440\u043e\u043d\u0430\u0432\u0438\u0440\u0443\u0441\u0430,&nbsp;<a href=\"https:\/\/thezvi.wordpress.com\/2021\/01\/06\/fourth-wave-covid-toy-modeling\/\">\u043f\u0440\u043e\u0433\u043d\u043e\u0437\u044b \u043e \u043d\u043e\u0432\u043e\u0439 \u0432\u043e\u043b\u043d\u0435 \u0432 \u0421\u0428\u0410<\/a>. <em>\u042f \u043f\u043e\u0434\u0443\u043c\u0430\u043b: \u201c\u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u044f \u0438\u043b\u0438 \u043a\u0442\u043e\u201d? \u041c\u043d\u0435 \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0437\u0430\u0431\u0438\u0442\u044c \u0433\u0432\u043e\u0437\u0434\u0438\u043a \u0441\u0432\u043e\u0438\u043c \u043c\u0438\u043a\u0440\u043e\u0441\u043a\u043e\u043f\u043e\u043c \u0438 \u0443\u0437\u043d\u0430\u0442\u044c, \u0432\u044b\u0437\u043e\u0432\u0435\u0442 \u043b\u0438 \u201c\u0431\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0439\u201d \u0448\u0442\u0430\u043c\u043c \u0432\u043e\u043b\u043d\u0443 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432 \u041c\u043e\u0441\u043a\u0432\u0435&nbsp;<s>\u0438 \u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u044c \u0430\u0432\u0438\u0430\u0431\u0438\u043b\u0435\u0442\u044b \u043d\u0430 \u043b\u0435\u0442\u043e<\/s>.<\/em><\/p>\n<p>\u0412\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u043e \u043a\u0430\u043a \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u0432\u0435 \u043d\u0435\u0434\u0435\u043b\u0438, \u043d\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u043e\u0441\u044c \u0432 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u0440\u0438 \u043c\u0435\u0441\u044f\u0446\u0430. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u044f \u0432\u044b\u044f\u0441\u043d\u0438\u043b, \u0447\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u044d\u043f\u0438\u0434\u0435\u043c\u0438\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u0442. \u0411\u0430\u043d\u0430\u043b\u044c\u043d\u043e \u0430\u0432\u0442\u043e\u0440\u044b \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u043e \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e COVID-19 \u0432 \u0442\u043e\u043f\u043e\u0432\u044b\u0445 \u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0445 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0434\u0435\u043b\u0430\u044e\u0442 train-test split.<\/p>\n<p>\u042f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0432\u043e\u0435\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f. \u0412 \u043d\u0451\u043c \u044f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0441\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u0430\u0436\u043d\u044b\u0435 \u0434\u0435\u0442\u0430\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043b\u0438 \u0431\u044b \u043c\u043d\u0435 \u043c\u043d\u043e\u0433\u043e \u043d\u0435\u0434\u0435\u043b\u044c, \u0435\u0441\u043b\u0438 \u0431\u044b \u043e \u043d\u0438\u0445 \u043a\u0442\u043e-\u0442\u043e \u043f\u0438\u0441\u0430\u043b.<\/p>\n<blockquote>\n<p><em>\u041d\u043e\u0443\u0442\u0431\u0443\u043a \u043a <\/em><a href=\"https:\/\/github.com\/btseytlin\/covid_peak_sir_modelling\/blob\/main\/habr_code.ipynb\"><em>\u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0443.<\/em><\/a><\/p>\n<p><em>\u041a\u0440\u0430\u0442\u043a\u0430\u044f \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 <\/em><a href=\"https:\/\/docs.google.com\/presentation\/d\/170NqHtg-jH5f7bxwq5tptt1nxKO8XWEGrQvJhMWKw4w\/edit?usp=sharing\"><em>\u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f<\/em><\/a><em>.<\/em><\/p>\n<p><em>\u041f\u0440\u0435\u043f\u0440\u0438\u043d\u0442 \u0441\u0442\u0430\u0442\u044c\u0438: TBA<\/em><\/p>\n<\/blockquote>\n<hr>\n<h3>\u041a\u0430\u043a\u043e\u0439 \u0431\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0439 \u0448\u0442\u0430\u043c\u043c?<\/h3>\n<p>COVID-19 \u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f, \u043a \u043d\u0435\u043c\u0443 \u043c\u044b \u0443\u0436\u0435 \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u043e\u0432\u044b\u0435 \u043c\u0443\u0442\u0430\u0446\u0438\u0438 (\u0448\u0442\u0430\u043c\u043c\u044b) \u0432\u0438\u0440\u0443\u0441\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0445\u043e\u0434 \u044d\u043f\u0438\u0434\u0435\u043c\u0438\u0438. \u0421\u0435\u0439\u0447\u0430\u0441 \u0412\u041e\u0417&nbsp;<a href=\"https:\/\/www.who.int\/publications\/m\/item\/weekly-epidemiological-update-on-covid-19---31-march-2021\">\u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442<\/a>&nbsp;\u0442\u0440\u0438 \u0442\u0430\u043a\u0438\u0445 \u0448\u0442\u0430\u043c\u043c\u0430 (variants of concern). \u0421\u0440\u0435\u0434\u0438 \u043d\u0438\u0445 \u0448\u0442\u0430\u043c\u043c B.1.1.7, \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u201c\u0431\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0439\u201d \u0448\u0442\u0430\u043c\u043c.<\/p>\n<p>\u041f\u043e\u0447\u0435\u043c\u0443 \u043c\u0435\u043d\u044f \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d? \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445,&nbsp;<a href=\"https:\/\/science.sciencemag.org\/content\/early\/2021\/03\/03\/science.abg3055.abstract\">\u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442<\/a>, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0448\u0442\u0430\u043c\u043c \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 40% &#8212; 90% \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043a\u043e\u0440\u043e\u043d\u0430\u0432\u0438\u0440\u0443\u0441 (\u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0445: R0 \u043d\u0430 40% &#8212; 90% \u0431\u043e\u043b\u044c\u0448\u0435). \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0441\u043b\u0443\u0447\u0430\u0439 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u043c \u0448\u0442\u0430\u043c\u043c\u043e\u043c \u0443\u0436\u0435 \u0431\u044b\u043b&nbsp;<a href=\"https:\/\/www.kommersant.ru\/doc\/4639704\">\u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d<\/a>&nbsp;\u0432 \u0420\u043e\u0441\u0441\u0438\u0438. \u0412-\u0442\u0440\u0435\u0442\u044c\u0438\u0445, \u043d\u0435\u043f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e\u0431\u044b \u043a\u0442\u043e-\u0442\u043e \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0441\u044f \u043a \u0435\u0433\u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044e.<\/p>\n<p>\u041f\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u0448\u0435\u043b \u043a \u0432\u044b\u0432\u043e\u0434\u0443, \u0447\u0442\u043e B.1.1.7 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043d\u043e\u0432\u043e\u0439 \u0432\u043e\u043b\u043d\u0435 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u0439 COVID-19 \u0438 \u043c\u043e\u0436\u0435\u0442 \u0443\u043d\u0435\u0441\u0442\u0438 30 \u0442\u044b\u0441\u044f\u0447 \u0436\u0438\u0437\u043d\u0435\u0439.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<h3>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435<\/h3>\n<p>\u041d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043f\u043e \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c, \u0441\u043c\u0435\u0440\u0442\u044f\u043c \u0438 \u0432\u044b\u0437\u0434\u043e\u0440\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u043c \u0432 \u041c\u043e\u0441\u043a\u0432\u0435. \u0415\u0451 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c <a href=\"https:\/\/yandex.ru\/covid19\/stat\">\u0441\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.<\/a><br \/>\u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u044b\u043b \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u0434\u0430\u0442: 2020.03.10 &#8212; 2021.03.23.<\/p>\n<p>\u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u044b \u0434\u043b\u044f \u0432\u0441\u0435\u0439 \u0420\u043e\u0441\u0441\u0438\u0438. \u041c\u043e\u0434\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043b\u0443\u0447\u0448\u0435 \u0434\u043b\u044f \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u044b\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0439, \u0442\u0430\u043a \u0447\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u043c\u0441\u044f \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0434\u043b\u044f \u041c\u043e\u0441\u043a\u0432\u044b. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0438 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0435\u043c \u043a\u043e\u043b\u043e\u043d\u043a\u0438.<\/p>\n<pre><code class=\"python\">df.columns = ['date', 'region',              'total_infected', 'total_recovered', 'total_dead',             'deaths_per_day', 'infected_per_day', 'recovered_per_day'] df = df[df.region == '\u041c\u043e\u0441\u043a\u0432\u0430'].reset_index() df['date'] = pd.to_datetime(df['date'], format='%d.%m.%Y') df['infected'] = df['total_infected'] - df['total_recovered'] - df['total_dead'] df = df.drop(columns=['index', 'region']) df = df.sort_values(by='date') df.index = df.date df['date'] = df.date.asfreq('D')<\/code><\/pre>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u0433\u043b\u0430\u0436\u0435\u043d\u043d\u044b\u0435 \u0441\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0438\u043c \u043e\u043a\u043d\u043e\u043c \u0432 7 \u0434\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0432\u0441\u0435\u0445 \u043a\u043e\u043b\u043e\u043d\u043e\u043a. \u041e\u043d\u0438 \u043f\u0440\u0438\u0433\u043e\u0434\u044f\u0442\u0441\u044f \u043d\u0430\u043c \u043f\u043e\u0437\u0436\u0435.<\/p>\n<pre><code class=\"python\">df_smoothed = df.rolling(7).mean().round(5) df_smoothed.columns = [col + '_ma7' for col in df_smoothed.columns]  full_df = pd.concat([df, df_smoothed], axis=1) for column in full_df.columns:     if column.endswith('_ma7'):         original_column = column.strip('_ma7')         full_df[column] = full_df[column].fillna(full_df[original_column])<\/code><\/pre>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u0430\u043c\u0438, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0438\u0445 \u0441\u0433\u043b\u0430\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438:<\/p>\n<ul>\n<li>\n<p><code>infected_per_day<\/code>&nbsp;\u2014 \u043d\u043e\u0432\u044b\u0445 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043d\u044c.<\/p>\n<\/li>\n<li>\n<p><code>recovered_per_day<\/code>&nbsp;\u2014 \u043d\u043e\u0432\u044b\u0445 \u0432\u044b\u0437\u0434\u043e\u0440\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043d\u044c.<\/p>\n<\/li>\n<li>\n<p><code>deaths_per_day<\/code>&nbsp;\u2014 \u043f\u043e\u0433\u0438\u0431\u0448\u0438\u0445 \u043e\u0442 \u0438\u043d\u0444\u0435\u043a\u0446\u0438\u0438 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043d\u044c.<\/p>\n<\/li>\n<li>\n<p><code>total_infected<\/code>&nbsp;\u2014 \u0432\u0441\u0435\u0433\u043e \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u043a \u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443, \u043a\u0443\u043c\u0443\u043b\u044f\u0442\u0438\u0432\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430&nbsp;<code>infected_per_day<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>total_dead<\/code>&nbsp;\u2014 \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u0433\u0438\u0431\u0448\u0438\u0445 \u043a \u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443, \u043a\u0443\u043c\u0443\u043b\u044f\u0442\u0438\u0432\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u043e\u0442&nbsp;<code>deaths_per_day<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>total_recovered<\/code>&nbsp;\u2014 \u0432\u0441\u0435\u0433\u043e \u0432\u044b\u0437\u0434\u043e\u0440\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u043a \u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443, \u043a\u0443\u043c\u0443\u043b\u044f\u0442\u0438\u0432\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u043e\u0442&nbsp;<code>recovered_per_day<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041e\u0441\u043d\u043e\u0432\u0430 \u043c\u043e\u0434\u0435\u043b\u0438: SEIRD<\/h3>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Compartmental_models_in_epidemiology\">SIR<\/a>&nbsp;\u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0438\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u0442 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u044d\u043f\u0438\u0434\u0435\u043c\u0438\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0442\u0440\u0438 \u0433\u0440\u0443\u043f\u043f\u044b: Susceptible, Infected, Recovered.<br \/>\u0418\u0434\u0435\u044f \u201c\u043d\u0430 \u043f\u0430\u043b\u044c\u0446\u0430\u0445\u201d:<\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u0442\u044c \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u0430\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u044f \u0438 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0445 (Infected).<\/p>\n<\/li>\n<li>\n<p>\u0412 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u0434\u043d\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0439 \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u043d\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u0442 \u043a\u043e\u0433\u043e-\u0442\u043e \u0438\u0437 \u0433\u0440\u0443\u043f\u043f\u044b Susceptible. \u041d\u043e\u0432\u044b\u0435 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044f\u0442 \u0432 \u0433\u0440\u0443\u043f\u043f\u0443 Infected.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0435\u0441\u044f \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 Infected \u0432\u044b\u0437\u0434\u043e\u0440\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0441\u0440\u043e\u043a \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0431\u043e\u043b\u0435\u0437\u043d\u0438 \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044f\u0442 \u0432 \u0433\u0440\u0443\u043f\u043f\u0443 Recovered.<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0430 \u043c\u043d\u043e\u0433\u043e \u0434\u043d\u0435\u0439 \u0432\u043f\u0435\u0440\u0435\u0434 \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0433\u0440\u0443\u043f\u043f.<\/p>\n<\/li>\n<\/ul>\n<p>SIR \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0438\u043d\u043a\u0443\u0431\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0438 \u043f\u043e\u0433\u0438\u0431\u0448\u0438\u0445, \u0442\u0430\u043a \u0447\u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044e SEIRD \u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0435\u0433\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435. SEIRD \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435, \u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u044e \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b:<\/p>\n<ul>\n<li>\n<p>Susceptible \u2014 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u044b.<\/p>\n<\/li>\n<li>\n<p>Exposed \u2014 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u044b \u0432\u0438\u0440\u0443\u0441\u043e\u043c, \u043d\u043e \u043d\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u044e\u0442 \u0435\u0433\u043e, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0438\u043d\u043a\u0443\u0431\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434.<\/p>\n<\/li>\n<li>\n<p>Infectious \u2014 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u044e\u0442 \u0432\u0438\u0440\u0443\u0441.<\/p>\n<\/li>\n<li>\n<p>Recovered \u2014 \u043f\u0435\u0440\u0435\u0431\u043e\u043b\u0435\u043b\u0438 \u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u044b.<\/p>\n<\/li>\n<li>\n<p>Dead \u2014 \u043f\u043e\u0433\u0438\u0431\u043b\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0433\u0440\u0443\u043f\u043f \u0437\u0430 \u0434\u0435\u043d\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442 \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0440\u0435\u0442\u044c\u0435 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b Infected \u0437\u0430 \u0434\u0435\u043d\u044c. \u0421 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\u044e&nbsp;<strong><em>\u03b4<\/em><\/strong>&nbsp;\u0443 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430 \u0438\u0437 \u0433\u0440\u0443\u043f\u043f\u044b&nbsp;<strong><em>E<\/em><\/strong>&nbsp;\u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u043a\u0443\u0431\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 \u0438 \u043e\u043d \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u0433\u0440\u0443\u043f\u043f\u0443&nbsp;<strong><em>I<\/em><\/strong>. \u0422\u0430\u043a \u0436\u0435 \u0441 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\u044e&nbsp;<strong><em>\u03b3<\/em><\/strong>&nbsp;\u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0438\u0437 \u0433\u0440\u0443\u043f\u043f\u044b&nbsp;<strong><em>I<\/em><\/strong>&nbsp;\u0432\u044b\u0437\u0434\u043e\u0440\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0438\u043b\u0438 \u043f\u043e\u0433\u0438\u0431\u0430\u0435\u0442, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044f \u0432 \u0433\u0440\u0443\u043f\u043f\u0443&nbsp;<strong><em>R<\/em><\/strong>&nbsp;\u0438\u043b\u0438&nbsp;<strong><em>D<\/em><\/strong>. \u041a\u0443\u0434\u0430 \u043e\u043d \u043f\u043e\u043f\u0430\u0434\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c&nbsp;<strong><em>\u03b1<\/em><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u043e\u043b\u0435 \u0441\u043c\u0435\u0440\u0442\u043d\u043e\u0441\u0442\u0438 (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Case_fatality_rate\">Infection Fatality Rate<\/a>). \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c \u0433\u0440\u0443\u043f\u043f\u0443 \u043f\u043e\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u043d\u043e\u0432\u044b\u0435 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0435, \u0430 \u043f\u0435\u0440\u0435\u0431\u043e\u043b\u0435\u0432\u0448\u0438\u0435 \u0443\u0445\u043e\u0434\u044f\u0442 \u0438\u0437 \u0433\u0440\u0443\u043f\u043f\u044b.<\/p>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043c\u043e\u0434\u0435\u043b\u0438:<br \/><strong><em>\u03b1<\/em><\/strong>&nbsp;\u2014 case fatality rate.<br \/><strong><em>\u03b2<\/em><\/strong>&nbsp;\u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0434\u0438\u043d \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0447\u0438\u043a \u0437\u0430\u0440\u0430\u0436\u0430\u0435\u0442 \u0437\u0430 \u0434\u0435\u043d\u044c.<br \/><strong><em>\u03b4<\/em><\/strong>&nbsp;\u2014 1 \u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u0441\u0440\u0435\u0434\u043d\u044e\u044e \u0434\u043b\u0438\u043d\u0443 \u0438\u043d\u043a\u0443\u0431\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430.<br \/><strong><em>y<\/em><\/strong>&nbsp;\u2014 1 \u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u0441\u0440\u0435\u0434\u043d\u044e\u044e \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0431\u043e\u043b\u0435\u0437\u043d\u0438.<br \/><strong><em>R0 = \u03b2\/y<\/em><\/strong>&nbsp;\u2014 \u0431\u0430\u0437\u043e\u0432\u043e\u0435 \u0440\u0435\u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u0442\u043e \u0435\u0441\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0434\u0438\u043d \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0447\u0438\u043a \u0437\u0430\u0440\u0430\u0436\u0430\u0435\u0442 \u0437\u0430 \u0432\u0440\u0435\u043c\u044f \u0441\u0432\u043e\u0435\u0439 \u0431\u043e\u043b\u0435\u0437\u043d\u0438.<\/p>\n<p>\u0415\u0441\u0442\u044c \u0442\u0440\u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e SEIRD. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b SEIRD \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0431\u043e\u043b\u0435\u0437\u043d\u0438, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u043a\u0438\u043d\u0443\u0442\u044c \u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u043c\u0435\u0434\u0438\u0446\u0438\u043d\u0441\u043a\u0438\u0445 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439 COVID-19 \u043a\u0430\u043a \u0431\u043e\u043b\u0435\u0437\u043d\u0438. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u044d\u0442\u0443 \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u0447\u0435\u043d\u044c \u043b\u0435\u0433\u043a\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u043c\u0435\u0440\u044b \u043a\u0430\u0440\u0430\u043d\u0442\u0438\u043d\u0430, \u043d\u0435\u043f\u043e\u043b\u043d\u043e\u0442\u0443 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0448\u0442\u0430\u043c\u043c. \u0412-\u0442\u0440\u0435\u0442\u044c\u0438\u0445, \u044d\u0442\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043b\u0435\u0433\u043a\u043e \u201c\u043f\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u044c\u201d \u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e: \u201c\u0427\u0442\u043e \u0431\u0443\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u0432 \u044d\u0442\u043e\u0439 \u0436\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432\u0442\u043e\u0440\u043e\u0439 \u0448\u0442\u0430\u043c\u043c \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440&nbsp;<strong><em>R0<\/em><\/strong>&nbsp;\u0443 \u043d\u0435\u0433\u043e \u043d\u0430 90% \u0431\u043e\u043b\u044c\u0448\u0435?\u201d \u0421\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043d\u043e\u0433\u043e \u0431\u0443\u0441\u0442\u0438\u043d\u0433\u0430, \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435.<\/p>\n<p>\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043c\u0438\u043d\u0443\u0441 SEIRD: \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c. \u041e\u043d\u0430 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430 \u043a \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c. \u041f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043a\u0438 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u0414\u043b\u044f \u043d\u0430\u0441 \u044d\u0442\u043e \u043d\u0435 \u0441\u0442\u0440\u0430\u0448\u043d\u043e: \u043c\u044b \u0432\u0435\u0434\u044c \u043d\u0435 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0430\u043c\u044b\u0439 \u0442\u043e\u0447\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u043f\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0437\u0430\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0445, \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043d\u044f\u0442\u044c&nbsp;<em>\u043c\u043e\u0436\u0435\u0442 \u043b\u0438 \u0448\u0442\u0430\u043c\u043c B.1.1.7 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0432\u043e\u043b\u043d\u0443<\/em>. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u044d\u0442\u043e, \u043b\u0443\u0447\u0448\u0430\u044f \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e COVID-19 \u044d\u0442\u043e&nbsp;<a href=\"https:\/\/covid19-projections.com\/about\/#about-the-model\">\u043e\u0447\u0435\u043d\u044c \u043d\u0430\u0432\u043e\u0440\u043e\u0447\u0435\u043d\u043d\u0430\u044f SEIR \u043c\u043e\u0434\u0435\u043b\u044c<\/a>.<\/p>\n<h3>\u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 SEIRD<\/h3>\n<p>\u041f\u0440\u0438\u0432\u043e\u0436\u0443 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e SEIRD.<\/p>\n<pre><code class=\"python\">class BarebonesSEIR:     def init(self, params=None):         self.params = params &lt;span class=\"hljs-function\" style=\"box-sizing: border-box;\"&gt;&lt;span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: rgb(167, 29, 93);\"&gt;def&lt;\/span&gt; &lt;span class=\"hljs-title\" style=\"box-sizing: border-box; color: rgb(121, 93, 163);\"&gt;get_fit_params&lt;\/span&gt;(&lt;span class=\"hljs-params\" style=\"box-sizing: border-box;\"&gt;self&lt;\/span&gt;):&lt;\/span&gt;     params = lmfit.Parameters()     params.add(&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;\"population\"&lt;\/span&gt;, value=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;12_000_000&lt;\/span&gt;, vary=&lt;span class=\"hljs-literal\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;False&lt;\/span&gt;)     params.add(&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;\"epidemic_started_days_ago\"&lt;\/span&gt;, value=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;10&lt;\/span&gt;, vary=&lt;span class=\"hljs-literal\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;False&lt;\/span&gt;)     params.add(&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;\"r0\"&lt;\/span&gt;, value=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;4&lt;\/span&gt;, &lt;span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: rgb(0, 92, 197);\"&gt;min&lt;\/span&gt;=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;3&lt;\/span&gt;, &lt;span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: rgb(0, 92, 197);\"&gt;max&lt;\/span&gt;=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;5&lt;\/span&gt;, vary=&lt;span class=\"hljs-literal\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;True&lt;\/span&gt;)     params.add(&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;\"alpha\"&lt;\/span&gt;, value=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;0.0064&lt;\/span&gt;, &lt;span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: rgb(0, 92, 197);\"&gt;min&lt;\/span&gt;=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;0.005&lt;\/span&gt;, &lt;span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: rgb(0, 92, 197);\"&gt;max&lt;\/span&gt;=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;0.0078&lt;\/span&gt;, vary=&lt;span class=\"hljs-literal\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;True&lt;\/span&gt;)  &lt;span class=\"hljs-comment\" style=\"box-sizing: border-box; color: rgb(150, 152, 150);\"&gt;# CFR&lt;\/span&gt;     params.add(&lt;span class=\"hljs-string\" style=\"box-sizing: border-box; color: rgb(223, 80, 0);\"&gt;\"delta\"&lt;\/span&gt;, value=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt;\/&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;3&lt;\/span&gt;, &lt;span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: rgb(0, 92, 197);\"&gt;min&lt;\/span&gt;=&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;1&lt;\/span&gt;\/&lt;span class=\"hljs-number\" style=\"box-sizing: border-box; color: rgb(0, 134, 179);\"&gt;14&lt;\/span&gt;, &lt;span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: rgb(0, 92, 197);\"&gt;max&lt;\/span&gt;=&lt;span<\/code><\/pre>\n<p><\/br><\/br><\/br><\/br><\/p>\n<\/p>\n<\/p>\n<\/hr>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-321810","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/321810","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=321810"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/321810\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=321810"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=321810"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=321810"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}