Практичний приклад для MCMC


14

Я переглядав деякі лекції, пов'язані з MCMC. Однак я не знаходжу хорошого прикладу того, як це використовується. Хтось може дати мені конкретний приклад. Я бачу лише те, що вони керують ланцюгом Маркова і кажуть, що його стаціонарний розподіл - це бажаний розподіл.

Я хочу хороший приклад, коли бажаного розподілу важко отримати. Так ми створюємо ланцюжок Маркова. Я хочу знати, як вибрати матрицю переходу, щоб її стаціонарний розподіл ланцюга Маркова був цільовим розподілом Спасибі


Базова теорія ланцюга Маркова використовується, щоб показати, що певна схема вибірки матиме стаціонарний розподіл, який є бажаним спільним розподілом. Для найпростішого прикладу, пробовідбірник ванілі Гіббса імітує від повних умовних розподілів. Відповідні ядра переходу, взяті разом, якщо вони задовольняють умовам конвергенції (часто прямо це можна показати), можуть легко показати, що вони мають спільний розподіл як стаціонарний розподіл. Аналогічно для "Метрополіса Гастінгса" тощо. Здається, лекції, які ви дивитесь, не пояснюють, наскільки MCMC - це ланцюг Маркова
Glen_b -Reinstate Monica

Відповіді:


3

Хороший приклад розподілу, з якого складно відібрати, є модель Hard-Core, див. Огляд на цій сторінці:

http://www.mathematik.uni-ulm.de/stochastik/lehre/ss06/markov/skript_engl/node34.html

Ця модель визначає розподіл по сітках для деяких фіксованих n , де в кожній точці сітки ви можете мати значення або один, або нуль. Для того, щоб сітка була прийнятною за жорсткою моделлю, жодна дві сусідні точки на сітці не можуть мати значення 1.n×nn

На зображенні нижче показаний приклад допустимої конфігурації для сітки за жорсткою базовою моделлю. На цьому зображенні зображення зображено як чорні точки, а нулі - як білі. Зверніть увагу, що не дві чорні точки суміжні.8×8

Приклад допустимої конфігурації для сітки $ 8 \ раз 8 $ в рамках жорсткої моделі

Я вважаю, що натхнення для цієї моделі походить з фізики, ви можете думати, що кожне положення в сітці є частинкою, а значення в цій позиції, що представляє електричний заряд, або віджимання.

Ми хочемо рівномірно відібрати вибірку із сукупності допустимих сіток, тобто якщо - це сукупність допустимих сіток, ми хочемо відібрати e E таким, щоEeE

p(e)=1|E|

де - кількість усіх можливих допустимих конфігурацій.|E|

Вже це є викликом, враховуючи, що ми розглядаємо сіток, як ми можемо визначити | Е | кількість допустимих сіток? n×n|E|

Однією з приємних речей про MCMC є те, що вона дозволяє вибирати вибірки з розподілів, де нормалізуюча константа важко або неможливо оцінити.

Я дозволю вам прочитати документ про деталі того, як реалізувати MCMC для цієї проблеми, але це досить просто.



2

Ще одна грізна проблема в статистиці. Питання давнє, але вступні приклади в режимі он-лайн важко знайти. Тож дозвольте мені спростити два чудові приклади на випадок, якщо хтось слідкує за Марковим випадковим прогулянком по землях PageRank сюди, збентежених MCMC, і сповнений очікування для легкої відповіді. Наскільки ймовірно? Це може бути подальшим питанням.

FIRST EXAMPLE:

N(0,1)

Складність полягає в тому, що в реалізації після проходження всіх механічних кроків, є тільки один магічний трюк: бінарне рішення приймати чи відкидати на запропоноване значення .

xmean0sd 1rnorm(10000)

epsϵxixi+1runif(1, - eps, eps)xi

Кожне запропоноване значення таким чином відрізнятиметься від попереднього значення випадковим чином і в межах [- eps,+ eps].

Введіть ядро Маркова . Нам потрібно якось оцінити ймовірність переходу до нового запропонованого значення, як у матриці Маркова з переходом на заданий часi розповідає про ймовірність появи нового стану на час i+1. Якщо ви сумніваєтесь, заходьте сюди або запитайте бабусю, яка звернула увагу на всі "Як би ви пояснили квантову фізику своїй няні?" тип питань (чи не виглядають матриці приємно? ;-)).

Щоб отримати таку ймовірність прийняття в букет зібраних значень, ми просто порівнюємо висоту N(0,1)щільність при запропонованому новому значенні (хi+1) до попереднього (вже прийняте значення), (хi), саме так:

І ми беремо співвідношення обох значень: min(1, dnorm(candidate_value)/dnorm(x)). Оскільки ми хочемо ймовірності, результат, що обчислюється, не може переходити1, що відбувається щоразу, коли N(0,1) pгf у хi+1 (значення кандидата) більше, ніж на хi, що становить автоматичне прийняття запропонованого значення та пояснення min(1, ...)частини коду. В іншому випадку, чим ближче dnormзначення запропонованого значення до попереднього значення , тим вище шанси його прийняти.

Тож у нас є ймовірність прийняття, але нам потрібно прийняти бінарне рішення (прийняти нове запропоноване значення або відхилити його). І ось тут виникає магічний трюк: якщо ймовірність, обчислена як min(1, dnorm(candidate_value)/dnorm(x))більша, ніж runif(1)рівномірний розіграш0 до 1(якнайшвидше, як це дістанеться до кидання монети за безперервне значення), ми приймаємо та заповнюємо x[i+1]запис ланцюжка запропонованою вартістю ; в іншому випадку ми заповнюємо це повтором попереднього значення , x[i]... Ідея була б, краще дві однакові, ніж одна занадто далеко в хвости.

Ми робимо це тисячі разів і збираємо всі ці значення (тільки прийняті та повторювані значення), і коли будуємо гістограму, ми отримуємо хорошу нормальну криву з sdблизькою до1і зосереджена на 0.

Лише один заключний момент: з чого ми починаємо? Напевно, не має значення, але в моделюванні ми заповнюємо перше значення як0, x = 0; vec[1] = xперш ніж проглядати всі решта ітерацій, і нехай процес піде за своїм ходом.

SECOND EXAMPLE:

Це більш захоплююче і посилається на оцінку параметрів кривої лінійної регресії шляхом обчислення ймовірності журналу для випадкових параметрів, заданих набором даних . Однак екзегезія рядків коду будується в збереженому тут конденсованому моделюванні , дотримуючись дуже схожих кроків з першим прикладом.


Потрібно кілька незначних виправлень: " Землі тут спантеличені ЦМКМ " ... потребує гортання. " Розенблут-Хатінгс " .... ймовірно, потрібні додаткові "s" там. Я б сказав, що перший приклад не зовсім "важкий для вибірки" (як задається питанням). Обидва ваші приклади виглядають як Метрополіс-Гастінгс (що, безумовно, важливо), але MCMC більше того. Як один із прикладів, дуже багато людей використовують вибірки Гіббса, часто через JAGS / BUGS / тощо. Жодного рішення, пов'язаного з прийняттям запропонованого кроку, немає - ви завжди рухаєтесь.
Glen_b -Встановіть Моніку

Я виправив пропущене "s", ізомерне написання CMCM. Позбувся можливого необґрунтованого гіперпосилання на YouTube, який вирішує проблему з іменем. Пояснив, чому я обрав перший приклад для розробки, незважаючи на конкретний запит (старого) питання. Я вдячний, що ви вказали на всі ці проблеми. Я не впевнений у наслідках вашого останнього рядка.
Антоні Пареллада

Це просто посилання на рядок " є лише один магічний трюк: двійкове рішення про прийняття або відхилення запропонованого значення "; щоб зазначити, що це не властивість усіх алгоритмів MCMC. Це саме по собі не означає, що є проблема з вашою відповіддю; Ви можете розцінювати це як уточнення, якщо хочете. Ізомерний біт був хорошим.
Glen_b -Встановити Моніку

1

Це відео на Youtube - це справді приємна візуалізація простої проблеми, яку вирішують за допомогою MCMC.

Розподіл інтересів - це задній розподіл за можливими схилами та перехопленнями в лінійній регресії (верхній правий панель). Деякі комбінації схилів та перехоплення є дуже ймовірними (тобто вони мають високу ймовірність створення спостережуваних точок даних і відповідають нашим апріорним очікуванням), тому їх слід часто відбирати. Інші комбінації малоймовірні (наприклад, якщо вони відповідають синій лінії, яка не проходить через хмару точок даних), і їх слід брати рідше.

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

У цьому випадку MCMC є надмірним, але є деякі проблеми, коли рішення важко записати, і має сенс вивчити можливості за допомогою ланцюга Маркова, а не намагатися вирішити його безпосередньо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.