【マルコフ連鎖と遷移確率行列】5年後に太ってしまう確率は何%?

2023年10月16日

Photo by Edge2Edge Media on Unsplash

ある病院では毎年行っている健康診断で肥満度の統計をとっています。

それによると、ある年の健康診断で標準だった人が次の年にも標準である確率は85%、太りすぎになる確率は10%、痩せすぎになる確率は5%です。

また、太りすぎだった人が次の年にも太りすぎである確率は80%、標準になる確率は15%、痩せすぎになる確率は5%です。

逆に、痩せすぎだった人が次の年にも痩せすぎである確率は90%、標準になる確率は8%、太すぎになる確率は2%です。

今年の健康診断で標準だった人が、5年後に太りすぎになる確率は何%でしょうか?

 

マルコフ連鎖とは?

世の中には時系列定期的に収集されているデータはたくさんあります。

例えば、物流業界では日々の在庫データが良い例です。

これは毎日23:59:59時点での在庫数を日々記録したデータです。

 

また毎年の決算データは、期末時点での財務データを記録したものです。

在庫データのデータ収集間隔は1日、決算データは1年です。

 

このような時系列のデータを数学的に表してみましょう。

例えば、1日から20日までの在庫データは次のように表せます。

X20=250, X19=235, X18=230, , , , X1=200

そして、これらXi(i=1, 2, , , , 19, 20)を状態といいます。

この状態は理論上無限に存在しますが、もしこの会社が最大在庫数を300に設定しているとすると、0、1、2、、、299,300の301個が状態の取りうる範囲になります。

これを状態空間といいます。

冒頭の例では{標準、太りすぎ、痩せすぎ}の3つが状態空間になります。

 

それでは21日の在庫数、つまりX21は何になるでしょうか?

そんなこと分かりませんね?

特にこの会社が扱っている商品の売れ行きが完全にランダムである場合には。

このような場合には、21日の在庫数は20日の在庫数に依存します

19日以前の在庫数は全く関係ありません

このように次の状態(この場合X21)が今の状態(この場合X20)のみに依存するようなモデルをマルコフ連鎖と言います。

 

これを数学的に書くと次のようになります。

P(Xt+1|Xt, Xt-1, , , , X1, X0)= P(Xt+1|Xt)

次の状態であるXt+1は、今の状態であるXtのみに依存して、それ以前の状態であるXt-1, , , , X1, X0には無関係ということを表しています。

ちなみに、この式の中にある「|」条件付き確率を表す記号で、例えばP(A|B)はBという条件のもとでAが起きる確率を表します。

 

遷移確率行列とは?

先ほど、冒頭の例では{標準、太りすぎ、痩せすぎ}の3つが状態空間になると言いました。

この病院ではある年の健康診断で標準だった人が、次の年にも標準になる確率は85%でした。

これを数学的に表すと次のようになります。

P(Xt+1=標準|Xt=標準)=0.85

今年(t年)標準だったら、来年(t+1年)も標準になる確率が85%ということを表しています。

そしてこれを遷移確率と言います。

 

同様に、ある年に標準だった人が次の年に太りすぎになる遷移確率が10%というのは、次のように表現できます。

P(Xt+1=太りすぎ|Xt=標準)=0.1

 

あと7つの遷移確率も同様に表現できます。

そしてこれら合計9つの遷移確率は、行列を使えば次のようにきれいにまとめられます。

 

行を時間tの状態、列を時間(t+1)の状態として、行と列が交わる位置に遷移確率が書かれていますね。

こうすることによって、すべての遷移確率を漏れなくダブりなく表現することができるのです。

 

このような行列を遷移確率行列と言います。

一般化すると、状態iから状態jへの遷移確率を(i, j)成分に書いた行列のことです。

この行列のすべての成分は確率ですので、当然のことながらすべて0以上1以下になります。

また、いずれの行についても、それらの成分を足し合わせた値は1になるという性質があります。

 

遷移確率行列をn乗すると?

遷移確率行列によって、1年後にどの状態からどの状態に何%の確率で遷移するかを表すことができましたが、2年後の遷移確率はどのようになるのでしょうか?

例えば、今年標準だった人が2年後にも標準である確率を求めてみましょう。

こうなるのは次の3パターンがあります。

標準 ⇒ 標準 ⇒ 標準

標準 ⇒ 太りすぎ ⇒ 標準

標準 ⇒ 痩せすぎ ⇒ 標準

ここで、各遷移確率は分かっていますね。

例えば、標準⇒標準になる遷移確率は0.85です。

ですので、

標準 ⇒ 標準 ⇒ 標準

となる確率は0.85×0.85=0.72となります。

同様に、

標準 ⇒ 太りすぎ ⇒ 標準

となる確率は0.1×0.15=0.015で、

標準 ⇒ 痩せすぎ ⇒ 標準

となる確率は0.05×0.08=0.004となります。

今年標準で2年後も標準であるためには、これら3つのいずれかが起こるはずなので、その確率は0.72+0.015+0.004=0.74ということになります。

 

実はこれは下記のような行列演算をやっているのと同じです。

 

つまり、遷移確率行列を二乗した行列の(1,1)成分を計算していることと同じなのです。

そして2年後の他の遷移確率も、同じように遷移確率行列の二乗で求められます。

 

このようにの時間ステップの状態への遷移確率を表す遷移確率行列は、二乗することによって次の次の時間ステップの状態への遷移確率行列になります。

そしてこれを繰り返すと遷移確率行列のn乗は、n時間ステップ先の遷移確率を表すことになります。

 

5年後に太ってしまう確率は?

従って先ほどの遷移確率行列を5乗すれば、5年後の遷移確率行列になります。

これは手計算では大変なので、Excelで計算してみましょう。

 

行列の積はExcelではMMULT関数で計算できます。

まず遷移確率行列をB2:D4とF2:H4に入力します。

次にJ2:L4を選択してから下記のように入力します。

 

そしてCTL+Shift+Enterを同時に押すことにより、J2:L4に2つの行列の積が計算されます。

遷移確率行列をと表すと、今の計算を繰り返すことによってからまで次のように計算できます。

 

最後に計算された(1,2)成分が、標準だった人が5年後に太りすぎになる確率です。

つまりこの病院の統計によると、標準の人であっても5年後には4人に1人が太ってしまうということです。

 

まとめ

  1. 過去の状態は関係なく、今の状態にのみ依存して次の状態が確率的に決まることをマルコフ連鎖といい、式では次のように表せる。

P(Xt+1|Xt, Xt-1, , , , X1, X0)= P(Xt+1|Xt)

  1. 今の状態から次の状態へ遷移する確率を遷移確率といい、P(Xt+1|Xt)で表す。
  2. すべての状態の遷移確率は遷移確率行列にまとめられ、その(i, j)成分は状態iから状態jに遷移する確率を表す。
  3. n時間ステップ先の遷移確率は、遷移確率行列のnで求められる。

 

次回はマルコフ連鎖を在庫管理に応用してみましょう。

【マルコフ連鎖】翌日配送が翌々日配送になると在庫は何台必要か?