计算矩阵中多个序列的转移矩阵

calculate transition matrix for multiple sequences in matrix

大家好,我正在尝试为矩阵中每一行呈现的每个序列计算转移矩阵。例如,我有一个矩阵:

    dat<-matrix(c('a','b','c','a','a','a','b','b','a','c','a','a','c','c','a'),nrow = 3)

   > `
        [,1] [,2] [,3] [,4] [,5]
    [1,] "a"  "a"  "b"  "c"  "c" 
    [2,] "b"  "a"  "b"  "a"  "c" 
    [3,] "c"  "a"  "a"  "a"  "a" `

我可以使用

轻松计算单行的转换矩阵
    > `mylistMc<-markovchainFit(data=dat[1,])`

我得到了正确的结果

    > `      
     a   b  c
        a 0.5 0.5 0
        b 0.0 0.0 1
        c 0.0 0.0 1`

然后我尝试使用

    > `mc<-markovchainListFit(data=dat[1,])`

但结果很奇怪,它给出了 4 个矩阵而不是 3 个(我想它可能需要列而不是行),我相信 MarkovChainListFit 用于多个序列,我只是不知道如何使用它。 有什么想法吗?谢谢!

试试这个:

mc <- apply(t(dat),2,function(x) markovchainFit(x))
trans_mat <- list(mc[[1]][[1]],mc[[2]][[1]],mc[[3]][[1]])