Базовое репродуктивное число R0
Одно число определяет, разгорится эпидемия или потухнет сама собой. Это число — $R_0$, и оно связывает заразность болезни со скоростью выздоровления.
Базовое репродуктивное число $R_0$ — среднее количество людей, которых заражает один больной за время болезни в популяции, где все восприимчивы. В модели SIR оно равно отношению $\frac{\beta}{\gamma}$.
Произносится как «эр-ноль». Индекс «ноль» подчёркивает: речь о самом начале эпидемии, когда вокруг ещё нет ни иммунных, ни принятых мер, и каждый встречный больного — потенциальная жертва заражения. Зачем нам это число? Оно одним взглядом отвечает на главный вопрос: способна ли болезнь вызвать эпидемию вообще, и насколько массовой она будет. По $R_0$ можно прикинуть и то, какую долю населения нужно защитить, чтобы вспышка остановилась.
Откуда берётся $R_0 = \frac{\beta}{\gamma}$
Рассуждение простое. Один больной заражает других со скоростью $\beta$ в день (в самом начале, когда почти все восприимчивы). Болеет он в среднем $\frac{1}{\gamma}$ дней. Перемножаем «скорость заражения» на «длительность болезни» и получаем общее число заражённых от одного человека:
R0 = beta * (1 / gamma) = beta / gamma пример: beta = 0.3, gamma = 0.1 R0 = 0.3 / 0.1 = 3 один больной заражает троих
Порог $R_0 = 1$
Дальше всё решает сравнение с единицей. Если $R_0 \gt 1$, каждый больной в среднем заражает больше одного человека — число заражённых растёт от поколения к поколению, начинается эпидемия. Если $R_0 \lt 1$, один больной заражает в среднем меньше одного, цепочки передачи обрываются, и вспышка затухает. Значение $R_0 = 1$ — пограничное: болезнь тлеет, не разрастаясь и не угасая.
Порог коллективного иммунитета
$R_0$ предполагает, что вокруг больного все восприимчивы. Но если часть людей уже имеет иммунитет, многие контакты больного «пропадают впустую» — приходятся на тех, кого нельзя заразить. Эффективное число заражений падает. Эпидемия перестаёт расти, когда доля восприимчивых снижается настолько, что на каждого больного приходится в среднем меньше одного нового. Этот порог называют порогом коллективного иммунитета $1 - \frac{1}{R_0}$:
доля с иммунитетом для остановки = 1 - 1/R0 R0 = 2 --> 1 - 1/2 = 0.50 (50%) R0 = 3 --> 1 - 1/3 = 0.67 (67%) R0 = 4 --> 1 - 1/4 = 0.75 (75%)
Для $R_0 = 3$ порог составляет около 67%: если иммунитет (например, после болезни) есть у двух третей населения, оставшихся восприимчивых уже слишком мало, чтобы поддержать рост, и волна спадает. Чем заразнее болезнь (выше $R_0$), тем больше людей нужно защитить.
Размер эпидемии зависит от $R_0$
$R_0$ влияет не только на то, начнётся ли вспышка, но и на её итоговый масштаб — сколько людей переболеет всего. Прогоним модель SIR до конца при разных $\beta$ ($\gamma$ фиксируем равным 0.1) и посмотрим на финальное число переболевших R.
def final_size(beta, gamma=0.1):
S, I, R, N = 999.0, 1.0, 0.0, 1000.0
for _ in range(300):
new_inf = beta * S * I / N
new_rec = gamma * I
S -= new_inf
I += new_inf - new_rec
R += new_rec
return R
print(f"{'beta':>5} {'R0':>5} {'переболело':>11}")
for beta in (0.12, 0.15, 0.20, 0.30):
print(f"{beta:>5.2f} {beta/0.1:>5.1f} {final_size(beta):>11.1f}")
Вывод:
beta R0 переболело 0.12 1.2 270.5 0.15 1.5 586.6 0.20 2.0 802.8 0.30 3.0 946.7
При $R_0$ чуть выше единицы (1.2) переболевает лишь около трети населения. С ростом $R_0$ итоговый размер эпидемии быстро растёт: при $R_0 = 3$ болезнь охватывает уже более 94% людей. Связь нелинейная — небольшое увеличение заразности у заразных болезней резко поднимает долю переболевших.
Как работает под капотом
Функция final_size прогоняет ту же пошаговую модель SIR, что и в прошлом уроке, но на 300 шагов — заведомо дольше, чем длится любая вспышка в этих условиях. К концу заражённых практически не остаётся (I почти ноль), эпидемия завершилась, и значение R перестаёт меняться. Это финальное R и есть общее число переболевших.
Заметьте: даже при $R_0 = 3$ переболевают не все 1000, а около 941. Это не ошибка округления. Под конец эпидемии заражённых становится так мало, что последним восприимчивым просто «не от кого» заразиться — цепочки обрываются, оставляя небольшую долю населения нетронутой. Точная доля выживших-непереболевших определяется уравнением, в которое $R_0$ входит нелинейно, поэтому считать её удобнее численно, прогоняя модель.
Частые ошибки
- Считать $R_0$ свойством одной лишь болезни. $R_0$ зависит и от поведения людей, и от плотности контактов: одна и та же болезнь в разных условиях даёт разные $R_0$.
- Путать $R_0$ и эффективное $R_{eff}$. $R_0$ — это «в полностью восприимчивой популяции»; по ходу эпидемии и при мерах работает меньшее эффективное число.
- Думать, что $R_0 = 3$ означает «переболеет ровно 3/4». Размер эпидемии и порог иммунитета — разные величины, и оба считаются по $R_0$, но по-разному.
- Ждать, что при $R_0 = 3$ переболеют все 100%. Часть населения остаётся восприимчивой, потому что эпидемия затухает раньше.
- Останавливать модель слишком рано. Чтобы получить финальный размер, нужно прогнать достаточно шагов, пока I не упадёт практически до нуля.
Итоги
- $R_0 = \frac{\beta}{\gamma}$ — среднее число людей, которых заражает один больной в полностью восприимчивой популяции.
- $R_0 \gt 1$ — эпидемия растёт; $R_0 \lt 1$ — затухает; $R_0 = 1$ — пограничный случай.
- Порог коллективного иммунитета равен $1 - \frac{1}{R_0}$; для $R_0 = 3$ это около 67%.
- Чем выше $R_0$, тем больше итоговый размер эпидемии — связь нелинейная и быстро растущая.
- Даже при высоком $R_0$ переболевают не все: эпидемия гаснет, оставив часть населения нетронутой.