Estimativa do parâmetro de probabilidade de log para o filtro linear gaussiano de Kalman

13

Eu escrevi algum código que pode fazer a filtragem Kalman (usando vários filtros do tipo Kalman [Information Filter et al.]) Para a Análise Linear Gaussiana de Espaço de Estado para um vetor de estado n-dimensional. Os filtros funcionam muito bem e estou obtendo uma saída agradável. No entanto, a estimativa de parâmetros via estimativa de probabilidade de logon está me confundindo. Eu não sou um estatístico, mas um físico, então, por favor, seja gentil.

Vamos considerar o modelo linear do espaço de estados gaussiano

yt=Ztαt+ϵt,
αt+1=Ttαt+Rtηt,

onde yt é nosso vetor de observação, αt nosso vetor de estado no passo tempo t. As quantidades em negrito são as matrizes de transformação do modelo de espaço de estados que são definidas de acordo com as características do sistema em consideração. Nos tambem temos

η t ~ N I D ( 0 , Q t

ϵtNID(0,Ht),
α 1 ~ N I D ( um 1 , P 1 ) .
ηtNID(0,Qt),
α1NID(a1,P1).

onde . Agora, deduzi e implementei a recursão do filtro Kalman para esse modelo genérico de espaço de estados, adivinhando os parâmetros iniciais e as matrizes de variação H 1 e Q 1 que eu posso produzir gráficos comot=1,,nH1Q1

Kalman Filter

onde os pontos são os níveis de água do rio Nilo há mais de 100 anos em janeiro, a linha é o estado Estimado de Kalamn e as linhas tracejadas são os níveis de confiança de 90%.

Agora, para esses dados 1D, defina as matrizes e Q t são apenas escalares σ £ e σHtQtσϵ respectivamente. Então agora eu quero obter os parâmetros corretos para esses escalares usando a saída do filtro Kalman e a função loglikelihoodση

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

Onde é o erro de estado e F t é a variação do erro de estado. Agora, aqui é onde estou confuso. No filtro Kalman, tenho todas as informações necessárias para calcular L , mas isso parece não me aproximar de ser capaz de calcular a probabilidade máxima de σ ϵ e σ η . Minha pergunta é como posso calcular a probabilidade máxima de σ ϵ e σ η usando a abordagem de probabilidade de log e a equação acima? Uma quebra algorítmica seria como uma cerveja gelada para mim agora ...vtFtLσϵσησϵση

Obrigado pelo seu tempo.


Nota. Para o caso 1D, e H t = σ 2 η . Este é o modelo de nível local univariado.Ht=σϵ2Ht=ση2

Cavaleiro da Lua
fonte

Respostas:

11

Quando você executa o filtro Kalman como você, com os valores fornecidos de e σ 2 η , você obtém uma sequência de inovações σϵ2ση2 e suas covariâncias F t , portanto, você pode calcular o valor deνtFtlogL(Yn) usando a fórmula que você dá.

σϵ2ση2optimσϵ2ση2logL(Yn)

Alguns pacotes no R (por exemplo dlm) fazem isso por você (veja, por exemplo, a função dlmMLE).

F. Tusell
fonte
σϵση
σϵσηlogL(Yn)νtFtlogL(Yn)σϵση
F. Tusell
1
Por acaso, tenho um código detalhado (em R) mostrando como fazer isso precisamente para os dados do Nilo. Eu o uso como ilustração para meus alunos. Infelizmente, está em espanhol, mas espero que o código seja bem claro (e eu posso traduzir os comentários, se não). Você pode pegar este exemplo em et.bs.ehu.es/~etptupaf/N4.html .
F. Tusell
Isso é extremamente útil. Muito obrigado pelo seu tempo. Seu comentário ajudou muito! Às vezes é difícil "ver a madeira para as árvores" e ter algo simples explicado explicitamente é tudo o que é necessário ... Mais uma vez, obrigado.
MoonKnight 21/02
Também gostaria de perguntar se eu poderia dar uma olhada na página em que você passa pela recursão de suavização de estado. Sua suavização parece melhor que a minha e não sei por que !? Tentei encontrá-lo a partir do seu web-site, mas não consigo encontrar a página desejada ...
Cavaleiro da Lua