Explained Visually

By Victor Powell

with text by Lewis Lehe

Markov chain, named after Andrey Markov is mathematical systems that hop from one “state” (a situation or set of values) to another. 例えば、赤ちゃんの行動をマルコフ連鎖モデルで表現すると、「遊ぶ」「食べる」「寝る」「泣く」を状態として含み、他の行動と合わせて「状態空間」、つまり可能なすべての状態のリストを形成することができます。 さらに、マルコフ連鎖は状態空間の上に、ある状態から他の状態へのホッピング、つまり「遷移」の確率を伝えます。

単純な 2 状態マルコフ連鎖を以下に示します。

速度状態空間内の 2 状態 (A と B) で、可能な遷移は 4 つあります (2 ではない、状態はそれ自身に戻ることができるため)。 A」にいる場合、「B」に遷移することも、「A」のままであることも可能です。 B’であれば、A’に遷移するか、B’のままである。 この 2 状態図では、どの状態からどの状態へも遷移する確率は 0.5 です。 その代わり、「遷移行列」を使って遷移確率を集計します。 状態空間内のすべての状態は、行と列として一度含まれ、行列の各セルは、その行の状態からその列の状態への遷移の確率を指示します。 つまり、行列では、セルは図中の矢印と同じ働きをします。

スピード

A B

A
P(A|A): {{ transitionMatrix | number:2 }}。
P(B|A): {{ transitionMatrix | number:2 }} 。
B
P(A|B): {{ transitionMatrix | number:2 }} となる。
P(B|B): {{ transitionMatrix | number:2 }} 。

状態空間が状態を1つ追加する場合、1行と1列を追加し、既存の列と行に1セルずつ追加します。 つまり、マルコフ連鎖に状態を追加すると、セルの数は二次関数的に増加する。 このように、ジャングルジムのマルコフ連鎖図を描かない限り、遷移行列はすぐに便利になります。

マルコフ連鎖の1つの使い方は、コンピュータ・シミュレーションに現実世界の現象を含めることです。 たとえば、新しいダムがどの程度の頻度で溢れ出すかを、連続した雨の日の数に依存してチェックしたい場合があります。 このモデルを作るには、まず雨の日(R)と晴れの日(S)のパターンが次のようになります:

この天気をシミュレーションする一つの方法は、「半分の日は雨だ」とだけ言うことです。 したがって、シミュレーションでは毎日が50%の確率で雨が降ることになります。” このルールはシミュレーションで次のようなシーケンスを生成します:

上のシーケンスが元のシーケンスと全く同じに見えないことに気づきましたか? 2番目の配列は飛び回っているように見えますが、1番目の配列(実データ)は「粘着性」を持っているように見えます。 実際のデータでは、ある日晴れ(S)だったら、次の日も晴れる確率が高い。

この「粘着性」を2状態マルコフ連鎖で微分することができる。 マルコフ連鎖が状態「R」にあるとき、じっとしている確率は0.9で、「S」状態に出る確率は0.1である。 同様に、「S」状態は0.9の確率で留まり、「R」状態に遷移する確率は0.1です。

speed

Metereologists, ecologists, computer scientists, financial engineers and other people need to model big phenomena, Markov chain can get to be quite large and powerful. たとえば、Google が検索結果の順序を決定するために使用しているアルゴリズムは、PageRank と呼ばれ、マルコフ連鎖の一種である。 例として以下のものがあります:ex1, ex2, ex3、またはランダムに1つ生成してください。 入力された行列が有効な遷移行列でない場合、遷移行列のテキストは赤色に変わります。 遷移行列の行の合計は 1 でなければなりません。また、行と列の数は同じでなければなりません。

setosa.io/markov

でフルスクリーン版にもアクセスできます。

コメントを残す

メールアドレスが公開されることはありません。