Я пытаюсь применить MCMC к проблеме, но мои априоры (в моем случае это )) ограничены областью? Могу ли я использовать обычный MCMC и игнорировать выборки, которые выходят за пределы запрещенной зоны (которая в моем случае равна [0,1] ^ 2), то есть повторно использовать функцию перехода, когда новый переход выпадает из ограниченной (ограниченной) области?
sampling
mcmc
monte-carlo
random-walk
Cupitor
источник
источник
Ответы:
У вас есть несколько хороших, более или менее простых вариантов. Ваша предварительная форма помогает сделать их проще.
Вариант 1: Независимый пробоотборник. Вы можете просто установить распределение вашего предложения равным равномерному распределению по квадрату единицы, что гарантирует, что выборки не будут выходить за пределы запрещенной зоны, как вы ее называете. Потенциальный недостаток: если апостериор сконцентрирован в очень маленькой области квадрата единицы, у вас может быть очень низкий коэффициент принятия. ОТО, трудно генерировать случайные числа быстрее, чем из распределения U (0,1). Потенциальный потенциал: меньше работы для вас.
Вариант 2. Преобразование параметров в нечто, что не ограничено, внесение предложений для преобразованных параметров, а затем преобразование параметров обратно для использования в функциях вероятности. Обратите внимание, что в этом случае априор будет на преобразованных параметрах, потому что это то, для чего вы делаете предложения, поэтому вам придется возиться с якобианом преобразования, чтобы получить новый априор. Конечно, для анализа вы преобразуете случайные числа, сгенерированные MCMC, в исходные параметры. Потенциальный недостаток: больше начальной работы для вас. Потенциальный потенциал роста: лучшая скорость принятия ваших предложений.
Вариант 3. Построить распределение предложений, отличное от выборочного образца независимости, которое находится на единичном квадрате. Это позволяет вам сохранять форму заранее, но за счет большей сложности при расчете вероятностей предложения. Примером этого, позволяя быть текущим значением одного из ваших параметров, будет бета-распределение с параметрами ( n x , n ( 1 - x ) ) . Чем больше пx (nx,n(1−x)) n , тем более сконцентрировано ваше предложение вокруг текущей стоимости. Потенциальный недостаток: больше начальной работы для вас. Pptential вверх: лучше скорость принятия ваших предложений - но если вы делаете n слишком большой, и двигайтесь близко к углу, вы можете сделать много маленьких движений в углу, прежде чем выйти.
Вариант 4: Просто отклоните любые предложения, которые выходят за пределы квадрата единицы (нерешительное предложение Сианя). Обратите внимание, что это не то же самое, что просто создание другого предложения; в этом случае вы отклоняете предложение, что означает, что ваше следующее значение для параметра совпадает с текущим значением для параметра. Это работает, потому что это то, что произошло бы, если бы у вас была нулевая априорная вероятность для некоторой области пространства параметров и сгенерировано случайное число, которое попало в эту область. Потенциальный недостаток: если вы приблизитесь к повороту, у вас может быть низкая вероятность принятия и вы можете застрять на некоторое время. Потенциальный потенциал: меньше работы для вас.
Вариант 5: Создайте расширенную задачу на плоскости, которая на единичном квадрате совпадает с фактической проблемой, с которой вы столкнулись, сделайте все правильно, а затем, при последующей обработке результатов выборки MCMC, выбросьте все выборки за пределы единицы площади. Потенциальный потенциал: если создать такую расширенную проблему очень просто, она может оказаться для вас менее трудной. Потенциальный недостаток: если цепь Маркова какое-то время отклоняется где-то за пределами ячейки, у вас могут возникнуть ужасные вероятности принятия, поскольку вы выбросите большинство своих образцов.
Без сомнения, есть другие варианты, мне было бы интересно посмотреть, что предлагают другие люди!
Разница между 2 и 3 в некоторой степени концептуальна, хотя и имеет реальные последствия для того, что вы на самом деле делаете. Я бы, вероятно, пошел с 3, так как я просто позволил бы R сказать мне, каковы вероятности предложения (если я программирую на R) и количество дополнительных усилий, кроме некоторой настройки параметра распределения предложения , выглядит маленький для меня. Если бы я использовал JAGS или BUGS, конечно, это было бы совсем другое дело, поскольку эти инструменты обрабатывали свои собственные предложения.n
источник