Filtro de partículas em R - exemplo de código trivial


9

Estou procurando um exemplo de código simples de como executar um Filtro de Partículas em R. O pacote pomp parece oferecer suporte ao bit matemático do espaço de estado, mas os exemplos são um pouco complicados de seguir programaticamente para um desenvolvedor OO simples como eu, particularmente como carregar os dados observados em um objeto pompa.

Digamos que eu tenho um arquivo csv com 1 coluna de dados barulhentos como entrada e gostaria de executá-lo através de um Filtro de Partículas para, esperançosamente, limpá-lo, com a saída sendo as estimativas para outro arquivo csv.

 y <- read.csv("C:/Dev/VeryCleverStatArb/inputData.csv", header=FALSE)
 #CSV to Pomp object ???
 #Run Particle Filter
 #Write estimates to csv.

A principal dificuldade com os exemplos é carregar dados csv em um objeto pompa.

Um modelo de espaço de estado muito simples deve ser bom o suficiente por enquanto.

Alguma idéia para o R-curioso?


Isso pode ser útil para quem procura negociação de pares ou negociação algorítmica em geral, onde essa é uma relação econômica cercada por ruído.

IMHO você é melhor fora de codificação do filtro de si mesmo ...
Dr G

Impressionante! Amostras / dicas / indicadores para todos que visualizam isso? Uma solução alternativa é melhor que nenhuma solução.
user1180428

@ user1180428: editei minha resposta, que agora pode fornecer uma alternativa possível para você.
Wayne

Respostas:


1

EDIT: Parece que a maioria dos pacotes de filtros de partículas se foram agora. No entanto, eu tenho brincado com o LaplacesDemon (um pacote Bayesian MCMC) e ele possui a função PMC (Population Monte Carlo) que implementa o PMC, que é um tipo de filtro de partículas. Talvez exista maquinaria demais para um tipo de filtro rápido de partículas, mas vale a pena aprender um pacote.

Você pode encontrar pacotes e tutoriais no CRAN .

ORIGINAL: Para ser honesto, no caso mais simples, pompé difícil de usar. É muito flexível para qualquer coisa que você queira fazer, mas é como usar uma nave espacial para ir ao supermercado.

Você já tentou examinar os filtros Kalman (se seus dados podem atender às suposições do filtro Kalman), incluindo funções básicas tsSmoothe StructTS(univariadas apenas) e pacote dlm? Eu também daria uma olhada loesse outros smoothers.

Eu espero que eu esteja errado e alguém pula aqui com um rápido: "Aqui está como fazê-lo para os dados de univariados simples, como você tem com algumas hipóteses modestos." Eu adoraria poder usar o pacote pessoalmente.


11
Estive lá hackeado isso. Infelizmente, uma média móvel simples parece fixar um sinal utilizável melhor do que o filtro Kalman neste e em muitos outros exemplos - Kalman: link , SMA: link Os dados são estacionários, até um Dickey Fuller p <0,01. Talvez eu esteja fazendo errado. Um script para executar um filtro de partículas nesses dados e outros pares de candidatos à negociação seriam incríveis (eu acho).
precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.