Ефективний розмір зразка для заднього висновку з відбору проб MCMC


13

Отримуючи зразки MCMC, щоб зробити висновок за певним параметром, які хороші орієнтири щодо мінімальної кількості ефективних вибірок, на які слід прагнути?

І чи змінюється ця порада, коли модель стає більш-менш складною?


Я здогадуюсь, що це, ймовірно, залежатиме від "константи" в помилці , яка буде залежати від моделей. O(n12)
ймовірністьлогічний

Відповіді:


15

Питання, яке ви задаєте, відрізняється від "діагностики конвергенції". Скажімо, ви провели всю діагностику конвергенції (виберіть улюблені), і тепер готові розпочати вибірку з задньої частини.

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

Нещодавно було введено багатоваріантне визначення ESS. Багатоваріантний ESS повертає одне число для ефективного розміру вибірки для величин, які ви хочете оцінити; і це робиться шляхом обліку всіх перехресних кореляцій у процесі. Особисто я набагато віддаю перевагу багатоваріантному ESS. Припустимо, вас цікавить -вектор засобів заднього розподілу. MESS визначається наступним чином ОсьmESS = n ( | Λ |p

mESS=n(|Λ||Σ|)1/p.
  1. Λ - це структура коваріації задньої частини (також асимптотична коваріація в CLT, якщо у вас були незалежні вибірки)
  2. ΛΣ - асимптотична матриця коваріації в ланцюзі Маркова Маркова (відмінна від оскільки зразки корелюють.Λ
  3. p - кількість оцінюваних величин (або в цьому випадку розмірність заднього.
  4. ||є визначальним.

mESS можна оцінити, використовуючи матрицю коваріації вибірки для оцінки а партія означає матрицю коваріації для оцінки . Це було закодовано в функції в R пакета mcmcse .ΣΛΣmultiESS

Цей останній документ пропонує теоретично обґрунтовану нижню межу кількості необхідних ефективних зразків. Перед моделюванням потрібно визначитися

  1. ϵϵ : точність. - частка помилки, яку ви хочете, щоб Монте-Карло був порівняно з задньою помилкою. Це аналогічно ідеї помилки при виконанні обчислень розміру вибірки в класичних умовах.ϵ
  2. α : рівень для побудови довірчих інтервалів.
  3. p : кількість оцінок, які ви оцінюєте.

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

mESS22/pπ(pΓ(p/2))2/pχ1α,p2ϵ2,

де - гамма-функція. Цю нижню межу можна обчислити, використовуючи в пакеті m mccse .Γ()minESS

Отже, припустимо, у вас є параметрів в задній частині, і ви хочете, щоб впевненості у вашій оцінці, і ви хочете, щоб помилка в Монте-Карло була 5% ( ) задньої помилки, вам знадобитьсяp=2095%ϵ=.05

> minESS(p = 20, alpha = .05, eps = .05)
[1] 8716

Це справедливо для будь-якої проблеми (за умов регулярності). Спосіб адаптується від проблеми до проблеми полягає в тому, що повільно перемішуючи ланцюги Маркова потрібно довше, щоб досягти цієї нижньої межі, оскільки mESS буде меншим. Отже, тепер ви можете перевірити кілька разів, використовуючи, multiESSчи досяг вашої ланцюг Марків цієї межі; якщо не піти і взяти більше зразків.


(+1) Відмінна відповідь. Чи знаєте ви, чи функція multiESSбула закодована для інших мов, наприклад, MATLAB? (чи важко буде повторно
реалізувати

1
Це повинно бути просто, просто граючи з матрицями. Головне - це оцінка яка була закодована в C ++, я думаю. Тож це може бути передано (я не знаю багато Matlab). Σ
Greenparker

1
Дякуємо @Greenparker. Насправді це було реально легко реалізувати в Matlab (я, мабуть, опублікую його на своєму GitHub, як тільки я проведу кілька перевірок). У мене є питання щодо оцінки , але я задаю його в окремому дописі. Σ
lacerbi

1
@lacerbi Я радий, що ти зміг зашифрувати це в Matlab. Якщо можливо, відповідайте на цей коментар, коли він працює, щоб я міг ним скористатися. Спасибі
Greenparker

1
Моя реалізація multiESS MATLAB доступна тут . Це робоча версія, хоча знадобиться ще тестування (я не знайомий з R, інакше я порівняв би його з реалізацією R).
lacerbi

2

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

Я б запропонував уникати будь-якого загального правила і використовувати пару інструментів діагностики конвергенції для виявлення відповідного вигорання та зменшення кількості ітерацій у кожному конкретному прикладі. Дивіться також http://www.johnmyleswhite.com/notebook/2010/08/29/mcmc-diagnostics-in-r-with-the-coda-package/, http://users.stat.umn.edu/~geyer/mcmc/diag.html.

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