У меня есть модель, которая структурирована, как на этой диаграмме:

У меня есть население нескольких человек (с индексом 1... 5 на этой картинке). Параметры популяции (A и B, но их может быть больше) определить распределения для каждой отдельной скрытой переменной L[i]. Скрытая переменная L[i] определяет вероятностное наблюдение X[i]. Эта модель является "редкой" в том смысле, что большинство узлов не имеют ребер, напрямую связанных с ними.
Я пытаюсь использовать PyMC для вывода параметров населения, а также каждой отдельной скрытой переменной. (Связанный с этим вопрос, который описывает мой конкретный сценарий более подробно, здесь.) Мой вопрос: должен ли я использовать Adaptive Metropolis вместо другого метода, и если да, есть ли "трюк" для правильной группировки стохастических переменных?
Если я правильно подхожу к выборке Adaptive Metropolis (и я не могу...), этот алгоритм предлагает новые значения для неизвестных (A, B и всех L[i]), учитывая, как эти переменные коррелированы в заднем распределении, построенном в прогоне до сих пор. Если A и B отрицательно коррелированы, то предложение, которое увеличивает A, будет уменьшаться B и наоборот, чтобы увеличить вероятность того, что предложение будет принято.
Дело в том, что в этой модели каждый L[i] является независимой ничьей из основного распределения популяции, определяемого A и B. Поэтому, пока они будут замечены в корреляции в заднем, эти корреляции действительно связаны только с A и B, и поэтому они каким-то образом "смешиваются". Поэтому, когда я вызываю функцию,
M.use_step_method(pymc.AdaptiveMetropolis, stochastics)
должны ли все L[i] быть вместе в списке стохастик? Или мне нужно многократно называть use_step_method, каждый раз с stochastics=[A, B, L[i]] только для одного из L[i]? Моя мысль заключалась в том, что вызов функции несколько раз для разных групп стохастик структурировал бы проблему и упростил бы PyMC, сказав ей сосредоточиться только на корреляциях, которые имеют значение. Правильно ли это?