Matrix 生成马尔可夫链向量的转移矩阵?

Matrix 生成马尔可夫链向量的转移矩阵?,matrix,Matrix,y=c(5,5,5,5,4,5,3,5,3,4,2,5,5,3,1,1,3,4,1,5,1,1,3,2,5,1,5,5,5,2,1,5,1,4,1,1,1,2,4,5,1,4,1,4,2,2,2,5,5) p我认为它y是每个时间步的状态向量 我要做的是创建一个data.frame,其中每一行对应一个状态转换,如下所示: df <- data.frame( t.one = y[-length(y)], t.next = y[-1], p = 1 / (length(y

y=c(5,5,5,5,4,5,3,5,3,4,2,5,5,3,1,1,3,4,1,5,1,1,3,2,5,1,5,5,5,2,1,5,1,4,1,1,1,2,4,5,1,4,1,4,2,2,2,5,5)


p我认为它
y
是每个时间步的状态向量

我要做的是创建一个
data.frame
,其中每一行对应一个状态转换,如下所示:

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

df您没有给我们一个
x
,因此代码不可复制。另外,这个问题更适合stackoverflow
pr.df <- aggregate(p ~ t.one + t.next, data=df, FUN=sum)
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]
}