我有以下两种状态的马尔可夫链:
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。

有什么想法吗?
发布于 2016-04-12 20:43:31
你只需要绘制转置矩阵就能得到你想要的。
所以这个:
plotmat(t(transitionMatrix),relsize=0.75)会玩这个把戏
发布于 2016-04-12 18:46:00
顶部图表上的数字表示进入目标状态的金额。进入状态的所有行的总数加为1。在底部的地块上,离开先前状态的所有行的总数加为1。值可以任意计算,但应标记这些图以显示正在显示的内容。
https://stackoverflow.com/questions/36581441
复制相似问题