2

我有一系列行为状态(对于单个移动的动物),每个都有相关的持续时间,并且有兴趣生成一个保留原始属性的合成状态序列(特别是状态变化概率和停留时间)时间分布)。

然而,对停留时间分布的初步调查表明它们不是几何分布的,所以我认为我应该拟合一个半马尔可夫模型。

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,可以将状态更改序列拟合到常规马尔可夫模型(使用“markovchain”包中的“markovchainFit”),然后模拟合成状态更改序列(使用“rmarkovchain”),但似乎对于马尔可夫模型,没有明显的方法可以做同样的事情。

4

0 回答 0