最終更新:2016年1月24日

このサイトでは統計学や統計モデルの紹介を多くしています。
その中でも、状態空間モデルは、力を入れている分野の一つです。

ところで、なぜ状態空間モデルを使う必要があるのでしょうか。
そもそもにおいて、統計モデルを使う必要性はどこにあるのでしょうか。

今回は個々の手法の説明ではなく「なぜそれを使うのか」という理由を解説します。



スポンサードリンク

 

目次

1.なぜモデルを使うのか
2.なぜ統計モデルを使うのか
3.なぜ状態空間モデルを使うのか
4.なぜたくさんのモデルを統一的に表せると便利なのか
5.状態空間モデルを使う注意点
6.状態空間モデルの御利益
7.おまけ:統計モデルと機械学習の違い

 

1.なぜモデルを使うのか

モデルとは、「見やすくなるように簡略化したもの」です。
モデルを作る行為、すなわちモデル化とは、「見やすくなるように簡略化すること」です。

例えば、魚が増えたり減ったりする原因を調べたいと思ったとしましょう。
その時に「水温が高くなって、塩分濃度が低くなって、波が弱くなって、天敵が少なくなって、台風がたくさん来て、そして人が漁獲した量が少なければ魚は増える」というこの世界の法則があったとします。
これは、神様が決めたことであって、「水温が高くなって、塩分濃度が低くなって、波が弱くなって、天敵が少なくなって、台風がたくさん来て、そして人が漁獲した量が少なければ魚は増える」という法則は絶対に正しいと仮定します。

しかし、こういった「絶対法則」がすぐにわかることは極めてまれです。
実は全然関係ない「海藻の量」なんてものをうっかり入れてしまったり、逆にとても重要な要素を抜かしてしまったり、ということもよくあります。
それに、水温に塩分に波の高さに天敵の量、台風の軌道、人間の漁獲量……とたくさんの要因を全部考えていくと、私たちの頭がパンクしてしまいますね。
要するに、たくさんの要因があると「わかりにくい」ということです。

わかりやすくするためには、簡略化することが一番です。
「人間がたくさん魚を獲ると、魚が減るか」を調べたいのであれば、波の大きさとか細かいことは無視したほうがわかりやすくなります。

例えば、
『来年の魚の数=今年の魚の数 + 1000トン - 人間がとった魚の量』
といったように、魚の数の変動を数式で表すことができれば、「人が魚を獲ったら、魚の数が減る」という関係性がすごくわかりやすくなります。

こんな感じで、実現象を「見やすくなるように簡略化すること」がモデル化です。
理解が難しいこの世界を簡単にすることができれば便利ですね。なのでモデル化という技法はよくつかわれるということでした。

 

2.なぜ統計モデルを使うのか

モデルを「えいや」と決めるのは簡単です。
さっきのお魚方程式は、私がYouTubeを見つつ、紅茶を飲みながら片手間に考えました。びっくりするくらいテキトーなモデルです。
人間が獲らなければ、魚は毎年1000トンずつ必ず増えていくって、まぁありえないことです。
実現象をわかりやすく簡略化したつもりが、現実世界とまったく違うものが出来上がってしまう。これでは困ります。

そこで、データを使ってモデルを作るようにします。
データへの当てはまりがよくなるようにモデルを作るので、ちょっと客観的になり、そして変な結果になりにくくなります。
統計データを使って作られるモデルのことを統計モデルと呼びます。

少し客観的にモデルを作るという目的において、統計モデルは便利だということです。

 

3.なぜ状態空間モデルを使うのか

状態空間モデルとは、統計モデルの一種です。
一般化線形モデルといった基本的なモデルより、ちょっと計算が難しいですが、大変有用です。

状態空間モデルを使う理由は「色々なことができるから」です。
あるいは「色々なデータに当てはめることができるから」と言い換えても構いません。

分散分析も、回帰分析も、正規線形モデルも、一般化線形モデル(GLM)も、一般化線形混合モデル(GLMM)も、自己回帰和分移動平均モデル(ARIMA)も、一般化自己回帰条件付き分散不均一モデル(GARCH)も確率的分散変動モデル(SV)も、みんなみんな状態空間モデルというたった一つのモデルで表すことができます。

状態空間モデルとは、「たくさんの統計モデルを統一的に表すことができる統計モデル」なのです。
だから状態空間モデルが注目を浴びてきているのです。

 

4.なぜたくさんのモデルを統一的に表せると便利なのか

今までの統計モデルは、ちょっと単純すぎるきらいがありました。

オーダーメイドと、レディメイドという言葉があります。
例えば、魚の個体数なら魚のための数理モデルが、経済に対してなら専門の経済モデルが研究されています。
そういった「特定のデータに対して適用するモデル」をオーダーメイドのモデルと呼ぶことにしましょう。

一方、一般化線形モデルといった統計モデルは「経済データにしか使えない」ということはありません。
ビールの売り上げ予測にも使えるし、ウェブサイトのログの解析にだって使えるでしょう。もちろん魚の数を予測するのにも使えます。
こんな風に「いろいろな対象に対して同じモデルを使うことができる」のは大変便利です。
こういうのをレディメイドのモデルと便宜上呼ぶことにします。

レディメイドの既製品を使うと大変簡便なのですが、既製品では応用性に欠けます。
例えば、
1月には「ビールの売り上げ = 4 + 気温×3」だが
3月には「ビールの売り上げ = 2 + 気温×4」に変わる。
といったように、係数や切片の値がころころ変わる状況を表そうと思うと、なかなか大変です。
あるいは
1月にはデータが期待値から遠く離れた値に出にくいが、
3月にはデータが期待値から遠く離れた値にもよくなる(分散が大きくなる)
といったことを一般化線形モデルで表そうとするのは、相当に困難です。

じゃあ、こういった分散の不均一性を表すために条件付き分散不均一なモデル(GARCHなど)を使うか、ということになります。
モデルそのものはたくさん用意されていますが、どれを使えばよいのか選ぶ作業が面倒ですね。

ビールのデータでも、魚のデータでも、経済データでも構わないけれども、表現の幅が狭くなる(分散不均一を表せないとか)という欠点が、個々の統計モデルにおいてはどうしてもあります。もちろんさっき出てきたGARCHも万能でありません。既製品ですから、手持ちのデータにぴったり合うモデルを選ぶのはなかなかに大変なのですね。

そこで状態空間モデルの出番です。
状態空間モデルは、型の決まった既製品のモデルですが、何せ「たくさんの統計モデルを統一的に表すことができるモデル」です。
一般化線形モデルとGARCHモデルの特徴を併せ持つようなモデルを組むことも可能です。
もちろん万能ではありませんが、それでも、適用できるデータの種類が飛躍的に増えたことは間違いありません。

状態空間モデルは、通常のクロスセクションデータに適用することもできますし、パネルデータにも、時系列データにも、空間データにも、そして時空間データに対しても適用することができます。

というわけで、「いろいろなデータに適用しやすい」状態空間モデルはとても便利なのだよという話でした。

 

5.状態空間モデルを使う注意点

状態空間モデルを使うことによって、少し複雑な状況やデータにも対応できるようになりました。
しかし、モデル化とは「見やすくするために簡略化すること」だということは忘れてはなりません。

状態空間モデルを使って、やたらめったら複雑なモデルを作り、人間には理解不能な謎の因果律が出来上がりました、というのは笑えないジョークなので、ぜひ気を付けてください。

それと、状態空間モデルは、推定するのが面倒です。
少なくとも一般化線形モデルと比べると天と地ほどの差があります。
ですので、一般化線形モデルで解決できることであれば、積極的にこちらを使うべきでしょう。楽なので。
そういう意味合いにおいても、一般化線形モデルをしっかり学んでおくことの意義は大きいと思います。
すごいぞ、便利だぞとさんざん宣伝しておきながらこのようなことを申し上げるのは大変恐縮なのですが、コストパフォーマンスを十分に考えたうえで実行に移されるのがよいかと思います。

 

6.状態空間モデルの御利益

状態空間モデルは統計モデルの一種です。
なので、統計モデルを作った際に得られる御利益は得ることができると考えてもらって結構です。

御利益の一つは、現象の「見える化」です。
モデルとは「見やすくなるように簡略化すること」なのですから、うまく組めば、現象に対する理解が深まります。

また、予測にも力を発揮します。
時系列データであれば、将来の値を予測できます。また欠損値を補完することもできます。
空間データであれば、場所と場所の間を補完することができます。
時空間データであったとしても、時間と空間の情報を使いつつ、「将来のこの地点にはこういうデータが来る」と予測できます。

適用できるデータの種類が増えた統計モデルとは、それだけで十分に役立つものです。

 

おまけ:統計モデルと機械学習の違い

ここで統計モデルの良さと、機械学習との違いについて(主観のこもった)解説をします。

ちなみにこの文章を書いた管理人の修論は、機械学習の一種である「ランダムフォレスト」を使った云々という論文でした。ですので、別に機械学習が嫌いなわけではないです。大変便利な手法だと思います。
ただ、統計モデルに日が当たらないのはさみしいです。機械学習と統計モデルの使い分けができるようにという願いも込めて、この文章を書きました。

機械学習の目的は「まだ手に入れていないデータを予測すること」です。
統計モデルの目的は「データが手に入るプロセスを推定すること」です。

よく似ているのですが、順番が違うことに気を付けてください。

機械学習は、プロセスがどうであれ、「とにかく予測が当たればよい」ということを目的としています。
機械学習では「汎化誤差」という言葉がよく出てきます。これは「未知のデータを予測したときの誤差」と思ってもらえれば(正確ではありませんが)よいかと思います。
この汎化誤差をいかにして小さくするかということを目的に最適化をしていくんですね。

一方の統計モデルは「データが手に入るプロセス」を推定します。
データが手に入るプロセスがわかっていれば、そのプロセスを順に流していくことにより、次出てくるデータが予測できるね、という考え方で予測します。
プロセスの推定が1番で、予測はその次です。

データが得られるプロセスとは例えば「1/6の確率で3の目が出てくる」というものであったりします。
あるいは、「この湖で釣れる魚の大きさは、期待値10㎝、分散3㎝の正規分布に従う」というものであったりします。

統計モデルとは何かと聞かれたら、「実現象を簡略化した~~」と答えるのが常ですが、これは統計モデルの存在意義であって、定義そのものではありませんね。
統計モデルの定義はとても簡潔です。
統計モデルとは「確率分布の候補の集合」です。
統計モデルとは、確率分布なのです。

例えば、大きな箱の中に、赤玉と白玉が1000個ずつ、均等にばらまかれていたとします。
そこから目をつむって玉を一つ取り出すという行為を考えます。
その時、データが得られるプロセスは「赤玉1000個、白玉1000個入った箱から無作為に玉を取り出す」となります。
これは、「赤玉が1/2の確率で、白玉が1/2の確率で手に入る」というプロセスだとみなしても差し支えありません。
なので、統計モデルとは確率分布であり、確率分布を推定することが「データが手に入るプロセスを推定する」こととなるのです。

統計モデルを使うと、「データが手に入るプロセス」を直接推定することができます。
そのため実現象の「見える化」という点においては、機械学習とは比較にならないほどの優位性があります。

ただし、機械学習のほうが、予測精度が高くなることはよくあります(すべてではありません。あくまでもデータによります)。
機械学習は、予測精度はよくなることが多いけど、それ以外に応用を利かすのはちょっと難しいものだと思えばいいのかなと思います(これも例外はありそうですが)。

最後に、状態空間モデルの話に戻ります。
状態空間モデルは、とても柔軟な統計モデルでして、色々な統計モデルの組み合わせのようなものを作り上げることも可能です。
そのため、複雑な「データが得られるプロセス」であったとしても、「私たち人間が直感的に理解することのできるプロセスに翻訳する」ことが比較的容易にできます。
すべて回帰分析にお任せ、というのだと、データを整形したりなんだりと大変手間がかかるうえに、直感から外れたモデルを作らざる負えなくなることもあります。特に●●検定という単一の検定手法に落とし込もうとした場合、この傾向は顕著になります。

しかし、状態空間モデルを使うと、モデルを組む際の制約が少ないので、自由にモデルを組めます。
私たちが実現象を理解するのにあたって、状態空間モデルはとても便利なのだよというお話でした。

 

状態空間モデル関連のほかの記事はこちらから見ることができます

 

おまけのおまけ

状態空間モデルの解説は載っていませんが、別の統計モデルである「一般化線形モデル」に関する本を書きました。
統計モデルの基礎や、統計モデルと確率分布の関係については、この本の4~5部にもっと細かい説明が載っています。
もしよければ、こちらも合わせてご参照ください。



スポンサードリンク