微调马尔可夫链

时间:2016-04-13 00:32:42

标签: 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

如何顺时针旋转90度,并调整自定向圆形箭头,使它们位于绘图的中线轴上,彼此相对,而不是像现在一样部分位于侧面?

1 个答案:

答案 0 :(得分:0)

可以通过操纵self.shiftxself.shifty值来更改圆形箭头。圆圈上的箭头位置由self.arrpos确定,但要注意,角度是以弧度而非度数来度量的。可以通过更改状态的顺序来切换框标签:states<-c("sun","rain")而不是states<-c("rain","sun")。仍试图弄清楚如何将整个地块旋转90度。