FC2ブログ
06«1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.»08

たまひびとらの絵本の実

読書好きな姉妹と弟と父母の読んだ本

時系列解析: 自己回帰型モデル・状態空間モデル・異常検知 (Advanced Python) 

jikeiretukaisekiadvancedpython.jpg
時系列解析: 自己回帰型モデル・状態空間モデル・異常検知 (Advanced Python)
時系列解析: 自己回帰型モデル・状態空間モデル・異常検知 (Advanced Python)

状態空間モデルの章に進む。状態空間モデルのコンセプトそのものは難しくない。観測値の裏には見えていない「状態」があって、時系列に動く状態に基づいて観測値が出てくる、というもの。状態は時系列の状態の式(システムモデル)。観測値は状態を含む観測値の式(観測モデル)。正確な定義はわかんないけど、時系列なのは見えていない状態システムモデル、そこから見えてくるのが観測値、という理解。

状態を一期ずつ推定する時系列解析手法がカルマンフィルター。状態推定値を状態方程式で予測しつつ、実際の観測値で状態推定値を調整(カルマンゲインによる修正)してやる。こちらの方がカルマンフィルターの考え方をわかりやすく説明されている。カルマンフィルター行列式の導出はこのサイトがわかりやすかった。誤差二乗和(誤差ベクトルの転置×誤差ベクトル)を最小化するということは、そのCov行列の対角成分の和を最小化することと同じなので、Cov行列トレースの微分を行う。

カルマンフィルターの前提は、すべてのランダム要素が正規分布であること。正規分布の和は、正規分布の再生性により正規分布となるので、μと分散行列を求めていけば、確率分布が決まっていく。

さて python 実装はこちらの方が大変わかりやすかった。予測、カルマンゲイン、調整後予測を print しつつ動かすとなおわかりやすい。本書の状態空間の章では、モデルに季節調整が加わり、ARが加わり、とにかくどんどん複雑になる。P111のエラーは解決できなかった。

粒子フィルタはモンテカルロだね。解析的手法じゃない。観測値と比べながらより確率の高い粒子を多くサンプリングして一期ずつ進む。

隠れマルコフモデル(HMM = Hidden Markov Model)もコンセプトそのものは難しくない。隠れている状態と見える観測があるんだけど、状態の推移が連続的でなく離散的。ここをマルコフ過程とする(推移確率行列で離散的に決まっていく)。マルコフ過程の初期値は別途決めてやる。そのマルコフ過程で進む状態から、出力確率に基づいて出力されて見えるのが観測値。ここの数式はもう少し丁寧に説明してほしかった。

EMアルゴリズムは、パラメーターの推定で解析解を求めることが難しい場合に用いられる。HMMの対数尤度計算では log の中に和があり計算が進まない。そこで、Expectation step ではパラメータを固定したベースで負担率(潜在変数の事後分布という言い方はわかりにくいよね)を求め、Maximization step では計算した負担率での尤度を最大化するパラメータを求める。EとMを交互に繰り返して、収束を待つ。数式の展開はこのページが分かりやすそう(でも長いのですっとばし)。EMについては前に読んだこの本の第9章がわかりやすいと思う。

最終章の異常検知。外れ値、変化点、集団的異常を検知する。最初の Change Finderというライブラリを使うと、ARモデルを使って、変化のスコアを計算し、変化スコアが高くなったところを探す。次のBayesian Online Change Point Detector はまったく意味不明だった。出てくる変数とか理解不能。最後は深層学習のRecurrent Neural Network (RNN)の利用。RNNは時系列分析に適しているらしい。正直なところ最終章はついていけなかった。

================================================================

時系列分析:データ(観測値)の並び順の法則を調べるのが時系列分析。

定常 (stationary) と非定常 (non-stationary):定常データはランダムに見えても一定の確率法則に従っているので、統計分析が可能。非定常データは確率法則に従っていないので、統計分析が難。非定常データでも、各期の差をとった差分列は定常の可能性もある(差分が定常ならば、そのデータ列も一定の確率法則に従っていたということだ)。ADF検定でデータが定常か非定常かを調べられる。

モデル:時系列分析では、観測値が一定の確率法則に基づく構造に従っていることを仮定する。その確率過程の構造を時系列モデルと呼ぶ。しかしあくまで仮定モデルであり、真のデータのふるまいを示しているとは限らない。モデルに従った確率変数列が定常性を持つモデルもあるし、非定常となるモデルもある。以下代表的なモデル。

AR model, Auto Regressive model : k期前の自己との相関を持つモデル。|φ|<1ならば、AR(1)モデルに従う確率変数列は定常性を持つ。式展開をすれば自明で、φが絶対値1を超えれば確率変数列は発散する。ここでちょっとこんがらがってるんだけど、ARモデルは、定常データしか扱えない(つまりモデルに従った確率変数列が非定常になりえても、そのモデルで分析できるデータは定常だけ、ということらしい)。
Yt = c + φ*(Yt-1) + εt where εt~N(0, σ squared)
YtとYt, YtとYt-1, YtとYt-2といったCovを求めていくと、各次数ごとの相関係数の連立方程式が出来上がる。その連立方程式をユール・ウォーカー方程式といい、それを解くことで相関係数が求まる。相関係数を係数に持つp次方程式は特性方程式とよばれる。
ラグ次数はAIC最低値を持つ次数で決める。AICは尤度が高く、パラメタ数が小さいものをよいとする。

MA model, Moving Average model : なんでも移動平均と呼ぶのかわからないけど、現在と過去のεの線形和で表すモデル。
Yt = c + εt + θ*(εt -1) where εt~N(0, σ squared)
MA過程は常に定常。

ARMA model, Auto Regressive Moving Average model : ARとMAの合体。ARのφ次第で、ARMAに従った確率変数列は定常であったり非定常であったりする。

ARIMA model : ARMAにデータ間の差分 I (Integrated)を加えたモデル。ARのラグ数p、MAのεを含む期数のq、差分の階数d、でモデルが決まるのでARIMA (p, d, q)過程とされる。差分が2階であれば、差の差、ということ。

SARIMA model : ARIMAにSeasonalが付いたもの。SARIMA (p, d, q, P, D, Q, s)とされ、7つのパラメーターでモデルが決まる。sは季節階差。(p, d, q)は時系列におけるARIMA. (P, D, Q)は季節性を分析するためのARIMA. パラメーターが多く、莫大な数のモデルが存在することになってしまう。

Vector Auto Regressive model : ARモデルをベクトル・行列形式で表したもの。複数の時系列データをまとめて取り扱うことができる。複数の時系列データ間のラグ相関も行列計算で反映される。

以下モデル関連

単位根過程:データ原系列は非定常過程だが、差分系列が定常過程であるもの。AR特性方程式が1を解としても持つ。ARモデルにおける非定常過程では単位根過程だけ気を付ければよい。単位根過程同士のデータ間には見せかけの関係が見えてしまうことがある。

グレンジャー因果:VARモデルにおける、複数の時系列データ間に関係があるかを調べる(いわゆる真の因果ではない)。因果関係ありと仮定したSum of Squared と因果関係なしと仮定したSum of Squared をF検定。

スポンサーサイト



category: 父の本

cm 0   tb 0   page top

コメント

page top

コメントの投稿

Secret

page top

トラックバック

トラックバックURL
→http://tamahibi.blog122.fc2.com/tb.php/3863-2f342440
この記事にトラックバックする(FC2ブログユーザー)

page top

訪問者数

カテゴリ

最新記事

最新コメント

最新トラックバック