【问题标题】:R: Transition Matrix to Transition Probability MatrixR:转移矩阵到转移概率矩阵
【发布时间】:2014-04-09 13:42:04
【问题描述】:

我有一个转移矩阵 m:

m <- matrix(c(0, 0, 1, 0, 0, 0, 0,
               0, 1, 1, 0, 0, 0, 0,
               1, 0, 1, 1, 0, 0, 0,
               0, 0, 0, 1, 1, 0, 0,
               0, 0, 0, 0, 0, 0, 1,
               0, 0, 0, 0, 0, 1, 1,
               0, 0, 0, 1, 1, 0, 1), 
             nrow = 7, ncol = 7, byrow = TRUE,
             dimnames = list(c("d1", "d2", "d3", "d4", "d5", "d6", "d7"),
                             c("d1", "d2", "d3", "d4", "d5", "d6", "d7"))
             );

并且想要一个看起来像这样的转移概率矩阵(每行加起来为 1.0)。

0.00   0.00   1.00   0.00  0.00   0.00   0.00
0.00   0.50   0.50   0.00  0.00   0.00   0.00
0.33   0.00   0.33   0.33  0.00   0.00   0.00
...

是否有允许我这样做的标准功能?

【问题讨论】:

    标签: r matrix transition probability


    【解决方案1】:

    你可以使用prop.table:

    prop.table(m, 1)
    
              d1  d2        d3        d4        d5  d6        d7
    d1 0.0000000 0.0 1.0000000 0.0000000 0.0000000 0.0 0.0000000
    d2 0.0000000 0.5 0.5000000 0.0000000 0.0000000 0.0 0.0000000
    d3 0.3333333 0.0 0.3333333 0.3333333 0.0000000 0.0 0.0000000
    d4 0.0000000 0.0 0.0000000 0.5000000 0.5000000 0.0 0.0000000
    d5 0.0000000 0.0 0.0000000 0.0000000 0.0000000 0.0 1.0000000
    d6 0.0000000 0.0 0.0000000 0.0000000 0.0000000 0.5 0.5000000
    d7 0.0000000 0.0 0.0000000 0.3333333 0.3333333 0.0 0.3333333
    

    这里,参数1表示函数分别应用于每一行。

    【讨论】:

    • Here the result: d0 d1 d2 d3 d4 d5 d6 d0 0.0000000 0.0 1.0000000 0.0000000 0.0000000 0.0 0.0000000 d1 0.0000000 0.5 0.5000000 0.0000000 0.0000000 0.0 0.0000000 d2 0.3333333 0.0 0.3333333 0.3333333 0.0000000 0.0 0.0000000 d3 0.0000000 0.0 0.0000000 0.5000000 0.5000000 0.0 0.0000000 D4 0.0000000 0.0 0.00000 0.0000000 0.00000 0.00000 0.0 1.0000000 D5 0.00000 0.00000 0.000000 0.00000 0.0000000 0.0000000 0.00000 0.50000 d6 0.50000 d6 0.0000000 0.00000 0.00000 0.00000 0.0000000 0.33333333333333333333333333333333333333330.0 0.0 0.33333333您不知道某些五圈和其他五圈?只是出于好奇...
    • @RalfB 在您的输出中,数字最多在点后面有 7 位数字。如果该数字可以用更少的位数显示(例如,0.5),则它会用更少的位数显示,除非同一列中的数字具有更高的位数。请注意,一列中的所有值都具有相同的位数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 2020-03-28
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    相关资源
    最近更新 更多