MakarovSuites
Русский
EnglishDeutschРусскийУкраїнськаFrançaisEspañolItalianoPolski
Связь и лицензии

Math

Тест и болезнь

Десять тысяч человек, болезнь и тест: тест проходит население и отмечает положительных, потом все расходятся по таблице 2×2 — болен или здоров против положительного или отрицательного ответа. Угадай, какая доля положительных действительно больна, и посмотри на лоток: при редкой болезни ложных в десять раз больше, чем верных. Правило Байеса с числами этого листа, подсвеченный множитель, который ты двигаешь, перепроверка положительных и задача, показывающая, что рычаг — специфичность, а не чувствительность.

Тест и болезнь — Изображение из программы
Изображение из программы

Что происходит

Десять тысяч человек на квадрате. У болезни есть распространённость: скажем, один на тысячу. У теста — чувствительность (как часто он говорит «да» больному) и специфичность (как часто «нет» здоровому). Обе 99 %. Больные с самого начала янтарные: ты их видишь, тест — нет. Тест проходит по квадрату строка за строкой и зажигает положительных: янтарным — где поймал больного, красным — где пометил здорового. При десяти больных на квадрате и десяти тысячах здоровых 1 % здоровых — это сотня, так что положительный результат означает болезнь примерно один раз из одиннадцати. Это правило Байеса, и квадрат — это оно, нарисованное: PPV = ps / (ps + (1 − p)(1 − q)). Тяни по квадрату — распространённость плывёт по логарифму; график — цена положительного результата от распространённости. Протестируй положительных заново — последний ответ становится новой априорной вероятностью: 9 % → 91 % → 99,9 %. Задача: при распространённости 0,1 % сделать положительный результат равным монетке, не трогая распространённость. Чувствительность не справится даже при 100 %; специфичность справится при 99,90 %, потому что ложные положительные приходят от здоровых, а их тысяча на каждого больного.

Уравнения модуля
Уравнения
квадрат:  N = 10 000 человек, распространённость p;  больные = pN, здоровые = (1 − p)N
тест:  чувствительность s = P(положительный | больной), специфичность q = P(отрицательный | здоровый);  истинно положительные s·pN, ложноположительные (1 − q)(1 − p)N, пропущенные (1 − s)pN
ценность положительного результата (Байес):  PPV = ps / (ps + (1 − p)(1 − q));  редкая (p = 0.1 %, s = q = 99 %): 9.0 %;  частая (p = 10 %): 91.7 %;  скрининг (p = 1 %, s = 80 %, q = 90 %): 7.5 %
повторный тест:  положительные тестируются снова, априорная вероятность = последний PPV;  редкая → 9.0 % → 90.7 % → 99.9 %
разыгранный квадрат:  на каждого человека один розыгрыш для болезни и один для теста через общий xorshift (зерно 1);  редкая: 13 больных, 13 истинно положительных и 95 ложноположительных (12.0 % в этой выборке, 9.0 % точно);  частая: 1025 / 1018 / 88;  скрининг: 101 / 80 / 985
рычаг:  при p = 0.1 %, s = 99 % подбрасывание монеты (PPV 50 %) требует 1 − q = ps(1 − 0.5)/(0.5(1 − p)), q = 99.90 %;  одна только s = 100 % даёт 9.1 %

Другие эксперименты

К каталогу
Корни в движении — Изображение из программы

Math

Корни в движении

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

Дни рождения и коллизии — Изображение из программы

Math

Дни рождения и коллизии

Люди приходят на кольцо дней, пока двое не окажутся на одном: в году из 365 дней это 23-й человек, а не 183-й, на Марсе — 32-й, в 65 536 корзинах хеша — 302-й; прогоны против точной кривой, дни плывут под перетаскиванием от года до 2³², правило квадратного корня читается вживую, и задача про марсианскую комнату.

Код, который сам себя чинит — Изображение из программы

Math

Код, который сам себя чинит

Шестнадцать битов в квадрате, одиннадцать из них — сообщение: щёлкни по одному, и четыре лампы проверок назовут его адрес, а блок починит себя сам. Две ошибки блок поймает, но исправить не сможет; три — и он солжёт уверенно. Каждое утверждение исчерпывающее: все 32 768 одиночных ошибок найдены, все 245 760 двойных пойманы, все тройные исправлены неверно.