Розуміння MCMC та алгоритму Metropolis-Hastings


13

Останні кілька днів я намагався зрозуміти, як працює Марківський ланцюг Монте-Карло (MCMC). Зокрема, я намагався зрозуміти і реалізувати алгоритм Metropolis-Hastings. Поки я думаю, що я цілком розумію алгоритм, але є кілька речей, які мені ще не зрозумілі. Я хочу використовувати MCMC для пристосування деяких моделей до даних. Через це я опишу своє розуміння алгоритму Метрополіса-Гастінгса для пристосування прямої до деяких спостережуваних даних D :f(x)=axD

1) Складіть початкову здогадку для . Встановіть це a як наш поточний a ( a 0 ). Також додайте в кінці ланцюга Маркова ( С ).aaaa0aC

2) Кілька разів повторіть кроки нижче.

3) оцінка поточне правдоподібність ( ) дан в 0 і D .L0a0D

4) Запропонуйте новий ( a 1 ) шляхом вибірки з нормального розподілу з μ = a 0 і σ = s t e p s i z e . Поки що s t e p s i z e є постійним.aa1μ=a0σ=stepsizestepsize

5) оцінка нове правдоподібність ( ) наведено в 1 і D .L1a1D

6) Якщо більше , ніж L 0 , приймають на 1 , як новий A 0 , додати його в кінці C і перейти до кроку 2.L1L0a1a0C

7) Якщо менший, ніж L 0, генерують число ( U ) в діапазоні [0,1] від рівномірного розподілуL1L0U

8) Якщо є меншим , ніж різниця між цими двома можливостями ( L 1 - L 0 ), приймають на 1 , як новий A 0 , додати його в кінці C і перейти до кроку 2.UL1L0a1a0C

9) Якщо більше , ніж різниця між цими двома можливостями ( L 1 - L 0 ), додайте в 0 в кінці C , продовжують з використанням тих же а , 0 , перейти до кроку 2.UL1L0a0Ca0

10) Кінець Повторення.

11) Видаліть деякі елементи з початку (фаза згоряння).C

12) Тепер візьміть середнє зі значень в . Це середнє значення є приблизним a .Ca

Тепер у мене є кілька питань стосовно вищезазначених кроків:

  • Як я будую функцію ймовірності для але і для будь-якої довільної функції?f(x)=ax
  • Це правильна реалізація алгоритму Metropolis-Hastings?
  • Як вибір методу генерації випадкових чисел на етапі 7 може змінити результати?
  • Як зміниться цей алгоритм, якщо у мене є кілька параметрів моделі? Наприклад, якби у мене була модель .f(x)=ax+b

Примітки / кредити: Основна структура алгоритму, описаного вище, заснована на коді з MPIA Python Workshop.

Відповіді:


11

Здається, є деякі помилки щодо того, що алгоритм Метрополіс-Гастінгс (MH) є у вашому описі алгоритму.

Перш за все, треба зрозуміти, що MH є алгоритмом вибірки. Як зазначено у вікіпедії

У статистиці та статистичній фізиці алгоритм Метрополіс-Гастінгса - це метод Монте-Карло (MCMC) ланцюга Маркова для отримання послідовності випадкових вибірок з розподілу ймовірностей, для яких прямий вибірки є важким.

Q(|)f()

  1. x0
  2. xQ(|x0)
  3. α=f(x)/f(x0)
  4. xfα
  5. x

Nk

Приклад в R можна знайти за наступним посиланням:

http://www.mas.ncl.ac.uk/~ndjw1/teaching/sim/metrop/metrop.html

Цей метод в значній мірі застосовується в баєсівській статистиці для відбору проб із заднього розподілу параметрів моделі.

f(x)=axx

Роберт і Казелла (2010), знайомлячи з методами Монте-Карло з R , гл. 6, "Алгоритми Метрополіс-Гастінгс"

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

Інший покажчик можливого інтересу - пакет R mcmc, який реалізує алгоритм MH з пропозиціями Гаусса в команді metrop().


Привіт, мій друже. Так, я переглядаю МЗ у контексті лінійної регресії. URL-адреса, яку ви мені дали, пояснює все дійсно приємно. Дякую. Якщо я придумаю ще якесь питання щодо МЗ, я знову поставлю запитання. Знову дякую.
AstrOne
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.