Книга: Байесовская статистика: Star Wars, LEGO, резиновые уточки и многое другое
Назад: 3. Логика неопределенности
Дальше: 5. Бета-распределение

4. Как получить биноминальное распределение

Из главы 3 вы узнали некоторые правила для вероятностей, относящиеся к логическим операциям: И, ИЛИ, НЕ. Используем их в этой главе, чтобы получить свое первое вероятностное распределение — способ описать все возможные события и их вероятности. Вероятностные распределения часто изображают графически для большей наглядности. Мы придем к распределению, определив функцию для обобщения целого класса задач о вероятности. Это распределение позволит считать вероятности для многих ситуаций, а не только для одной конкретной. Для этого мы найдем общие элементы во всех задачах и выделим их. Статистики часто так делают, это позволяет легче находить решения для целых классов задач. Особенно полезен такой подход в случае сложных задач или когда подробности неизвестны. Тогда можно использовать хорошо изученные и понятные распределения как приблизительное описание не вполне понятного реального мира.

Распределения вероятностей очень полезны, когда нас интересует диапазон возможных значений. Например, мы можем использовать их для определения вероятности, что покупатель зарабатывает от 30 000 до 45 000 долларов в год. Или вероятности, что взрослый человек будет выше двух метров. Или вероятности, что от 25 до 35 % посетивших веб-страницу зарегистрируются. Многие вероятностные распределения описываются сложными формулами, к которым надо привыкнуть. Однако все эти формулы выводятся из базовых правил, описанных в предыдущих главах.

Структура биномиального распределения

Сейчас вы познакомитесь с биномиальным распределением, которое используется для подсчета числа успешных исходов, когда мы знаем число попыток и вероятность успеха.

Приставка «би» означает, что возможных исходов два: событие происходит или нет. Если возможных исходов более двух, распределение называется мультиномиальным. Биномиальное распределение описывает вероятности:

• дважды выбросить орла за три броска монеты;

• купить миллион лотерейных билетов и выиграть хотя бы один раз;

• выбросить двадцать меньше трех раз за 10 бросков двадцатигранной кости.

Все эти задачи похожи по структуре. Действительно, каждое биномиальное распределение имеет три параметра:

• k — число интересующих нас исходов;

• n — число попыток;

• p — вероятность интересующего нас исхода.

Эти параметры подаются на вход распределения. Например, когда мы ищем вероятность выкинуть двух орлов за три броска монеты:

• k= 2 — число интересующих нас исходов (здесь — орлов);

• n= 3 — общее число бросков;

• p= 1/2 — вероятность выкинуть орла при броске.

Можно построить биномиальное распределение, чтобы обобщить задачи такого рода, и после этого легко решить любую задачу с такими тремя параметрами. Такое распределение обозначается

B (k; n, p).

В примере с тремя бросками монеты мы пишем B (2; 3, 1/2). B — сокращение от «биномиальный» (binomial). Заметим, что k отделено от других параметров точкой с запятой, так как нас обычно интересует распределение для всех k при фиксированных n и p. Поэтому B (k; n, p) обозначает одно из значений распределения, но распределение в целом обычно обозначается просто B (n, p).

Рассмотрим подробнее, как найти функцию, обобщающую все перечисленные задачи.

Выделение главного в задаче

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

ООР, ОРО, РОО.

Хочется перечислить и все другие возможные исходы, а потом поделить число интересующих нас исходов на общее количество. Такой способ сработает для этой задачи, но наша цель — решить любую задачу, в которой есть некоторое количество попыток и вероятность желательного исхода. Без обобщения, если мы поменяем параметры, придется решать задачу снова. Уже сам вопрос «какова вероятность получить двух орлов за четыре броска монеты» потребует нового отдельного решения.

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

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

P ({орел, орел, решка}) =P ({орел, решка, орел}) =

= P ({решка, орел, орел}).

Назовем эту вероятность так:

P (желательный исход).

Исхода три, но реализуется только один (нам неважно какой). Поэтому исходы являются взаимоисключающими:

P ({орел, орел, решка}, {орел, решка, орел}, {решка, орел, орел) = 0.

Так что нам легко применить правило суммы вероятностей и заключить, что

P ({орел, орел, решка} или {орел, решка, орел} или {решка, орел, орел}) =

= P (желательный исход) + P (желательный исход) +

+ P (желательный исход).

Конечно же, сложение даст нам

3 ×P (желательный исход).

Итак, мы умеем коротко записывать интересующие нас исходы, но проблема в том, что число 3 относится именно к этой задаче. Исправим это, заменив 3 на коэффициент Nисходов. Получаем неплохое обобщение:

B (k; n, p) =Nисходов×P (желательный исход).

Теперь надо решить две подзадачи: как найти число интересующих нас исходов и как определить вероятность одного исхода. Выяснив это, мы решим задачу!

Подсчет исходов через биномиальные коэффициенты

Сначала надо найти, сколько исходов соответствуют данным k (числу желательных исходов) и n (числу попыток). Для маленьких чисел это несложно посчитать. Желая получить четырех орлов за пять бросков, мы имеем пять желательных исходов:

ООООР, ОООРО, ООРОО, ОРООО, РОООО.

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

6 — 6 — 1

6 — 6 — 2

6 — 6 — 3

4 — 6 — 6

5 — 6 — 6

Очевидно, что перечисление всех исходов быстро перестает работать. Спасет нас комбинаторика.

Комбинаторика: умный подсчет через биномиальные коэффициенты

Идею решения задачи подскажет раздел математики под названием «комбинаторика». По сути — это способы умного подсчета. В комбинаторике существует понятие биномиального коэффициента — количества способов выбрать k вещей из n — например, интересующих нас исходов из общего числа попыток. Обозначение для биномиального коэффициента выглядит так:

Eqn0031.tif

Это выражение читается как «эн по ка». В нашем примере запишем «два орла из трех бросков» как

Eqn0032.tif.

Определяется эта величина как

Eqn0033.tif.

Восклицательный знак обозначает факториал, то есть произведение всех чисел от единицы до числа перед восклицательным знаком включительно, например: 5! = (5 × 4 × 3 × 2 × 1).

Большинство языков программирования, применяющихся в области математики, имеют функцию choose() для вычисления биномиальных коэффициентов. Например, в языке R мы вычислим биномиальный коэффициент для двух орлов за три броска монеты так:

choose(3,2)

>>3

Пользуясь биномиальными коэффициентами для подсчета числа интересующих нас исходов, мы перепишем общую формулу так:

Eqn0034.tif 

Вспомним, что P (желательный исход) — вероятность любой из комбинаций трех бросков, в которой есть два орла. В предыдущем равенстве мы использовали эту величину, не зная, чему она равна. Теперь нам осталось найти P (один исход), и мы будем готовы решать целый класс задач!

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

Нам осталось найти P (желательный исход), вероятность любого из интересных нам событий. До этого мы использовали P (желательный исход) как переменную для удобства записи, теперь надо вычислить ее значение. Рассмотрим вероятность получить два орла за пять бросков. Сосредоточимся на одном подходящем исходе: ООРРР. Мы знаем, что вероятность выкинуть орла за один бросок равна 1/2, но для большей общности обозначим ее как P (орел), не привязываясь к конкретному значению. Используя правило произведения и свойство отрицания, переформулируем задачу как

P (орел, орел, не орел, не орел, не орел).

Или, словами, «вероятность выкинуть орла, орла, не орла, не орла, не орла».

Свойство отрицания говорит, что P (не орел) = 1 – P (орел). Теперь достаточно применить правило произведения:

P (орел, орел, не орел, не орел, не орел) =

= P (орел) × P (орел) × (1 – P (орел)) × (1 – P (орел)) × (1 – P (P (орел)).

Запишем проще, используя степени:

P (орел)2× (1 – P (орел))3.

В итоге

P (два орла за пять бросков) =P (орел)2× (1 – P (орел))3.

Заметим, что степени при P (орел) и 1 – P (орел) — это просто количество орлов и не орлов, то есть k (число интересующих нас исходов) и nk (число попыток минус число интересующих нас исходов). Все вместе приводит к общей формуле, в которой нет конкретных чисел:

Eqn0035.tif 

Мы не всегда говорим именно о вероятности выпадения орла, поэтому заменим P (орел) на p. Мы получили общее решение для числа интересующих нас исходов k, числа попыток n и вероятности одного интересующего нас исхода p:

Eqn0036.tif 

Имея такую формулу, мы в состоянии решить любую задачу про броски монетки. Например, посчитаем вероятность выбросить 12 орлов за 24 броска:

Eqn0037.tif 

До того как вы узнали о биномиальном распределении, решить эту задачу было бы гораздо сложнее!

Функция, описывающая распределение, называется функцией вероятности (PMF, probability mass function). С ней мы можем вычислить вероятность для любого k при фиксированных n и p. Например, можно подставить все возможные значения k для 10 бросков монеты и изобразить биномиальное распределение, как на рис. 4.1.

Можно рассмотреть аналогичное распределение вероятностей выбросить шестерку при десяти бросках шестигранного кубика, показанное на рис. 4.2.

457566.png 

Рис. 4.1. Гистограмма вероятности получения k орлов из 10 бросков монеты

457589.png 

Рис. 4.2. Вероятность получения шестерки за 10 бросков кубика

Как мы видим, вероятностное распределение позволяет обобщить целый класс задач.

Теперь мы можем применять наше распределение в самых разных ситуациях. Но помните, что мы вывели его, пользуясь простыми правилами для вероятностей. Проверим, как оно работает.

Пример: игра «гача»

В Японии очень популярны разновидности мобильной игры «гача». Игрокам за игровую валюту нужно покупать виртуальные карты, которые выдаются случайным образом, и игрок не может повлиять на то, что получит. Карты неравноценны, и, как в автоматах, игрок стремится брать новые карты из колоды, пока не получит желаемую. Посмотрим, как биномиальное распределение поможет решить, рисковать или нет в такой игре.

Итак, вы установили новую игру «Байесовские бойцы». Текущий набор карт, из которых вы можете вытянуть новую, называют баннером. В нем есть и обычные карты, и так называемые суперкарты. Как можно догадаться, все персонажи карт в «Байесовских бойцах» — знаменитые специалисты по теории вероятностей и статистике. На баннере лежат следующие карты (рядом указана вероятность их вытащить):

• Томас Байес: 0,721 %;

• Эдвин Томпсон Джейнс: 0,720 %;

• Гарольд Джеффрис: 0,718 %;

• Эндрю Гельман: 0,718 %;

• Джон Крушке: 0,714 %.

Эти суперкарты соответствуют вероятности всего в 0,03591. Но общая вероятность равна 1, так что шанс вытянуть менее желанную карту составляет 0,96409. Мы также считаем, что колода бесконечна — то есть вытаскивание одной карты не меняет вероятностей, вытянутая карта «остается в колоде». С реальной колодой, если вы не возвращаете карту, дело обстояло бы иначе!

Вы очень хотите заполучить в свою элитную байесовскую коллекцию Эдвина Джейнса. Увы, чтобы тянуть карты, нужна валюта — байес-баксы. За одну карту вы обычно платите один байес-бакс, и сейчас проходит акция — 100 байес-баксов за 10 долларов. Вы не хотите тратить больше этой суммы, да и ее — только если есть хороший шанс заполучить желанную карту. Вы купите байес-баксы, только если вероятность получить великолепного Джейнса будет не менее 0,5.

Конечно, мы можем подставить вероятность вытянуть Джейнса в нашу формулу для биномиального распределения:

Eqn0038.tif 

Результат меньше 0,5, вроде бы, надо сдаться. Но стоп! Мы забыли, что в этой формуле мы считаем вероятность вытянуть только одну карточку с Джейнсом. А их может быть две или даже три! Так что нас интересует вероятность вытянуть одну или более карт, то есть

Eqn0039.tif

Eqn0040.tif 

и так далее, до 100 карт, которые можно купить на байес-баксы. Записывать всю сумму утомительно, воспользуемся специальным обозначением:

Eqn0041.tif.

Σ — обозначение суммы, число снизу показывает, откуда мы начинаем складывать, сверху — когда заканчиваем. Так что выше записана сумма всех значений биномиального распределения для k от 1 до n, при p, равном 0,00720.

Мы смогли упростить это выражение, но надо вычислить его значение. Не доставайте калькулятор — давайте воспользуемся языком R. В R можно вызвать функцию pbinom(), чтобы просуммировать значения плотности распределения для всех k. На рис. 4.3 показано, как мы используем pbinom() для этой задачи.

Функция pbinom() принимает три обязательных аргумента и один опциональный lower.tail (по умолчанию он равен TRUE). Когда четвертый аргумент равен TRUE, мы суммируем вероятности для всех k, меньших или равных первому аргументу. Когда lower.tail принимает значение FALSE,

457600.png 

Рис. 4.3. Использование pbinom() для задачи о байесовских бойцах

мы суммируем вероятности для всех k, строго больше первого аргумента. Передав в качестве первого аргумента 0, мы ищем вероятность получить не менее одной карты с Джейнсом. Мы присвоили lower.tail значение FALSE, так как это значит, что мы хотим перебирать значения, большие первого аргумента (а по умолчанию перебирали бы меньшие). Следующий аргумент соответствует n, числу попыток, а третий — p, вероятности успеха.

Подставив наши числа и lower.tail, равное FALSE, как показано на рис. 4.3, мы получим от R вероятность вытянуть за наши 100 байес-баксов хотя бы одну карту с Джейнсом:

Eqn0042.tif 

Хотя вероятность вытянуть ровно одну карту с Эдвином Джейнсом составляет всего 0,352, вероятность получить не менее одной карты достаточно высока, чтобы рискнуть. Доставайте десять баксов и пополняйте команду элитных байесовцев!

Заключение

В этой главе мы научились применять правила вычисления вероятностей (а также комбинаторику), чтобы вывести общую формулу для целого класса задач. Любая задача, состоящая в определении вероятности k исходов за n испытаний, где вероятность исхода равна p, легко решается с использованием биномиального распределения:

Eqn0043.tif 

Как ни странно, но в выводе этой формулы нет ничего, кроме подсчета и применения базовых правил вероятности.

Упражнения

Чтобы убедиться, что вы понимаете биномиальное распределение, попробуйте ответить на эти вопросы.

1. Каковы параметры биномиального распределения для вероятности выкинуть один или двадцать на двадцатигранной кости, если бросить кость 12 раз?

2. В колоде из 52 карт четыре туза. Вы вытягиваете карту, возвращаете ее обратно, тасуете колоду и снова вытягиваете карту. Сколькими способами можно вытянуть только одного туза за пять попыток?

3. Продолжая предыдущую задачу: какова вероятность вытянуть пять тузов за десять попыток (помните, что карта возвращается в колоду!)?

4. При поиске новой работы полезно иметь больше одного предложения — это открывает возможность поторговаться. Пусть вероятность получить после собеседования предложение о работе равна1/5, и за месяц вы проходите семь собеседований. Какова вероятность, что к концу месяца вы получите хотя бы два предложения?

5. Вы получили немало писем от рекрутеров и обнаружили, что в следующем месяце у вас 25 собеседований. Ох, это утомительно, а вероятность получить предложение о работе, когда проходишь собеседование усталым, падает до 1/10. Вы готовы пройти 25 собеседований, только если это в два раза повысит вероятность получить хотя бы два предложения. Надо ли проходить 25 собеседований или остановиться на семи?

Назад: 3. Логика неопределенности
Дальше: 5. Бета-распределение