バナナでもわかる話

開設当初は計量経済学・統計学が専門の大学院生でした。今はデータを扱うお仕事をしています。統計学・経済学・投資理論・マーケティング等々に関する勉強・解説ブログ。ときどき趣味も。極力数式は使わずイメージで説明出来るよう心掛けていますが、時々暴走します。

マルコフ連鎖における推移確率行列の計算

前回はマルコフ連鎖ってこんなやつだよ~っていうイメージを紹介しました。
bananarian.hatenablog.com


しかし、このカテゴリー[MCMC]の最終目標はマルコフ連鎖モンテカルロの説明です。そういうわけでしっかり数式を使ったお話もしていきます。

f:id:bananarian:20180826194456j:plain

前回のカエルの例をおさらい

多分わかりやすいので、前回の例を今回でも使っていきます。

石1,石2があって、どちらかの石の上にカエルが乗っています。そして、1秒後に
・石1にいて石2に乗り移る確率が50%
・石1にいてそのまま石1に居続ける確率が50%
・石2にいて石1に移る確率を80%
・石2にいてそのまま石2に居続ける確率が20%
であるとします。この確率達を推移確率と呼んだりします。

マルコフグラフで表すとこんな感じです。
f:id:bananarian:20180825122847p:plain

推移確率行列

石1から石2に移る確率が....といっぱい書くのって面倒くさいですよね。これを行列で一発表記することが出来ちゃいます。

推移確率行列Pは次のよう。

P=\left(
    \begin{array}{ccc}
      0.5 & 0.5 \\
      0.8 & 0.2  \\
    \end{array}
  \right)

いやあ、そもそも行列とかいうの知らないっす、しんどいっすって人のために説明しておくと、
行列は要は数字を縦横にいっぱい並べたものです。上のような行列を2行2列の行列と呼んだりします。
ちなみに0.8がある場所が2行1列目、0.2がある場所が2行2列目です。

今回の推移確率行列の解釈は、
・「1行1列目」→石1にいて次も石1に留まる確率
・「1行2列目」→石1にいて次は石2に移る確率
・「2行2列目」→石2にいて次も石2に留まる確率
・「2行1列目」→石2にいて次は石1に移る確率
という感じです。行数と列数が増えてもこの解釈は変わりません。


二秒経った場合の確率を考える

カエルが今石1にいたとしましょう。1秒後に石2に移動する確率は0.5,石1に留まる確率は0.5です。
では、更にもう1秒経った時に石1にいる確率はいくらでしょうか。これは次のパターンが考えられます。

・石1→石1→石1
・石1→石2→石1

つまり、初めに石1にいて、2秒後に石1にいる確率は


(2秒経って全く動いていない確率)+(1秒後に石2に移動し、更に1秒後に石1に移動する確率)

となりますね。つまり


0.5×0.5+0.5×0.8=0.65

65%ということになります。

推移確率行列の使い方

2秒後にどういう状態になっているかという確率を考えるだけでも結構大変でしたね。今回は初めに石1にいると仮定しましたが、実際は石2にいるかもしれません。そうなってくると結構計算を考えるのも面倒になってきます。しかし、推移確率行列を使えばあまり考えずとも確率を計算することが出来ます。

推移確率行列Pは次のようでした。


P=\left(
    \begin{array}{ccc}
      0.5 & 0.5 \\
      0.8 & 0.2  \\
    \end{array}
  \right)

このPと同じPの積をとってやります。行列の積の計算が分からない人は下の式でなんとなーく理解してください。

PP=\left(
    \begin{array}{ccc}
      0.5×0.5+0.5×0.8 & 0.5×0.5+0.5×0.2 \\
      0.8×0.5+0.2×0.8 & 0.8×0.5+0.2×0.2  \\
    \end{array}
  \right)=
\left(
    \begin{array}{ccc}
      0.65 & 0.35 \\
      0.56 & 0.44  \\
    \end{array}
  \right)

さっき二秒経った場合で求めた、2秒後に石1から石1に移動している確率の計算が今回の行列の1行1列目に来ていることを確認してみてください。


これがこの行列Pの便利なところで、例えば最初に石2にいて、3秒後に石1にいる確率は推移行列Pを3回かけて、2行1列目を見てやると良いわけです。



それでは一般化してやります。


(n回目(n秒後)の推移確率行列)=P^n

ということになりますね。ここで
P^nとはP同士の積をn回とったものとします。

この関係をチャップマンコルモゴロフ方程式と呼びます。

推移確率行列の性質

推移確率行列にはちょっとした性質があります。

P=\left(
    \begin{array}{ccc}
      0.5 & 0.5 \\
      0.8 & 0.2  \\
    \end{array}
  \right)

Pの行の和を取ってみてください。どれも和を取ると1になっています。これは何回かけたものであっても同じです。

PP=
\left(
    \begin{array}{ccc}
      0.65 & 0.35 \\
      0.56 & 0.44  \\
    \end{array}
  \right)

これはよく考えてみると当たり前で、推移確率行列の行、例えば1行目石1から石1にいく確率石1から石2に行く確率を表しています。石1から行ける場所は石1か石2しかないはずなので、これらの確率が足して1にならないとおかしなことになるわけです。

推移確率行列を考えると何が嬉しいのか

今までの話からも何となく察しがつくとは思いますが、要はマルコフ連鎖を考えるにあたって、一般的な話になればなるほど推移確率行列を使って情報をまとめていかないと、収拾がつかなくなってしまうわけです。そういうわけで今回は数学ちょっと多めですが、推移確率行列の導入ということで、記事を書かせていただきました。