我有一系列行为状态(对于单个移动动物),每个都有相关的持续时间,并且有兴趣产生一个合成状态序列,保留原始属性(特别是状态变化概率和停留时间分布。)
然而,对停留时间分布的初步调查表明它们不是几何分布的,所以我认为我应该适合半马尔可夫模型。
R套餐,' SemiMarkov'提供了以下可重复的示例,说明如何将半马尔可夫模型拟合到观察到的状态变化序列。 但是,我无法看到如何从拟合对象生成合成状态变化序列 - 这里,' fit1'。
library(SemiMarkov)
data(asthma)
## Definition of the model: states, names, possible transtions and waiting time distributions
states_1 <- c("1","2","3")
mtrans_1 <- matrix(FALSE, nrow = 3, ncol = 3)
mtrans_1[1, 2:3] <- c("E","E")
mtrans_1[2, c(1,3)] <- c("E","E")
mtrans_1[3, c(1,2)] <- c("E","E")
## semi-Markov model
fit1 <- semiMarkov(data = asthma, states = states_1, mtrans = mtrans_1)
print(fit1)
FWIW,可以将状态变化序列拟合到常规马尔可夫模型(使用&#39; markovchainFit&#39;在包&#39; markovchain&#39;中),然后模拟合成状态 - 改变序列(使用&#39; rmarkovchain&#39;),但似乎没有明显的方法为半 -Markov模型做同样的事情。