Эмпирический байесовский анализ

Рейтинг: 4.6 из 5
Автор
Вадим Соколов
Рейтинг автора
4.6

Эмпирический байесовский анализ данных представляет собой набор методов, которые являются привлекательной альтернативой частотным методам, например, проверке значимости нулевой гипотезы, линейной регрессии, логистической регрессии, дисперсионному анализу (ANOVA). Хотя существуют специализированные инструменты (например, STAN) для байесовского анализа данных, этот вариант использования показывает универсальность и общую применимость вероятностного программирования.

Проверка честности монеты с ограниченной информацией

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

Представьте, что кто-то подбрасывает монету один… два… три раза, и вы видите три «орла» подряд. Это веское доказательство того, что монета несправедлива (а не 50/50)? Сколько еще «орлов» подряд вам нужно увидеть, чтобы решить, честная это монета или несправедливая?

Проверка честности монеты - это «простая задача, которая для иллюстрации основных идей статистического вывода также дает простую задачу, которую можно использовать для сравнения различных конкурирующих методов статистического вывода» * при ограниченной информации.

* В Википедии есть хорошая статья, в которой сравнивается байесовский подход (фиксированное количество бросков плюс предварительные знания) и частотный подход (любое количество бросков и отсутствие предварительных знаний)

Хотя эта проблема достаточно проста для аналитического вычисления вероятностей, неплохо было бы начать демонстрировать, как вероятностное программирование можно использовать для анализа эмпирических данных и эмпирических выводов, отчасти потому, что мы можем сравнивать наши результаты с точными результатами анализа. Например, вот два графика с одинаковыми условиями: априор = равномерное распределение, с подтверждением 7 голов из 10 подбрасываний. Слева - аналитическое решение, а справа - результат программы ниже.

Что такое «Справедливый»? (Немного субъективности)

Хотя мы обычно думаем, что честная монета имеет вероятность выпадения орла ровно 0,5, это идеализация, которая предполагает, что мы можем (или должны) подбрасывать монету очень много раз (сколь угодно часто). Если мы заранее знаем, что подбросим монету несколько или много раз, мы можем принять монету как «справедливую», вероятность выпадения орла близка к 0,5. Как близко? Это зависит от лица, принимающего решение, и от того, что вы будете делать с информацией. Вы делаете ставки? Вы сравниваете монеты, чтобы выбрать наиболее справедливые (или несправедливые)?

В нашем случае мы определим «справедливый» как. Вероятность того, что монета является справедливым , учитывая распределение вероятностей головок, определяется как площадь под кривой между пределами 0,4 и 0,6, как показано на рисунке , приведенном ниже.

«. Площадь под кривой.»: Вот почему вероятность и статистические требования рассчитываются, когда вы начинаете иметь дело с непрерывным распределением вероятностей. Обратите внимание: если бы мы приняли только p = 0,5 как «удовлетворительное», тогда заштрихованная область была бы нулевой!

Что, если бы это было равномерное (плоское) распределение? Тогда вероятность получения честной монеты будет довольно низкой, потому что гораздо больше вероятностной массы лежит за пределами этого диапазона, чем внутри. Подумайте об этом несколько секунд . Аналитики и разработчики моделей часто склонны использовать однородные распределения в качестве априорных распределений, если случайная величина ограничена (в данном случае), потому что безопаснее ничего не предполагать о вероятном значении. Но в данном случае подразумевается, что вы также делаете довольно сильное предположение о том, что большинство монет смещены. Если у вас есть лишь небольшое количество доказательств (например, несколько подбрасываний), это может привести к некоторым странным выводам и решениям.

Обратное было бы верно, если бы ваше априорное или апостериорное распределение было узким и сконцентрированным в пределах «справедливого» диапазона. Вы увидите эти эффекты в следующем эксперименте.

Байесовский анализ эксперимента с подбрасыванием монеты

Вот экспериментальная установка. Всего подбрасывается K монет, где numH = количество орлов («H») из K, но будут наблюдаться только первые N. Таким образом, K определяет «самую длинную возможную серию» или «все возможные данные», а отношение numH / K - это «основная истина» вероятности подбрасывания «орлов» (также известного как «орел»). Если близко к 0,5, значит, монета справедливая.

Чтобы выполнить программу и получить результаты, нажмите кнопку «Выполнить» под следующим кодовым полем.

Первоначально K = 10; N = 10; numH = 7, следовательно. Когда это означает, что вы видите все доступные данные. Если, вы видите только часть этого. Вы можете установить для них любое положительное целое число, если; а также ; . Попробуйте установить N = 1 (одиночный бросок) или N = 3, или установите K на большое число с пропорциональным numH.

Три модели с разными априорными распределениями

Обратите внимание на то, что происходит в каждой из этих настроек с тремя случаями предварительного знания: 1) неосведомленность (равномерное распределение); 2) в некоторой степени информированный (бета-раздача); и 3) очень информированный (узкое распределение Гаусса).

Код и комментарии, которые менее важны для понимания эксперимента, скрыты макросом `/// fold:`. Чтобы просмотреть этот код, просто нажмите на. . . в поле кода.

Анализ результатов - с параметрами по умолчанию (7 из 10 подбрасываний - «H»), вы сначала заметите, что все три запроса вывода вернули среднюю оценку для этого значения выше 0,5, предполагая, что монета смещена в сторону орла. Но статистический тест на справедливость дает разные результаты во всех трех случаях. Модель A (неинформативная априорная) дает наибольшую вероятность (около 0,75). Модель Б (Немного информативная приора) примерно такая же. Но модель C (очень информативная априорная) возвращает противоположный результат с вероятностью около 0,69.

Потому что из трех моделей модель C наиболее устойчива к изменениям с новой информацией. В некотором смысле, требуется много доказательств, чтобы подтвердить предварительное знание (предположение) о том, что почти все монеты являются честными. Напротив, модель А легче всего отклонить даже от фрагмента доказательства. Чтобы увидеть это, измените N = 1; (бросок одной монеты) и снова нажмите кнопку запуска.

Вы увидите, что выходные данные функции плотности вероятности (PDF) для модели A сильно затронуты, в то время как выходные данные модели B несколько затронуты, а выходные данные модели C практически не затронуты. Как байесовские аналитики и разработчики моделей, мы всегда должны думать:

Насколько важны доказательства?

(больше субъективности)

Какие бы методы моделирования, кондиционирования и вывода вы ни использовали, вы всегда должны осознавать, какое влияние наблюдения (свидетельства, ограничения и т. Д.) Окажут на предыдущие распределения. Как упоминалось в предыдущих главах, функция Infer () используется WebPPL для подсчета весов правдоподобия для всех (или почти всех общих) трасс вашей модели (то есть остальной части программы). Такие функции, как наблюдение (), условие () и фактор (), выполняют операции взвешивания правдоподобия. В конфигурации по умолчанию мы используем функцию наблюдения (.):

… Который выполняет следующее: «устанавливает высокую вероятность для текущей трассы, если наблюдаемое количество головок obsH приблизительно такое же, как данные (количество головок), сгенерированные этой трассой dataH, с небольшим членом гауссовского шума; В противном случае установите вероятность на низкое значение ».

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

Вы можете отредактировать приведенный выше код, чтобы учесть это, раскомментируя оператор factor (.), А также закомментировав оператор наблюдения (.). Повторите эксперимент с другими значениями, например 1, 3 и 10. Вы увидите, что наиболее чувствительные модели (A и B) гораздо менее чувствительны к одному броску, чем раньше. Используемый оператор factor ():

… Который делает следующее: «если количество сгенерированных голов dataH точно равно количеству наблюдаемых голов obsH, тогда не изменяйте логарифмическую вероятность (примечание:), в противном случае уменьшите логарифмическую вероятность на.». Чем больше, тем больше штраф за трассировки программы, не соответствующие условию. Вам может быть интересно: «Откуда взялась 2.5?» Это исходило от аналитика (меня) и моих «проб и ошибок». Когда я попробовал, вероятность штрафа была слишком велика. Когда я попробовал и, вероятность штрафа была слишком мала. Какие бы функции взвешивания вероятностей вы ни выбрали, вам следует изучить различные значения и функции, чтобы понять, какое влияние они могут иметь на результаты, а затем разработать обоснование вашего окончательного выбора. (В этом случае мы могли бы провести эксперименты на людях, чтобы увидеть, насколько они изменили свои оценки вероятности, учитывая информацию из дополнительных бросков.)

Вывод состоит в том, что влияние свидетельств имеет определенную степень субъективности, но вы, как аналитик, можете исследовать альтернативы и (обычно) прийти к разумному и оправданному выбору функций и параметров.

Почему эти методы вывода?

До сих пор мы не обсуждали два метода вывода, выбранные для этой модели, но стоит объяснить эти варианты.

В основной модели используется метод: «MCMC», что означает «Марковская цепь Монте-Карло» (MCMC), и ядро: «MH» (MH), что означает «Метрополис-Гастингс». MCMC - довольно хороший метод вывода, если ваша модель включает в себя хотя бы несколько непрерывных случайных величин, и если распределение «хорошее» (т.е. большая часть массы близка к среднему, не слишком «остроконечная», не очень тяжелые хвосты и т. Д. .). Ядро MH является довольно безопасным в использовании, но оно может медленно сходиться. Поскольку нас не интересует время выполнения во время кондиционирования, мы можем быть довольны MCMC и MH. Поскольку случайные величины имеют непрерывное распределение, мы не можем использовать методы вывода, которые работают только с дискретными случайными величинами, например «Перечислить».

Модель «fairTest» использует метод: «forward», что просто означает: «запустить программу определенное количество раз (выборок: 1000) и взвесить трассировки вероятности по их частоте в этих прогонах». Это просто симуляция Монте-Карло. Мы выбрали этот метод вывода, потому что 1) нет наблюдений, которые бы обусловливали данные, и 2) случайная величина является непрерывной.

Новости спорта

Изначально сайт создавался для пользователей со всех стран мира. Международный домен ориентирован на самых разных пользователей. Страницы сайта переведены на 46 языков, среди которых есть и азербайджанский. Это выгодно выделяет платформу на фоне конкурентов, так как многие из них либо не работают на территории данной страны, либо не имеют местной локализации.

Больше новостей