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-好奇心のためのアイデアはありますか?


これは、ノイズに囲まれた経済関係であるペア取引、またはアルゴリズム取引全般を検討しているすべての人に役立ちます。

私見フィルターを自分でコーディングする方がよい...
Dr G

驚くばかり!これを見ているすべての人のためのサンプル/ヒント/ポインター?代替ソリューションは、ソリューションがないよりも優れています。
user1180428

@ user1180428:私は私の答えを編集しました。これにより、可能な代替案が提供される可能性があります。
ウェイン

回答:


1

編集:ほとんどのパーティクルフィルターパッケージは現在なくなっているようです。しかし、私はLaplacesDemon(ベイジアンMCMCパッケージ)を使用していて、粒子フィルターの一種であるPMCを実装するPMC(Population Monte Carlo)関数を持っています。たぶん、クイックパーティクルフィルターのようなものには機械が多すぎるかもしれませんが、学ぶ価値のあるパッケージです。

CRANでパッケージとチュートリアルを見つけることができます。

オリジナル:正直に言うと、最も単純なケースでpompは、使用するのは難しいです。それはあなたがしたいかもしれないもののために非常に柔軟性がありますが、それは食料品店に行くのに宇宙船を使うようなものです。

あなたは、基本機能を含む、(あなたのデータは、カルマン・フィルタの仮定を満たす可能性がある場合)、カルマン・フィルタを見てみましたtsSmoothStructTS(単変量のみ)、およびパッケージdlmloessその他のスムーザーも見てみたいと思います。

私は願って私が間違っていると、誰かが、迅速で、ここでのホップ「ここで、このようなあなたには、いくつかの控えめな仮定を持っているような単純な単変量のデータのためにそれを行う方法です。」自分でパッケージを使用できるようになりたいです。


1
そこにハッキングされた。残念ながら、移動平均シンプルが良く、この中にカルマン・フィルタよりも使用可能な信号を爪ようだ、および他の多くの例-カルマン:リンク、SMA:リンクデータが静止しているが、これまでのディッキーフラーP <0.01としてあります。多分私はそれを間違っています。このデータに対してパーティクルフィルターを実行するスクリプトと、他のペアの取引候補者は素晴らしいと思います(私はそう思います)。
user1180428
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.