Filtro de partículas en R - ejemplo de código trivial

9

Estoy buscando un ejemplo de código simple de cómo ejecutar un filtro de partículas en R. El paquete pomp parece admitir el bit matemático del espacio de estado, pero los ejemplos son un poco difíciles de seguir programáticamente para un desarrollador OO simple como yo, particularmente cómo cargar los datos observados en un objeto pomp.

Digamos que tengo un archivo csv con 1 columna de datos ruidosos como entrada, y me gustaría ejecutarlo a través de un filtro de partículas para poder limpiarlo, con la salida como las estimaciones, a otro archivo csv.

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

La principal dificultad con los ejemplos es cargar datos csv en un objeto pomp.

Un modelo de espacio de estado muy simple debería ser lo suficientemente bueno por ahora.

¿Alguna idea para los R-curiosos?

usuario1180428
fuente
Esto podría ser útil para cualquier persona que busque el comercio de pares o el comercio algorítmico en general, donde se trata de una relación económica rodeada de ruido.
En mi humilde opinión, es mejor codificar el filtro usted mismo ...
Dr. G
¡Increíble! ¿Muestras / consejos / punteros para todos los que ven esto? Una solución alternativa es mejor que ninguna.
user1180428
@ user1180428: he editado mi respuesta, que ahora puede proporcionarle una posible alternativa.
Wayne

Respuestas:

1

EDITAR: Parece que la mayoría de los paquetes de filtro de partículas se han ido ahora. Sin embargo, he estado jugando con LaplacesDemon (un paquete Bayesian MCMC) y tiene la función PMC (Population Monte Carlo) que implementa PMC, que es un tipo de filtro de partículas. Tal vez demasiada maquinaria para un filtro rápido de partículas, pero vale la pena aprender un paquete.

Puede encontrar paquetes y tutoriales en CRAN .

ORIGINAL: Para ser honesto, en el caso más simple, pompes difícil de usar. Es muy flexible para cualquier cosa que desee hacer, pero es como usar una nave espacial para ir al supermercado.

¿Ha intentado mirar los filtros de Kalman (si sus datos pueden satisfacer los supuestos del filtro de Kalman), incluidas las funciones básicas tsSmoothy StructTS(solo univariadas) y el paquete dlm? También echaría un vistazo a loessy otros suavizadores.

Yo espero que estoy equivocado y alguien se sube a aquí con un rápido "Aquí es cómo hacerlo para datos univariados simples como que tiene con algunos supuestos modestos." Me encantaría poder usar el paquete yo mismo.

Wayne
fuente
1
He estado allí pirateado eso. Desafortunadamente, un promedio móvil simple parece clavar una señal utilizable mejor que el filtro de Kalman en esto, y en muchos otros ejemplos: Kalman: enlace , SMA: enlace Los datos son estacionarios, hasta un Dickey Fuller p <0.01. Quizás lo estoy haciendo mal. Una secuencia de comandos para ejecutar un filtro de partículas en estos datos y otros pares de candidatos comerciales sería increíble (creo).
user1180428