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

时间:2016-04-12 18:38:21

标签: r markov-chains

我有以下两州马尔可夫链:

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)

产生以下情节:

enter image description here

在我看来,&#34; sun&#34;之间的箭头。和&#34;下雨&#34;应指向相反的方向,否则各自的比例不会加1。

为了进行比较,您可以在线查看这个类似的情节,其中比例来自do <1 p

enter image description here

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

顶部图表中的数字表示进入目标状态的金额。进入该状态的所有行的总和加1.在底部图中,离开先前状态的所有行的总数加1。可以以任一方式计算值,但应标记图以显示正在显示的内容

答案 1 :(得分:1)

您只需绘制转置矩阵以获得所需内容。

所以这个:

plotmat(t(transitionMatrix),relsize=0.75)

将发挥作用