R中的粒子过滤器–简单代码示例


9

我正在寻找一个如何在R中运行粒子过滤器的简单代码示例。pomp程序包似乎支持状态空间数学位,但是对于像我这样的简单OO开发人员,这些示例很难以编程方式进行遵循如何将观察到的数据加载到pomp对象中。

可以说我有一个带有1列嘈杂数据的csv文件作为输入,并且我希望通过“粒子过滤器”运行它,以便希望将其清理为输出,并将其输出为另一个csv文件。

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

这些示例的主要困难是将csv数据加载到pomp对象中。

现在,一个非常简单的状态空间模型应该已经足够了。

对R好奇有什么想法吗?


这对于任何从事成对交易或一般算法交易的人都是有用的,在这些交易中,经济关系充满了噪音。

恕我直言,您最好自己对过滤器进行编码...
G博士2012年

太棒了!样本/提示/指示器,供所有人查看?替代解决方案总比没有解决方案好。
user1180428'2

@ user1180428:我已经编辑了答案,现在可以为您提供一个可能的选择。
韦恩

Answers:


1

编辑:似乎大多数粒子过滤器软件包现在都消失了。但是,我一直在玩LaplacesDemon(贝叶斯MCMC软件包),它确实具有实现PMC(颗粒过滤器的一种)的PMC(蒙特蒙特卡洛人口)功能。也许对于快速粒子过滤器来说,机器太多了,但是值得一学的软件包。

您可以在CRAN上找到软件包和教程。

原文:说实话,在最简单的情况下,pomp很难使用。对于您可能想做的任何事情来说,它都非常灵活,但这就像使用太空飞船去杂货店一样。

您是否尝试过查看卡尔曼滤波器(如果您的数据可能满足卡尔曼滤波器的假设),包括基本函数tsSmoothStructTS(仅单变量)以及包dlm?我还将看一看loess其他平滑器。

希望我是错的,有人希望在这里快速介绍一下,“这是处理简单的单变量数据的方法,例如您具有一些适度的假设。” 我希望自己可以使用该软件包。


1
到那里砍死了。不幸的是,简单的移动平均似乎比卡尔曼滤波器在这更好钉可用的信号,以及许多其他的例子-卡尔曼:链接,SMA:链接数据是固定的,是迄今为止作为迪基富勒P <0.01。也许我做错了。一个在此数据上运行粒子过滤器的脚本,以及其他成对交易的候选者将很棒(我认为)。
user1180428'2
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.