差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
markov_process [2018/12/12 01:00] – [マルコフ連鎖の例] watalumarkov_process [2018/12/12 16:41] (現在) – [markovchain] watalu
行 20: 行 20:
  
 なお、互いに独立な確率変数の列もマルコフ性は満たす。 なお、互いに独立な確率変数の列もマルコフ性は満たす。
 +
 +マルコフ過程に関する簡単なことは[[http://bin.t.u-tokyo.ac.jp/startup16/file/2-2.pdf|この資料]](東京大学の都市生活学・ネットワーク行動学研究室の勉強会資料)によくまとまっているので、5分から10分ほどかけて、一読しておくといい。
 +
 +=== 状態の分類 ===
 +
 +P[i,i]=1という遷移確率を持つ状態iを吸収状態という。
 +
 +=== チャップマン・コルモゴロフ方程式 ===
 +
 +=== 停止時刻 ===
 +
 +=== 再帰的 ===
 +
 +=== 収束定理 ===
 +
 +=== 定常分布 ===
  
 ==== マルコフ連鎖の例 ==== ==== マルコフ連鎖の例 ====
行 64: 行 80:
 0,0.2,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1, 0,0.2,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,
 0,0,0,0,0,0,0,0,0,1),ncol=10,byrow=TRUE) 0,0,0,0,0,0,0,0,0,1),ncol=10,byrow=TRUE)
 +</code>
 +
 +<code>
 +> P
 +      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 + [1, 0.2  0.7  0.0  0.0  0.0  0.0  0.0  0.0  0.0   0.1
 + [2, 0.0  0.4  0.5  0.0  0.0  0.0  0.0  0.0  0.0   0.1
 + [3, 0.0  0.0  0.5  0.3  0.0  0.0  0.0  0.0  0.1   0.1
 + [4, 0.0  0.0  0.0  0.5  0.3  0.0  0.0  0.0  0.1   0.1
 + [5, 0.0  0.0  0.0  0.0  0.5  0.3  0.0  0.0  0.1   0.1
 + [6, 0.0  0.0  0.0  0.0  0.0  0.5  0.3  0.0  0.1   0.1
 + [7, 0.0  0.0  0.0  0.0  0.0  0.0  0.5  0.3  0.1   0.1
 + [8, 0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.5  0.1   0.4
 + [9, 0.0  0.2  0.1  0.1  0.1  0.1  0.1  0.1  0.1   0.1
 +[10,]  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0   1.0
 </code> </code>
  
行 70: 行 101:
 x = matrix(c(1,0,0,0,0,0,0,0,0,0),nrow=1,ncol=10) x = matrix(c(1,0,0,0,0,0,0,0,0,0),nrow=1,ncol=10)
 </code> </code>
- +実行してみると、表紙に1、他の状態は0という行ベクトルが表示去れる。 
-この次の時点にどの状態にいる+<code> 
 +> x 
 +     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] 
 +[1,]    1    0    0    0    0    0    0    0    0     0 
 +</code> 
 +この次の時点にいる状態の確率分布
 <code> <code>
 x %*% P x %*% P
 </code> </code>
-で得られる。+で得られる。ここで%*%は、ベクトルとベクトル、ベクトルと行列、あるいは行列と行列の掛け算である。 
 +<code> 
 +> x %*% P 
 +     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] 
 +[1,]  0.2  0.7    0    0    0    0    0    0    0   0.1 
 +</code> 
 +これは別名、確率ベクトルと呼ばれる。総和が1は、条件付き確率分布の全確率が1であることに符号する。
  
 +2時点先にいる状態の確率分布は
 +<code>
 +x %*% P %*% P
 +</code>
 +で与えられる。
 +<code>
 +> x %*% P %*% P
 +     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 +[1,] 0.04 0.42 0.35    0    0    0    0    0    0  0.19
 +</code>
 +マルコフ連鎖では、Pをかけた回数分だけ未来の確率分布が、簡単に得られる。この計算をチェインルールと呼ぶこともある。
 +本を手に取ってから10時点先は
 +<code>
 +round(x %*% P %*% P %*% P %*% P %*% P %*% P %*% P %*% P %*% P %*% P,3)
 +     [,1]  [,2]  [,3]  [,4]  [,5]  [,6]  [,7]  [,8]  [,9] [,10]
 +[1,]    0 0.015 0.034 0.051 0.063 0.059 0.042 0.028 0.036 0.673
 +</code>
 +となる。時点の間隔が1時間ならば、10時間後には読み終えているか、飽きるかして、67.3%の確率で本を閉じている。
  
 ==== markovchain ==== ==== markovchain ====
  
 [[r:markovchain]]パッケージは、離散状態離散時間マルコフ過程(通称は離散マルコフ過程、あるいはマルコフ連鎖)をRで扱うのに便利な機能を提供する。 [[r:markovchain]]パッケージは、離散状態離散時間マルコフ過程(通称は離散マルコフ過程、あるいはマルコフ連鎖)をRで扱うのに便利な機能を提供する。
 +
 +install.packages(c("dplyr","stringr","DiagrammeR","networkD3"))
  
 ==== MDPtoolbox ==== ==== MDPtoolbox ====
行 86: 行 148:
 [[r:MDPtoolbox]]パッケージは、マルコフ過程を少し拡張した、マルコフ決定過程をRで扱うのに便利な機能を提供する。 [[r:MDPtoolbox]]パッケージは、マルコフ過程を少し拡張した、マルコフ決定過程をRで扱うのに便利な機能を提供する。
  
 +==== msm ====
 +
 +パネルデータのための多状態モデル。
 +
 +==== mcmcR ====
 +
 +モンテカルロマルコフ連鎖。
 +
 +==== hmm ====
 +
 +共変量を持つ隠れマルコフモデル。
 +
 +==== mstate ====
 +
 +生存解析のためのマルコフ連鎖の上の多状態モデルの推定。