【发布时间】:2018-04-10 20:38:40
【问题描述】:
我已经从 r 中的矩阵绘制了马尔可夫链。但是,我有很多低于 0.01 的概率,因此我的概率图看起来像这样:
我已经搜索了好几个小时,但似乎找不到可以显示所有四位小数的东西。有什么方法可以格式化它还是应该保持原样?
我的代码如下:
library(markovchain)
newtransition.matrix <- matrix( data = c(
.9366, .0066, .0007, .0003 ,.0003, 0, .0015, 0,
.0583, .9172, .0225, .0026, .0006, .001, 0, 0,
.004, .0694, .9176, .0483, .0044, .0032, .0029, 0,
.0009, .0049, .0518, .8924, .0666, .0046, .0088, 0,
.0002, .0006, .0049, .0444, .8323, .0572, .0191, 0,
0, .0009, .002, .0081, .0746, .8362, .1028, 0,
0, .0002, .0001, .0016, .0105, .0384, .6123, 0,
0, .0002, .0004, .0023, .0107, .0594, .2526, 1),
nrow = 8, ncol = 8,
dimnames = list( c( "AAA", "AA", "A", "BBB", "BB", "B", "CCC", "Default" ), c( "AAA", "AA", "A", "BBB", "BB", "B", "CCC", "Default") ) )
print( newtransition.matrix )
newtransition.matrix <- new( "markovchain", transitionMatrix = newtransition.matrix )
layout <- matrix(c(-3, 1, 2, 2, 2, -2, 4, 1, 0, 6, 0, -6, -3, -4, 3, -4), ncol = 2, byrow = TRUE)
plot(newtransition.matrix, vertex.size = 10, layout = layout, edge.arrow.size=0.25)
非常感谢!
【问题讨论】:
-
我在mran.revolutionanalytics.com/web/packages/markovchain/vignettes/… 浏览了该软件包的文档,看来您最多只能显示 2 位小数。我不知道这是否可以接受,但您可以将所有内容乘以 100 或类似的值吗?
-
这可能是故意的,因为该图在小数点后 2 位将难以阅读。我认为您最好查看转换矩阵本身。
-
@Seymour 将所有内容乘以 100(从而将概率显示为百分比)似乎是最好的解决方案。下面的解决方案(尽管它们令人印象深刻)太杂乱而无法阅读。
-
@John Coleman 我同意这些解决方案似乎过于混乱,有很多小数位。还有一些其他的包可以完成整理东西的任务(见stackoverflow.com/a/21035960/9598813),但我个人喜欢你使用百分比的想法。
标签: r markov-chains markov