統計モデリング - pythonで『StanとRでベイズ統計モデリング』
はじめに
この本はStan(スタン)というソフトウェアとそのR用のパッケージであるRStan(アールスタン)を使って, 統計モデリングを習得する本である
イントロで書籍の目的や内容や流れ, 前提知識や対象読者が記載されていたいりするので意外と大事です. まず上記の冒頭の「何について書かれた本か?」を読んでいきます.
以下の単語について明確にしていきます. なんとなくわかったつもりになっていることも多いので, できるだけ see: [参考資料のリンク]
で参考資料も調べて記載するようにします.
- Stan
- R
- RStan
- 統計モデリング
統計モデリングとは
それでは以上のようなソフトウェアを用いて実施する 統計モデリング
とはなんでしょうか.
確率分布
を使って 数理モデル
をデータにあてはめて現象の理解と予測をすることということなので, 次の単語を整理してみます.
- 確率分布
- 数理モデル
確率分布
確率分布(かくりつぶんぷ, 英: probability distribution)は、確率変数の各々の値に対して、その起こりやすさを記述するものである。
see: 確率分布 - Wikipedia
Wikipediaの例によると, 例えばサイコロ2個を振ったときの出目の和は 確率変数 で, 以下のような確率の分布を 確率分布 と呼びます.
サイコロ1個の出目の範囲は1から6のため, サイコロ2個を振ったときの出目の和は2から12の範囲になります. ここで重要なのは, サイコロ2個の出目の和という確率変数があった際に, 2から12のうちどの値になりやすいかは異なるという点です.
上記の例では, (単に組み合わせが多いため)7の値になりやすいことがわかります. 一方, 2もしくは12は最も確率的に低い値となります. しかし, 思考実験として両方のサイコロが歪んでいて小さい目が出やすい場合には, 2から6の値になりやすく, 一方8〜12の値にはなりづらくなるため確率分布が変化します.
このようにある値や事柄が起きやすいかどうかの確率を確率分布と呼びます.
補足ですが, 確率については以下の本がわかりやすいです.
see: プログラミングのための確率統計
数理モデル
そもそも 数理モデル
という言葉が聞き慣れないため, やっぱりWikipediaを見てみます.
数理モデルは、特に数学によって記述されたモデルのことである。モデルという言葉に含意されているように、対象とのズレ(特に近似や抽象化)が意識されていることが多い。モデルの正当性が実験や観察などによって裏付けられ、非常にうまく行っている事が確かめられている場合は「理論」と呼ばれるようになることもある。
簡単な例.
「A君が歩けば歩くほど前に進む。歩幅が広いほど前に進む。」という現象を
(距離)=(歩幅)×(歩数)
という数式で表せば、これは数理モデルである。
see: 数理モデル - Wikipedi[f:id:yukinagae:20181102120153p:plain]a
とりあえず y = ax + b
のように何らかの数式で事象を表現することを数理モデルと呼ぶようです.
つまり
統計モデリングとは, 確率分布
(というある値や事柄が起きやすいかという分布の情報)を使って 数理モデル
(という数式を使って事象を説明するモデリング)をデータにあてはめて現象の理解と予測をすることと説明できます.
つまり, 先程の数理モデルの例では, (距離)=(歩幅)×(歩数)
という概念的な数式がありましたが, これに 確率分布
を取り入れると統計モデリングとなりそうです.
例えば, 人間が歩く場合常に一定の歩幅で歩くことは難しいため, ある程度の±の誤差が生まれます これを歩幅の大きさが確率的に変動すると捉えると, 結果的に距離も確率的に変動しますと捉えることができそうです.
- 数理的なモデル:
(距離)=(歩幅)×(歩数)
- 確率的なモデル:
(距離がどれくらいになりそうか)=(歩幅の大きさがどれくらいになりそうか)×(歩数)
「じゃあ具体的にどういうこと?」という点がまだ気になってきますが, まずは概要を理解したところで次を読み進めます.