马尔可夫链中的比例加起来不等于 1
Proportions in Markov chain do not add up to 1
我有以下两态马尔可夫链:
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)
产生以下情节:
我觉得"sun"和"rain"之间的箭头应该指向相反的方向,否则各自的比例加起来不等于1。
为了比较,你可以在网上看看这个类似的图,其中do的比例加起来是1
有什么想法吗?
上图的数字表示进入目标状态的数量。进入该状态的所有行的总数加起来为 1。在底部图上,离开先前状态的所有行的总数加为 1。可以通过任何一种方式计算值,但应标记图以显示正在显示的内容.
你只需要绘制转置矩阵就可以得到你需要的东西。
所以这个:
plotmat(t(transitionMatrix),relsize=0.75)
会玩的
我有以下两态马尔可夫链:
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)
产生以下情节:
我觉得"sun"和"rain"之间的箭头应该指向相反的方向,否则各自的比例加起来不等于1。
为了比较,你可以在网上看看这个类似的图,其中do的比例加起来是1
有什么想法吗?
上图的数字表示进入目标状态的数量。进入该状态的所有行的总数加起来为 1。在底部图上,离开先前状态的所有行的总数加为 1。可以通过任何一种方式计算值,但应标记图以显示正在显示的内容.
你只需要绘制转置矩阵就可以得到你需要的东西。
所以这个:
plotmat(t(transitionMatrix),relsize=0.75)
会玩的