Оценка параметров LogLikelihood для линейного фильтра Калмана Гаусса

13

Я написал некоторый код, который может выполнять фильтрацию Калмана (используя несколько различных фильтров типа Калмана [Information Filter et al.]) Для линейного анализа пространства состояний Гаусса для n-мерного вектора состояния. Фильтры работают отлично, и я получаю хороший вывод. Тем не менее, оценка параметров с помощью логарифмической вероятности сбивает меня с толку. Я не статистик, а физик, поэтому, пожалуйста, будьте добры.

Рассмотрим линейную модель пространства состояний Гаусса.

YTзнак равноZTαT+εT,
αt+1=Ttαt+Rtηt,

где - наш вектор наблюдения, наш вектор состояния на временном шаге t α t tytαtt . Величины, выделенные жирным шрифтом, представляют собой матрицы преобразования модели пространства состояний, которые устанавливаются в соответствии с характеристиками рассматриваемой системы. У нас также есть

η tN I D ( 0 , Q t ) , α 1N I D ( a 1 , P 1 ) .

ϵtNID(0,Ht),
ηtNID(0,Qt),
α1NID(a1,P1).

где t=1,,n . Теперь я вывел и реализовал рекурсию для фильтра Калмана для этой общей модели пространства состояний, угадав начальные параметры и матрицы отклонений H1 и Q1 я могу создавать графики нравиться

Фильтр Калмана

где точки - это уровни воды в реке Нил за январь в течение 100 лет, линия - это оценочное состояние Каламна, а пунктирные линии - уровни достоверности 90%.

Теперь для этого одномерного набора данных матрицы и являются просто скалярами и соответственно. Итак, теперь я хочу получить правильные параметры для этих скаляров, используя выходные данные из фильтра Калмана и функцию логической вероятностиQ t σ ϵ σ ηHtQtσϵση

logL(Yn)=np2log(2π)12t=1n(log|Ft|+vtTFt1vt)

Где - ошибка состояния, а - дисперсия ошибки состояния. Теперь вот где я запутался. Из фильтра Калмана у меня есть вся информация, необходимая для работы с , но, похоже, это не приближает меня к возможности рассчитать максимальную вероятность и . Мой вопрос заключается в том, как я могу рассчитать максимальную вероятность и используя метод логарифмического правдоподобия и приведенное выше уравнение? Алгоритмический отказ был бы для меня холодным пивом прямо сейчас ...F t L σ ϵ σ η σ ϵ σ ηvtFtLσϵσησϵση

Спасибо за ваше время.


Заметка. Для одномерного случая и . Это одномерная модель локального уровня.Ht=σϵ2Ht=ση2

Moonknight
источник

Ответы:

11

σϵ2ση2νtFtlogL(Yn)

Другими словами, вы можете рассматривать фильтр Калмана как способ вычисления неявной функции и . Единственное, что вам нужно сделать, это упаковать это вычисление в функцию или подпрограмму и обработать эту функцию в подпрограмме оптимизации - как в R. Эта функция должна принимать в качестве входных данных и и return σϵ2ση2optimσϵ2ση2logL(Yn) .

Некоторые пакеты в R (например dlm) делают это для вас (см., Например, функцию dlmMLE).

Ф. Туселл
источник
σϵση
σϵσηlogL(Yn)νtFtlogL(Yn)σϵση
Ф. Туселл
1
У меня есть подробный код (в R), показывающий, как сделать это точно для данных Нила. Я использую это как иллюстрацию для своих учеников. К сожалению, это на испанском языке, но я надеюсь, что код довольно ясен (и я могу перевести комментарии, если нет). Вы можете получить этот пример из et.bs.ehu.es/~etptupaf/N4.html .
Ф. Туселл
Это очень полезно. Большое спасибо за ваше время. Ваш комментарий очень помог! Иногда трудно «увидеть дрова за деревьями», и все, что нужно, - это просто объяснить ... Еще раз спасибо.
MoonKnight
Я также хотел бы спросить, могу ли я взглянуть на страницу, где вы проходите рекурсию сглаживания состояний. Ваше сглаживание выглядит лучше моего, и я не знаю почему !? Я попытался найти его на вашем веб-сайте, но не могу найти нужную страницу ...
MoonKnight