Оценка параметров динамической линейной модели


11

Я хочу реализовать (в R) следующую очень простую динамическую линейную модель, для которой у меня есть 2 неизвестных изменяющихся во времени параметра (дисперсия ошибки наблюдения и дисперсия ошибки состояния ). ε 2 тϵt1ϵt2

Yt=θt+ϵt1θt+1=θt+ϵt2

Я хочу оценить эти параметры в каждый момент времени, без смещения вперед . Из того, что я понимаю, я могу использовать либо MCMC (в скользящем окне, чтобы избежать смещения вперед), либо фильтр частиц (или Sequential Monte Carlo - SMC).

Какой метод вы бы использовали , и
каковы плюсы и минусы этих двух методов?

Бонусный вопрос: в этих методах как выбрать скорость изменения параметров? Я предполагаю, что мы должны ввести информацию здесь, потому что есть договоренность между использованием большого количества данных для оценки параметров и использованием меньшего количества данных для более быстрой реакции на изменение параметра?


Мой вопрос немного похож на stats.stackexchange.com/questions/2149/… . Я специально открыл вопрос, так как ситуация немного иная, и мне хотелось бы разных мнений. (Ответ от gd047 был в основном сфокусирован на фильтре Калмана без
запаха

Странно, что моя награда не помогает ... Мой вопрос плохо сформулирован .... Ни у кого нет ответа? Или вопрос по моему вопросу?
RockScience

То, как это изложено, похоже на вырожденную проблему - ошибки могут быть в равной степени связаны с шумом наблюдения или технологическим шумом. Есть ли еще ограничения? Является ли государство одномерным?
Ians

@lanS. Все объекты действительно имеют здесь только одно измерение. Можете ли вы развить немного больше о том, что ошибки могут быть либо наблюдением, либо шумом. Это именно то, чего я хотел бы достичь. Я хотел бы получить скользящую оценку отношения сигнал / шум, оценивая sd для 2 изменяющихся во времени шумов ....
RockScience

Может быть, я должен начать с исправления sd шума процесса и посмотреть, как реагирует sd шума наблюдения?
RockScience

Ответы:


4

Если у вас есть параметры, изменяющиеся во времени, и вы хотите делать что-то последовательно (фильтрация), тогда SMC имеет смысл. MCMC лучше, когда вы хотите обработать все данные или у вас есть неизвестные статические параметры, которые вы хотите оценить. Фильтры частиц имеют проблемы со статическими параметрами (вырождение).


1
Спасибо за ваш ответ. Где я могу узнать, как сделать SMC и какой пакет R вы бы порекомендовали?
RockScience

4

Посмотрите на пакет DLM и его виньетка . Я думаю, вы можете найти то, что вы ищете из виньетки. Авторы пакета также написали книгу « Динамические линейные модели с R» .


@ Матти Пастелл: у меня есть эта книга. Это действительно очень хорошо. Мой вопрос касается разницы между фильтром частиц (который, как я понимаю, является последовательной версией MCMC), и MCMC на скользящем окне (во втором мы запускаем процесс оптимизации на скользящем окне). Какой метод должен быть предпочтительным и почему?
RockScience

Кроме того, мне не очень легко построить эту изменяющуюся во времени модель с помощью dlm. Честно говоря, пакет очень прост в использовании для не изменяющихся во времени моделей, но он становится более сложным для всего остального. Редактировать: под более хитрым я имею в виду, что нет функции для решения проблемы. Вам нужно кодировать сам скрипт.
RockScience

1
Хорошо, у меня тоже есть книга, но я еще не успел ее прочитать. Извините, что это не поможет с вашей проблемой.
Матти Пастелл

1
В любом случае, спасибо, это хорошая книга, заслуживающая упоминания здесь
RockScience

3

Я прочитал Динамические линейные модели с R (хорошая книга), последняя глава посвящена последовательной фильтрации Монте-Карло / частиц. Это также включает некоторый Rкод; однако в заключительных замечаниях главы 5 они явно предупреждают, что SMC становится все более ненадежным с течением дополнительного времени, поскольку ошибки накапливаются. Таким образом, они рекомендуют «обновлять» фильтр частиц с последующим распределением от полного образца MCMC через каждые( 1000 × ( 50 - 1 ) × 10 ) ÷ 60 ÷ 24Tпериоды. Возможно, я неверно истолковал их предупреждения, но это может означать, что вам лучше с MCMC. Тем не менее, я думаю, что у этого метода есть существенные ограничения компьютерной обработки. Например, предположим, что у вас было 1000 различных одномерных временных рядов с 50 наблюдениями в каждом, и вам потребовалось 10 минут, чтобы запустить полный пробоотборник Гиббса MCMC. Тогда вам потребуется 340 дней ( ) непрерывной обработки, чтобы оценить параметры без прогнозного смещения. Может быть, моя оценка времени, необходимого для запуска MCMC, совершенно неверна, но я думаю, что это консервативная, но разумная оценка.(1000×(501)×10)÷60÷24

Прошло несколько лет с тех пор, как вы задали вопрос, поэтому мне было бы любопытно, если бы у вас сейчас был ответ.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.