Фильтр частиц в R - пример тривиального кода

9

Я ищу простой пример кода для того, как запустить Particle Filter в R. Пакет pomp, кажется, поддерживает математический бит пространства состояний, но примеры являются немного сложными, чтобы следовать программно для простого разработчика OO, такого как я, особенно как загрузить наблюдаемые данные в объект помпы.

Допустим, у меня есть CSV-файл с 1 столбцом зашумленных данных в качестве входных данных, и я хотел бы запустить его через фильтр частиц, чтобы, надеюсь, очистить его с выходными данными, являющимися оценками, в другой CSV-файл.

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

Основная трудность с примерами заключается в загрузке данных CSV в объект помпы.

Очень простая модель пространства состояний должна быть достаточно хорошей на данный момент.

Есть идеи для R-любопытных?

user1180428
источник
Это может быть полезно для любого, кто занимается парной торговлей или алгоритмической торговлей в целом, где это экономические отношения, окруженные шумом.
ИМХО, вам лучше самим кодировать фильтр ...
Dr G
Потрясающие! Образцы / советы / указатели для всех, кто просматривает это? Альтернативное решение лучше, чем отсутствие решения.
user1180428
@ user1180428: я отредактировал свой ответ, который теперь может предоставить вам альтернативу.
Уэйн

Ответы:

1

РЕДАКТИРОВАТЬ: Кажется, что большинство пакетов фильтров частиц уже нет. Тем не менее, я играл с LaplacesDemon (байесовский пакет MCMC), и у него есть функция PMC (Population Monte Carlo), которая реализует PMC, который является типом фильтра частиц. Может быть, слишком много оборудования для быстрой фильтрации частиц, но пакет стоит изучить.

Вы можете найти пакет и учебные пособия на CRAN .

ОРИГИНАЛ: Честно говоря, в простейшем случае pompего трудно использовать. Он очень гибкий для всего, что вы можете захотеть сделать, но это все равно, что использовать космический корабль, чтобы пойти в продуктовый магазин.

Вы пробовали смотреть на фильтры Калмана (если ваши данные могут удовлетворять предположениям фильтра Калмана), включая базовые функции tsSmoothи StructTS(только одномерные), и пакет dlm? Я также взглянул бы loessи на других сглаживателей.

Я надеюсь , что я ошибаюсь , и кто - то хмель здесь с быстрым, «Вот как это сделать для простых одномерных данных , таких , как у вас с некоторыми скромными предположениями.» Я хотел бы иметь возможность использовать пакет самостоятельно.

Wayne
источник
1
Там был взломан. К сожалению, простое скользящее среднее, кажется, дает полезный сигнал лучше, чем фильтр Калмана в этом, и во многих других примерах - Kalman: ссылка , SMA: ссылка Данные являются постоянными, поскольку Дики Фуллер р <0,01. Возможно я делаю это неправильно. Скрипт для запуска фильтра частиц по этим данным и других кандидатов на обмен парами был бы великолепен (я думаю).
user1180428