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)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
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]
}