首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >马尔可夫链中的比例不等于1

问马尔可夫链中的比例不等于1
EN

Stack Overflow用户
提问于 2016-04-12 18:38:20
回答 2查看 264关注 0票数 0

我有以下两种状态的马尔可夫链:

代码语言:javascript
复制
pre<-cbind(c(rep("rain",100),rep("sun",100),rep("rain",100)))
post<-cbind(c(rep("rain",50),rep("sun",70),rep("rain",100),rep("sun",80)))
df<-cbind(pre,post)
df<-as.data.frame(df)
colnames(df)<-c("pre","post")

states<-c("rain","sun")

probsCase<-function(i,j){
sum(as.character(df$pre)==states[i] & as.character(df$post)==states[j])/sum(as.character(df$pre)==states[i])
}

transitionMatrix<-outer(1:2,1:2,Vectorize(probsCase))
colnames(transitionMatrix)<-states
rownames(transitionMatrix)<-states

library(diagram)
plotmat(transitionMatrix,relsize=0.75)

这就产生了以下情节:

​

​

在我看来,“太阳”和“雨”之间的箭头应该指向相反的方向,否则所占的比例就不会达到1。

为了进行比较,您可以在网上查看这个类似的地块,其中do的比例相加为1。

​

​

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-12 20:43:31

你只需要绘制转置矩阵就能得到你想要的。

所以这个:

代码语言:javascript
复制
plotmat(t(transitionMatrix),relsize=0.75)

会玩这个把戏

票数 1
EN

Stack Overflow用户

发布于 2016-04-12 18:46:00

顶部图表上的数字表示进入目标状态的金额。进入状态的所有行的总数加为1。在底部的地块上,离开先前状态的所有行的总数加为1。值可以任意计算,但应标记这些图以显示正在显示的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36581441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档