Условие
Болезнь встречается у 1% населения. Тест на болезнь:
- При наличии болезни даёт положительный результат с вероятностью 99% (чувствительность);
- При отсутствии болезни — положительный результат с вероятностью 5% (1 - специфичность).
Человек получил положительный результат. Какова вероятность, что он действительно болен?
Решение
Формула Байеса
Подставляем:
| Параметр | Значение |
|---|---|
P(D) |
0.01 |
P(¬D) |
0.99 |
P(+ | D) чувствит. |
0.99 |
P(+ | ¬D) ложн. трев. |
0.05 |
P(D | +) = (0.99 · 0.01) / (0.99 · 0.01 + 0.05 · 0.99)
= 0.0099 / (0.0099 + 0.0495)
= 0.0099 / 0.0594
≈ 0.167
≈ 16.7%.
Интуиция «частотного» решения
Возьмём 10 000 человек:
- 100 больных. Из них тест поймает 99 (правильно).
- 9 900 здоровых. Из них 5% = 495 получат ложный положительный.
- Положительных всего: 99 + 495 = 594.
- Из них реально больных: 99.
- Доля больных среди положительных: 99 / 594 ≈ 16.7%.
Почему ответ кажется маленьким
Базовая ставка (P(D) = 1%) низкая. Даже хороший тест с 99% чувствительностью генерирует много ложноположительных среди 99% здоровых. Это base rate fallacy — типичная ошибка интуиции.
Что было бы при P(D) = 10%
P(D | +) = (0.99 · 0.10) / (0.99 · 0.10 + 0.05 · 0.90)
= 0.099 / (0.099 + 0.045)
≈ 0.688
≈ 69%. Та же чувствительность теста — но base rate резко меняет ответ.
Связь с метриками классификации
P(+|D)= recall = sensitivity = TPR;P(-|¬D)= specificity = 1 - FPR;P(D|+)= precision (PPV);P(D)= prevalence.
В терминах ML:
Подводные камни
- Игнорирование базовой ставки. «Тест 99% точный → 99% больной» — самая частая ошибка.
P(+|D) = 0.99≠P(D|+) = 0.99. Условные вероятности не симметричны.- «Сделаю тест дважды». Если тесты не независимы (а они обычно коррелированы — один человек, одна биология), результат меньше «улучшается», чем кажется.
- «99% специфичность ≈ 99% точность». Specificity — это
P(-|¬D), не accuracy. - Чисто в собеседовании: применять формулу Байеса к скоринговой модели, не понимая, что «положительный по модели» =
score > threshold, и FPR/TPR зависят от threshold.
Эталонный ответ
P(D|+) = P(+|D)·P(D) / [P(+|D)·P(D) + P(+|¬D)·P(¬D)] = 0.99·0.01 / (0.99·0.01 + 0.05·0.99) ≈ 16.7%. Низкая base rate перебивает высокую чувствительность теста — это base rate fallacy.