root3のメモ帳

データサイエンスな知識を残していくブログ。

pythonの状態空間モデルパッケージ「pykalman」を使ってみる

経緯

「状態空間モデルで分析」といえば現状RのdlmやKFASの領分なのですが、現在pythonの方が熱いし、何より、

モデリング以外をpythonで書いたのにモデリングだけRで書く

って気持ち悪くない?という事で、聞き込みしたり調べたりしたらどうやら「pykalman」なるパッケージが存在するという話を聞き、試して見たという感じ*1

「状態空間モデルとはなんぞや?」みたいな話は気が向いたら別の日に書きます。状態空間モデル知らない人向けにこの記事書くの敷居高くない?とか言わない

また、今回は本当に導入だけです。pykalmanの使い方に関する、こみ入った話もいつかすると思います。

使い方

マニュアルはここです。 今更気づいたんですけど、最終更新が2012年でversionが1.0未満って考えるとちょっと使いづらいかもしれません。

インストー

マニュアルには色々書いてありますが、他の方法としてはpipでいけます。

$ pip install pykalman

動作確認

ひとまずgithubにあがっているexamplesのどれかを実行して見たら良いのではないでしょうか。 github.com

「examples/standard/plot_filter.py」を実行すると、以下のような図が出力されました。

f:id:skroot3:20170607210934p:plain

この例は、指定した方程式に従う2次元の時系列をサンプリングして、それにフィルタリングとスムージングをかけているみたいですね。

とりあえずインストールと動作確認ができたところで、今回はおしまい。

*1:結局別の部分がどうしてもpythonで書けなくてここの部分に関する努力は意味がなくなった