#time-series #probability #bayesian #pymc3 #mcmc
#временные ряды #вероятность #байесовский #pymc3 #mcmc
Вопрос:
В настоящее время я пытаюсь воспроизвести результаты анализа baysian switchpoint, описанного в книге BMH. (Ссылка на Github) Однако я использую другой набор данных. Я, наконец, получил некоторые результаты, но, к сожалению, я не могу их правильно интерпретировать.
Рассмотрим, например, следующие временные ряды:
Я применяю следующий код и моделирую потенциальную точку изменения, используя дискретное равномерное распределение и два распределения Пуассона для «до» и «после»:
lambda_before = pm.Exponential("lambda1", alpha)
lambda_after = pm.Exponential("lambda2", alpha)
tau = pm.DiscreteUniform("tau", lower=0, upper=len(weekly))
idx = np.arange(0, len(weekly))
lambda_ = pm.math.switch(tau > idx, lambda_before, lambda_after)
observations = pm.Poisson("obs", lambda_, observed=weekly.values)
Я выполняю выборку MCMC, и результирующая диаграмма трассировки выглядит следующим образом:
Я понимаю, что я нашел потенциальную точку переключения, которая имеет смысл для меня. Однако, похоже, существуют два разных распределения для лямбда-1 и лямбда-2, которые сильно перекрываются. Это как-то связано с тем, что MCMC сообщает мне «Последовательную выборку (2 цепочки в 1 задании)» во время выборки?
Я также видел несколько случаев, когда два распределения (красная и синяя линии) вообще не перекрываются. В этом примере были определены две потенциальные точки переключения. Теперь кажется, что каждая «цепочка» теперь выполняет выборку данных для другой точки переключения. Как это можно интерпретировать?
Еще одна вещь, которая, на мой взгляд, очень сбивает с толку, заключается в том, что PyMC, похоже, смешивает значения обеих «цепочек» в один результирующий массив. Это затрудняет объединение распределений с различными значениями tau. Есть ли хитрость для этого?
Заранее спасибо за помощь.