Собесов

Crazy Panda — три москвича говорят про дождь: байесовская задача

Статистика и теорверУсловные вероятности и БайесСредняяJunior

Условие

Вы летите в Москву и хотите решить, стоит ли брать зонт. Звоните трём случайным москвичам и спрашиваете, идёт ли дождь. Каждый говорит правду с вероятностью 3/5 и врёт с вероятностью 2/5. Каждый утверждает, что у него за окном идёт дождь.

Какова вероятность, что действительно идёт дождь? В среднем в Москве 30 дождливых дней за год. Опишите процесс решения.

Решение

Подход

Это классическая байесовская задача. Дано:

  • Априорная вероятность дождя: P(R)=30/3650.0822P(R) = 30/365 \approx 0.0822.
  • Правдивость каждого: P(говорит правду)=3/5P(\text{говорит правду}) = 3/5.

Наблюдение: все трое сказали «дождь идёт» — обозначим как событие EE.

Нужно: P(RE)P(R \mid E) — апостериорная вероятность дождя при условии трёх «дождь»-ответов.

Предположение: правдивость трёх москвичей — независимые события, и они отвечают независимо друг от друга.

Реализация — байесовский расчёт

1. Правдоподобие при условии «дождь идёт»

Если действительно дождь, каждый москвич говорит «дождь» когда говорит правду — с вероятностью 3/5. Вероятность всех трёх сказать «дождь»:

P(ER)=(3/5)3=27/125=0.216P(E \mid R) = (3/5)^3 = 27/125 = 0.216

2. Правдоподобие при условии «дождя нет»

Если дождя нет, москвич говорит «дождь» только когда врёт — с вероятностью 2/5. Вероятность всех трёх соврать:

P(E¬R)=(2/5)3=8/125=0.064P(E \mid \neg R) = (2/5)^3 = 8/125 = 0.064

3. Полная вероятность события

P(E)=P(ER)P(R)+P(E¬R)P(¬R)P(E) = P(E \mid R) P(R) + P(E \mid \neg R) P(\neg R) P(E)=0.2160.0822+0.0640.9178=0.01775+0.05874=0.07649P(E) = 0.216 \cdot 0.0822 + 0.064 \cdot 0.9178 = 0.01775 + 0.05874 = 0.07649

4. Байесовская формула

P(RE)=P(ER)P(R)P(E)=0.017750.076490.2321P(R \mid E) = \frac{P(E \mid R) P(R)}{P(E)} = \frac{0.01775}{0.07649} \approx 0.2321

Анализ / интерпретация

Ответ: примерно 23%.

Несмотря на то, что три «свидетеля» подтвердили дождь, апостериорная вероятность дождя — всего около 23%. Причина — низкая априорная вероятность (8%\approx 8\%) и не очень высокая «правдивость» (3/5=60%3/5 = 60\%).

Если бы каждый говорил правду с вероятностью 90%, ответ был бы:

P(RE)=0.7290.08220.7290.0822+0.0010.91780.985P(R \mid E) = \frac{0.729 \cdot 0.0822}{0.729 \cdot 0.0822 + 0.001 \cdot 0.9178} \approx 0.985

— уверенность 98.5%. Видим, как чувствительность ответа к «правдивости» свидетеля очень высокая.

Реализация — Python (sanity check симуляцией)

import numpy as np
np.random.seed(42)
N = 1_000_000
prior_rain = 30/365
truth = 3/5
 
rain = np.random.rand(N) < prior_rain
# Для каждого жителя: говорит правду с p=truth, иначе врёт
# Если дождь и правда → "дождь"; если дождь и врёт → "нет"
# Если нет дождя и правда → "нет";  если нет дождя и врёт → "дождь"
def answers(rain):
    a = np.zeros((N, 3), dtype=bool)  # True = ответил "дождь"
    for i in range(3):
        truthful = np.random.rand(N) < truth
        a[:, i] = np.where(rain, truthful, ~truthful)
    return a
 
a = answers(rain)
all_say_rain = a.all(axis=1)
posterior = rain[all_say_rain].mean()
print(f"P(R | all 3 said 'rain') ≈ {posterior:.4f}")
# ~0.2321

Подводные камни

  1. Игнорировать априорную вероятность. «Три из трёх сказали — значит, точно дождь». Это интуиция, ломающаяся, когда базовый rate низок (paradox of low base rate).
  2. Перепутать P(ER)P(E \mid R) и P(RE)P(R \mid E). Это не одно и то же: первое — «вероятность увидеть три "дождя", если он идёт», второе — «вероятность дождя, если все трое сказали "дождь"». Это ровно то, для чего нужна теорема Байеса.
  3. Зависимость москвичей. Условие предполагает независимость их ответов. В реальности это не так: они смотрят в общее окно общей погоды, и если у одного «дождь» — у других вероятнее тоже дождь. Но в задаче москвичи случайные и их ответы условно независимы при заданной погоде — это корректное допущение.
  4. 30 дней — это база на год, но не на сегодня. В реальности зимой и летом дожди разные. Если бы знали месяц — prior уточнить.
  5. Бинарность ответа «правду / неправду». В реальности человек может «не быть уверен», окно может быть в крытом помещении и т.п. Задача упрощённая — модель честная.

Эталонный ответ

P(R3 «дождь»)23.2%P(R \mid \text{3 «дождь»}) \approx 23.2\%.

Расчёт: prior 30/36530/365, likelihood «дождь» (3/5)3\to (3/5)^3, likelihood «не дождь» (2/5)3\to (2/5)^3, теорема Байеса. Главное — не путать P(ER)P(E \mid R) с P(RE)P(R \mid E) и учитывать априорную вероятность.

Хочешь увидеть разбор?

Зарегистрируйся бесплатно — откроется развёрнутое решение этой задачи и ещё 4 на выбор.

Зарегистрироваться и увидеть разбор
Уже есть аккаунт? Войти