2017-01-23 9 views
0

y = c(5,5,5,5,4,5,3,5,3,3,4,2,5,5,3,1,1,3,3,4,1,5、 1,1,3,3,2,5,1,5,1,5,5,5,5,2,1,4,1,1,1,2,4,5,5,1,4,5,6,7,8,9,10,11,12,13,14、 2,4,1,3,4,2,2,5,2,2,5,5)マルコフ連鎖のベクトルの遷移行列を生成しますか?

p <マトリクス(nrow = 5、ncol = 5,0) for(t in 1: (i = 1:5)の場合には の場合には、x(t)、x [t + 1]私は5つの状態で作業しています。p [i、] < -p [i、]/sum(p [i、])

が、私はこのエラーを得続けると私は エラーのpでそれを解決するかどうかはわかりません[]×[T、X [tは+ 1]]:境界

また

のうち添字は、誰もが持っていましたトランジションマトリックスを生成するためにパッケージ化されたマルコフチェーンを使用して成功するか?

+1

あなたは私たちに 'x'を与えていないので、コードは再現できません。また、この質問は、より多くのstackoverflowに適しています – Taylor

答えて

0

私はそれを取るyは、各タイムステップで状態のベクトルです。

df <- data.frame(
    t.one = y[-length(y)], 
    t.next = y[-1], 
    p = 1/(length(y) - 1) # 1/<number of transitions> 
) 

そして各可能な遷移によって集計:

pr.df <- aggregate(p ~ t.one + t.next, data=df, FUN=sum) 

は次にマトリックスを作成し、充填私はどうなるのか

は、各行が、このような状態遷移に対応data.frameを作成しています集計したデータ:

mat <- matrix(nrow=5, ncol=5, 0) 

for (k in 1:nrow(pr.df)) { 
    i <- pr.df$t.one[k] 
    j <- pr.df$t.next[k] 
    mat[i,j] <- pr.df$p[k] 
} 

これを確認してくださいあなたの確率は1.0になります。sum(mat)

関連する問題