【发布时间】:2013-02-12 11:00:50
【问题描述】:
我有一个值介于 0 和 1 之间的矩阵垫(概率也可以),如下所示:
> t <- c(22, 65, 37, 84, 36, 14, 9, 19, 5, 49)
> x <- t/max(t)
> mat <- x%*%t(x)
我现在想将此矩阵 b 转换为马尔可夫转移矩阵,即每行的元素加起来为 1。我通过将矩阵除以 rowSums 来实现这一点:
> y <- mat/rowSums(mat)
> z <- y/rowSums(y)
> rowSums(z)
[1] 1 1 1 1 1 1 1 1 1 1
但是,这会导致每列中的元素具有相同的值:
[,1] [,2] [,3] [,4] [,5]
[1,] 0.06470588 0.1911765 0.1088235 0.2470588 0.1058824
[2,] 0.06470588 0.1911765 0.1088235 0.2470588 0.1058824
[3,] 0.06470588 0.1911765 0.1088235 0.2470588 0.1058824
[4,] 0.06470588 0.1911765 0.1088235 0.2470588 0.1058824
这不是我想要的。我要求每个元素具有不同的值,但我不知道如何做到这一点。任何建议表示赞赏!
【问题讨论】:
标签: r markov-chains