Комментарии 40
Интересно посмотреть как меняется Rt, потому что есть подозрение, что с его помощью происходит подгонка модели под данные.
UPD — график оказывается уже есть в статье, а мне нужно внимательнее читать.
Ну то есть в Германии переболело 30 млн человек, где они прячут 300 000 — 500 000 трупов умерших? Вас не смущает что вы берете модель в которой нет карантина и применяете ее к стране где полтора месяца каратнин и делаете какие-то выводы из классической ситуации garbage in — garbage out? Вы так можете посчитать за сколько дрожжи растущие в стакане съедять весь земной шар, недолго получится, экспонента она такая функция.
Тест на антитела в самом сильно пострадавшем муниципалитете — Gangelt показал 14% наличие антител. В остальной Германии такой заболеваемости и смертности как там — не было, и цифры будут в разы ниже. Ваши 40% цифры — бред опровергнутый экспериментальными данными.
>> реальная смертность от вируса около 0,02% в Германии
Вы уже сообшили в Robert Koch Institut о своем открытии? А то у них устаревшие данные везде используются.
То есть теория о 20-30% восприимчивых точно неверная, в самом лучшем случае 50-60%.
Восприимчивость всегда существует по отношению к инфицирующей дозе. Если наработать вирус кубометрами — то инфицированы будут все, включая переболевших, людей в противочумных скафандрах и трупы.
Так и меряется — D1 — доза, заражающая 1% людей, D50 — доза, заражающая 50% людей, D99 — доза, заражающая 100%. Выделяемая доза (от инфекционного периода до тяжелой стадии) меняется где-то в 10**5 раз. Так вот, доза, выделяемая от большинства больных (80% — бессимптомные, 16% — легкие) — это доза к которой, похоже, восприимчиво 20-30% населения.
На конкретном авианосце — кубрики по 20 человек, где все спят очень тесно на 3-4 этажах подвесных коек. Во сне, как вы понимаете, ни чихание ни кашель не контролируется. Меры начали принимать чрез 20 дней, то есть 4 цикла распространения. Угу, в тестом кубрике с 4-5 чихающими инфицирующая доза возрастает па порядки в сравнении с обычным кратковременным контактом в транспорте.
возрастает па порядки в сравнении с обычным кратковременным контактом в транспорте.
Однако она, вероятно, будет куда меньше, чем если заболеет постоянный половой партнер с которым спишь в обнимку каждую ночь и целуешь взасос каждый день. Поэтому, по факту, без серьезных мер самоизоляции все равно переболеют 60%.
Потом вам уже кидали ссылки на результаты тестов в итальянских городках где тоже что-то около 60% получалось.
Причем вы не показали ни одной ссылки на доказательство вашей теории о 20-30% восприимчивых
С постоянным половым партнером все-таки не спится рот в рот — это просто неудобно. То есть вы оказываетесь вне траектории кашля или чихания. А в кубрике с нижних полок куда ни чихни — на траектории будет чья-то голова. Или прямо, или отраженно от стен.
Про маленькие итальянские города — отвечу там, где спрашивалось. Там надо внимательно почитать источник.
В любом случае, Matshishkapeu прав. Если намеряли 14% переболевших, а расчет дает 40% — то надо править расчет. И самая очевидная правка — уменьшение числа восприимчивых в 3 раза.
В Швеции официально карантин не вводили и похоже в начале эпидемии люди просто ограничили число социальных контактов из тех что могли. Но на работу ходить надо, сады и школы открыты. Получился скачек вниз в начале эпидемии. А дальше все идет естественным путем, если не придираться к недельным периодам, практически гладкой линией в отличие от стран к официальным карантином. Также очень интересные ситуации в Италии и например Армении.
То есть согласно вашей модели в США на сегодняшний день при 1148 000 официальных больных в популяции больных 578.5 миллионов. Что в 1.6 раз раза превышает все население США. По второму кругу болеют, а как же надежды на выработку иммунитета?
Это значение говорит что при отсутсвии официальных случаев в США было 4 миллиона заболевших. Оно не объясняет где взять 250 миллионов дополнительных американцев чтобы числа сошлись. Мексика с Канадой дадут только 164 миллиона, надо еще Японию приплюсовать, тогда хватит даже с небольшим запасом. Итого, согласно модели на территории США болеет все население США, Мексики, Канады и тайно эвакуированная туда целиком Япония.
Да, формула для расчета непригодна — врет.
Мне кажется, что такое расхождение может быть из-за того, что модель строится из предположения, что все люди одинаковы (имеют примерно одинаковое количество контактов, шанс заразиться и заразить для каждого равный). Если, например, предположить, что 80% контактов происходит среди 20% наиболее «активных» людей – вид графиков несколько поменяется.
Проще всего это понять на предельном случае: 20% постоянно общаются друг с другом и изредка с остальными, 80% почти ни с кем не общаются. При этом среди 20% получим классическую логистическую кривую, а среди 80 процент заражения будет невелик и скорость заражения будет пропорциональна количеству больных из 20%.
Но если рассматривать не предельный случай – кривые могут быть не такими простыми, ну и параметров у модели становится значительно больше, оценивать их труднее (правда, часть параметров можно попытаться оценить из других эпидемий).
в модели есть еще один параметр — P0. который как я понимаю берется в 0.0001. и откуда это значение? почему вдруг в Германии на 24 февраля было 8.3 тысячи зараженных? а если их было 830, то модель выдаст 4% вместо 40%?
если мы изначально исходим из предположения, что случаев было в 500 раз больше чем их диагностировано — то не удивительно что мы приходим к результату во много раз превышающему официальный. так можно подогнать параметры под любой результат
На настоящий момент соответствие между рассчитанными и фактическими данными на основе регрессии составляет R2 = 0,9996. Что касается реального количества инфицированных, то вы правы. Это еще одно из предположений которое нужно подтвердить или опровергнуть.
В любом случае отношение между детектированными и реально инфицированными
случаями определяется в самый последний момент. Сама прогностическая модель работает раньше. Вопрос в другом: может ли помочь модель в вопросе решения уменьшения или увеличения карантинных мер? С моей точки зрения, это два совершенно независимых вопроса.
вот эта точность и выдает проблему. реальные данные не могут настолько точно совпадать с упрощенной моделью. Это как раз сигнал, что модель можно подогнать под любой результат. более того не учитывается, что детектированные случаи отстают от реальных инфицирований. Можно выбрать совершенно другой P0 и с помощью неизвестных чисел Rx (значений R0 при введении карантинных мер) и получить совершенно другой результат. Насчет того что модель не учитывает соотношение между детектированными и реальными случаями — не правда. выход на плато как раз очень сильно зависит от процента реально инфицированных (который как раз определяется здесь учитывая коэффициент детектирования)
R_t = R_0(1 - P_t)
P_t = P_0 e^\frac{t (R_t - 1)}{D}
вы не сумели и поэтому начали пользоваться рекуррентной формулой:
P_{next} = P_{current} e^\frac{μ R_0 (1 - P_{current}) - 1}{D}
Есть у меня сомнения, что так можно было, но на проверку мне нужно некоторое время.
Вот ссылка на график. Код под спойлером:
import math
import matplotlib.pyplot as plt
import numpy
from scipy.special import lambertw
def recurrent(p: float, r0: float, d: float) -> float:
return p*math.exp((r0*(1-p)-1)/d)
def precize(p0: float, r0: float, d: float, time: float) -> float:
if time == 0:
return p0
else:
return d/r0*lambertw(p0*r0/d*time*math.exp(time*(r0-1)/d)).real/time
def residuial(p0: float, r: float, d: float, time: float) -> float:
pt = precize(p0, r, d, time)
return pt - p0*math.exp(time*(r*(1-pt)-1)/d)
if __name__ == '__main__':
p_excel = [0.0001000, 0.0001284, 0.0001649, 0.0002117, 0.0002718,
0.0003489, 0.0004480, 0.0005751, 0.0007383, 0.0009478,
0.0012166, 0.0015614, 0.0020038, 0.0025712, 0.0032985,
0.0042305, 0.0054240, 0.0069513, 0.0089040, 0.0113974,
0.0145762, 0.0186210, 0.0237545, 0.0302489, 0.0384313,
0.0486874, 0.0614596, 0.0772363, 0.0965284, 0.1198273,
0.1475419, 0.1799129, 0.2169145, 0.2581609, 0.3028467,
0.3497541, 0.3973496, 0.4439643, 0.4880201, 0.5282394,
0.5637810, 0.5942752, 0.6197686, 0.6406140, 0.6573471,
0.6705785, 0.6809155, 0.6889150, 0.6950596, 0.6997525,
0.7033210, 0.7060253, 0.7080694, 0.7096117, 0.7107735,
0.7116478, 0.7123051, 0.7127991, 0.7131700, 0.7134486,
0.7136577, 0.7138145, 0.7139323, 0.7140206, 0.7140869,
0.7141366, 0.7141738, 0.7142018, 0.7142228, 0.7142385,
0.7142503, 0.7142592, 0.7142658, 0.7142708, 0.7142745,
0.7142773, 0.7142794, 0.7142810, 0.7142822, 0.7142831,
0.7142837, 0.7142842, 0.7142846, 0.7142849, 0.7142851,
0.7142852, 0.7142854, 0.7142854, 0.7142855, 0.7142856,
0.7142856, 0.7142856, 0.7142857, 0.7142857, 0.7142857,
0.7142857, 0.7142857, 0.7142857, 0.7142857, 0.7142857,
0.7142857, 0.7142857, 0.7142857]
p0 = p_excel[0]
r0 = 3.5
d = 10.0
p_python = [p0]
for i in range(1, len(p_excel)):
p_python.append(recurrent(p_python[-1], r0, d))
p_excel = numpy.array(p_excel)
p_python = numpy.array(p_python)
p_sci = [precize(p0, r0, d, t) for t in range(len(p_excel))]
p_res = [residuial(p0, r0, d, t) for t in range(len(p_excel))]
print()
print(f'precision of analytical solution = {numpy.max(numpy.abs(p_res))}')
print()
tt = numpy.arange(0, len(p_excel))
plt.plot(tt, p_excel, 'x', color='black', label='excel data')
plt.plot(tt, p_python, color='blue', label='recurrent formula')
plt.plot(tt, p_sci, color='red', label='analytical solution')
plt.legend()
plt.grid()
plt.show()
Тем более интересно, что автор получал практически идеальную подгонку под реальные данные. Так что если в модели много параметров, даже неправильно решая уравнения можно хорошо подогнать)
Я правильно понимаю что автор статьи не знаком с SIR?
А эта величина судя по всему тоже меняется во времени, при это как под влиянием «экономических факторов», таких как доступность и точно тестов, а так же выборки для тестирования, так и под влиянием патогена, при росте кол-ва заболевших превышающем рост системы тестирования из тестирования начинают выпадать более легкие случаи. Т.е. предполагаемое репродуктивное число, это пальцем в небо. На его основе, пожалуй можно оценивать эффективность карантинных мероприятий, с учетом других факторов, но никак нельзя строить модель фактического заражения.
Также очень хочется понять, как вы ухитрились вывести некие формулы, описывающие динамику пандемии, не написав тех дифференциальных уравнений, решением которых они являются?
Я еще раз перепроверил все. Как ни странно, но модель работает. Есть определенные проблемы с нахождением точек интервенции для некоторых стран и их ведением. В Excel, что я выложил важно при подгонке значений сопоставить величину помеченную как «Ratio.Detected» с высчитанным значением стоящим рядом и выделенным синим фоном.
В любом случае спасибо, за интерес. Я вам так скажу, я могу быть прав или не прав (в этом случае, за эту модель держаться не буду), важно действительно понять есть ли в ней смысл. Возможно модель нужно скорректировать, возможно, что она лишь отправная точка. В текущих условиях это может быть важным фактором на основе которого принимаются решения. И спасибо всем за аргументированные комментарии.
проще посмотреть основною статью на английском о базовом репродукционном числе. Разделы «Estimation methods» и «Latent infectious period, isolation after diagnosis». Названия переменных там другие, но сути значений это не меняет.
Какие конкретно другие? А то суть совершенно непонятна. Впрочем понимание пропадает раньше. Например, вы пишите:
Существует эпидемиологический фактор говорящий нам о том, до какого уровня может расти количество заболевших.
Фактор говорить ни о чем не может. Он может быть определен как… Ну и как же он вами определен?
И что значит «может»? У вас стохастическая модель?
Он рассчитывается на основе базового числа репродукции. Это число говорит нам о том скольких людей примерно заражает один инфицированный, является константой и специфична для каждого конкретного региона в зависимости от плотности населения и других особенностей региона.
Примерно? Это точно научная статья?
Его можно определить только в начале эпидемии, когда нет никаких ограничивающих факторов.
Ну и как? Где формула, соответствующая вашему утверждению?
Сама формула выглядит так: P_{sat} = 1 — 1/{R_0}
Эта не пойдет. Ведь, P_{sat} это финальное число заразившихся, а оно еще неизвестно в начале эпидемии.
Следующий абзац статьи:
Также есть эффективное число репродукции, которое также говорит нам о том, скольких людей заражает больной. В отличие от базового числа, эффективное меняется постоянно. Определить это значение можно используя формулу выше и зная количество зараженных в определенный момент времени: R_t = R_0(1 — P_t)
1) Опять «говорит». Ладно меняем на определено, как… И тут же два варианта, один в тексте, другой формулой. И они друг другу противоречат. Потому что больной заражает людей на некоем временном отрезке [t1..t2], а в формуле у вас никакого временного отрезка нет. Так как, что выкидываем?
Если текст, то получается, что вы произвольно определили некоторую функцию, которую собираетесь использовать для предсказания течения эпидемии, т.е. ваша модель имеет те же свойства, что и предлагающие использовать всякие логистические кривые, сигмоиды и пр. Даже хуже, вы еще и свои уравнения неправильно решаете.
А если формулу, то вообще научная статья на этом месте заканчивается.
P.S. Также очень бы хотелось бы увидеть отличия вашей модели от существующих «сompartmental models in epidemiology», если уж вы на них ссылаетесь. Где ваши диф.уравнения?
Эпидемиологическая модель Covid-19