马尔可夫链转换矩阵:MATLAB 函数稀疏 - 索引超出矩阵维度

Markov Chain Transition Matrix: MATLAB function sparse - index exceeds matrix dimensions

我指的是这个问题:Estimate Markov Chain Transition Matrix in MATLAB With Different State Sequence Lengths

描述的过程对我来说非常完美,但我无法调整最后一个 Matlab 命令来创建转换矩阵 S = sparse(i,j,v,m,n)

transitionMatrix = sparse(uniqueTransitions(:,1), uniqueTransitions(:,2), p, 6,6)

这是我的数据,包含 18 个独特的转换和相应的概率:

uniqueTransitions       p
5405    5414            0,046511628
5414    5420            0,046511628
5420    5420            0,139534884
5420    9999            0,046511628
5414    5430            0,046511628
5430    5414            0,023255814
5430    5191            0,023255814
5191    5462            0,023255814
5462    5414            0,023255814
5414    5414            0,139534884
5414    9999            0,023255814
5405    5419            0,023255814
5419    5419            0,162790698
5419    5412            0,069767442
5412    5419            0,046511628
5412    5414            0,023255814
5405    5405            0,046511628
5405    9999            0,046511628

如何计算参数'm'和'n'? 我已经阅读了在线 Matlab 文档并尝试了很多参数,但我找不到解决方案。

您正在创建一个大小为 6 x 6 的稀疏矩阵,但您的数据显然更大。假设每个状态都是可达的,您可以简单地跳过大小参数:

transitionMatrix = sparse(uniqueTransitions(:,1), uniqueTransitions(:,2), p)

仅当您要创建最后一行或最后一列仅包含零的矩阵时才重要。