Формула Байеса

Для опроса на знание основ машинного обучения я когда-то составил такую задачу:

Тест на болезнь «зеленуху» имеет вероятность ошибки 0.1 (как позитивной, так и негативной), зеленухой болеет 10% населения. Какая вероятность того, что человек болен зеленухой, если у него позитивный результат теста?

Вот попробуйте, для начала, не решая назвать ответ…

Решение, конечно, элементарное и основано на формуле Байеса:

f1

Получаем, что искомая вероятность: (0.9*0.1)/(0.9*0.1 + 0.1*0.9) = 0.5.

По-моему, это удивительно. Смотрите, мы взяли прибор с очень неплохой погрешностью… всё-таки в 9 из 10 случаях он не ошибается. А получилось, что он работает как подбрасывание монеты. И верить ему совсем(!) нельзя. Дальше будет ещё интереснее…

Рассмотрим более общий случай. Пусть теперь q – вероятность неправильного ответа прибора, p – вероятность заболеть зеленухой, тогда

f2

Давайте посмотрим, как выглядит эта функция от двух переменных: p и q.

pq_bayes

См. рис — Значение 0.5 она принимает на диагонали p=q. В этом можно также убедиться приравняв

f3

Ниже диагонали — вероятность выше 0.5, т.е. чтобы как-то верить прибору, вероятность болезни должна превышать вероятность его ошибки. Это ещё более удивительно! Представьте, если болезнь очень редкая, скажем, вероятность ей заболеть равна 0.001, то получается, что для её диагностики нужен очень-очень точный прибор.

Вопросы для внимательных читателей

  1. Не обманул ли я Вас где-то;)?
  2. Почему же в реальном мире мы доверяем приборам?
  3. Какая вероятность заболеть, скажем, гриппом? И можно ли её использовать как p в описанных формулах?

Для справки

Томас Байес был английским священником и при жизни опубликовал всего одну математическую работу, его фамилия правильно произносится как [beiz]. Ещё об одном парадоксе, связанном с формулой Байеса, можно прочитать в википедии.

Формула Байеса: 17 комментариев

  1. Чтобы воспользоваться исходными данными задачки, раскроем второе слагаемое в знаменателе выражения, основанного на формуле Байеса, следующим образом:

    P(+|здоров)P(здоров) = (1 — P(-|болен)(1 — P(болен)).

    В результате получаем вероятность того, что человек действительно болен «зеленухой» при условии положительного теста:

    P(болен| +) = 0.9*0.1/(0.9*0.1 + (1-0.1)(1-0.1)) = 0.09/(0.09+0.81) = 0.1 🙂

  2. Ну что Вы!

    Это верно:
    P(здоров) = (1 — P(болен))

    А это — нет (в общем случае):
    P(+|здоров) = (1 — P(-|болен))

    События (+|здоров) и (-|болен) не образуют полную группу событий.
    Верно только так:
    P(+|здоров) + P(-|здоров) = 1,
    поскольку
    P(+|здоров) + P(-|здоров) = P(+ и здоров)/P(здоров) + P(- и здоров)/P(здоров) = P(здоров)/P(здоров) = 1

  3. Наверно пропущены условия применения теста. Он же не ко всем людя применяется, а только у кого симптомы есть. А условная вероятность болезни при наличии симптомов выше и нам уже достаточно точности теста.

    • Верно! Различные тесты и анализы проводят, когда есть подозрение на какую-то болезнь, поэтому вероятность болезни надо вычислять по этой «подозрительной» группе. И, как Вы отметили, это понижает требования к точности прибора…

  4. Еще, говорить о том, что прибор работает как подбрасывание монеты — преувеличение. Ведь если мы будем подбрасывать монету и считать человека больным в одном из двух возможных исходов, то точность классификатора составит 0.1, а не 0.5, как в случае использования прибора.

    • Похоже, содержание поста и теория вероятностей прошла мимо Вас:)

      Если Вы будете подбрасывать монету и считать человека больным в одном из двух возможных исходов, то точность классификатора будет всё-таки 0.5!

      Я даже больше скажу, она [точность] не будет зависеть от процента заболевших! Возьмём крайний случай: никто не болен — тогда 50% мы неправильно классифицируем — по ошибке отнесём к больным. Возьмём другой крайний случай: все больны — тогда опять 50% мы неправильно классифицируем — по ошибке отнесём к здоровым. В случае, когда какая-то часть болеет, половину больных и половину здоровых мы неправильно классифицируем — опять 50% населения.

      Но в том, что классификатор-прибор работает не как классификатор-монета, Вы правы;) Но обращать внимание тут надо не на точность, а на ошибки 1го и 2го рода.

      • Под точностью я имею в виду вероятность того, что человек болен при условии, что классификатор считает его больным. Поскольку классификатор, основанный на подбрасывании монеты, и индикатор болезни независимы, эта вероятность будет равна безусловной вероятности заболеть, то есть составит 0.1. То, о чем говорите Вы, насколько мне известно, называется охватом (вероятность быть отнесенным к больным при условии болезни). Он для подбрасывания монеты действительно равен одной второй вне зависимости от безусловной вероятности заболеть. Но в статье вычисляется именно точность, а не охват.

  5. Точнее, не совсем так: Вы в своем ответе имели в виду accuracy (я же говорил про precision). Но давайте вычислим accuracy классификатора, использующего прибор:
    a = P(+|здоров) * P(здоров) + P(-|болен) * P(болен) = 0.9 * 0.9 + 0.9 * 0.1 = 0.9. В то время как accuracy классификатора, основанного на подбрасывании монеты, равна 0.5. То есть и с точки зрения accuracy классификатор, использующий прибор, работает лучше, чем подбрасывание монеты.

    • Да, совершенно верно.
      Accuracy можно и не вычислять… по условию «Тест на болезнь «зеленуху» имеет вероятность ошибки 0.1», а значит Accuracy=1-0.1=0.9:)
      В этом смысле про прибор уже нельзя писать, что работает «как подбрасывание монеты».
      Кстати, и accuracy и precision переводятся как точность.
      Я был не прав, комментируя Ваше первоначальный комментарий, подумав, что Вы имели в виду именно первый вариант (хотя по контексту ясно, что речь о втором).

      Но исправлять пост не буду. Всё-таки фраза «он работает как подбрасывание монеты» подразумевала равенство вероятностей (правильного и неправильного ответа при положительном показании) а не то, что «как монета-классификатор». Ну так часто говорят, когда получается 0.5 (что бы это не означало). Согласен, что это может сбивать с толку.

      Извините за некорректность в высказываниях. Теория вероятностей не прошла мимо.
      Спасибо.

  6. «… чтобы как-то верить прибору, вероятность его ошибки должна превышать вероятность болезни…»

    Наверное, наоборот: вероятность болезни должна превышать вероятность ошибки прибора?

Ответить на akurennoy Отменить ответ