Я хочу реализовать (в R) следующую очень простую динамическую линейную модель, для которой у меня есть 2 неизвестных изменяющихся во времени параметра (дисперсия ошибки наблюдения и дисперсия ошибки состояния ). ε 2 т
Я хочу оценить эти параметры в каждый момент времени, без смещения вперед . Из того, что я понимаю, я могу использовать либо MCMC (в скользящем окне, чтобы избежать смещения вперед), либо фильтр частиц (или Sequential Monte Carlo - SMC).
Какой метод вы бы использовали , и
каковы плюсы и минусы этих двух методов?
Бонусный вопрос: в этих методах как выбрать скорость изменения параметров? Я предполагаю, что мы должны ввести информацию здесь, потому что есть договоренность между использованием большого количества данных для оценки параметров и использованием меньшего количества данных для более быстрой реакции на изменение параметра?
источник
Ответы:
Если у вас есть параметры, изменяющиеся во времени, и вы хотите делать что-то последовательно (фильтрация), тогда SMC имеет смысл. MCMC лучше, когда вы хотите обработать все данные или у вас есть неизвестные статические параметры, которые вы хотите оценить. Фильтры частиц имеют проблемы со статическими параметрами (вырождение).
источник
Посмотрите на пакет DLM и его виньетка . Я думаю, вы можете найти то, что вы ищете из виньетки. Авторы пакета также написали книгу « Динамические линейные модели с R» .
источник
Я прочитал Динамические линейные модели с R (хорошая книга), последняя глава посвящена последовательной фильтрации Монте-Карло / частиц. Это также включает некоторыйT периоды. Возможно, я неверно истолковал их предупреждения, но это может означать, что вам лучше с MCMC. Тем не менее, я думаю, что у этого метода есть существенные ограничения компьютерной обработки. Например, предположим, что у вас было 1000 различных одномерных временных рядов с 50 наблюдениями в каждом, и вам потребовалось 10 минут, чтобы запустить полный пробоотборник Гиббса MCMC. Тогда вам потребуется 340 дней ( ) непрерывной обработки, чтобы оценить параметры без прогнозного смещения. Может быть, моя оценка времени, необходимого для запуска MCMC, совершенно неверна, но я думаю, что это консервативная, но разумная оценка.(1000×(50−1)×10)÷60÷24
R
код; однако в заключительных замечаниях главы 5 они явно предупреждают, что SMC становится все более ненадежным с течением дополнительного времени, поскольку ошибки накапливаются. Таким образом, они рекомендуют «обновлять» фильтр частиц с последующим распределением от полного образца MCMC через каждые( 1000 × ( 50 - 1 ) × 10 ) ÷ 60 ÷ 24Прошло несколько лет с тех пор, как вы задали вопрос, поэтому мне было бы любопытно, если бы у вас сейчас был ответ.
источник