R使用高阶马尔可夫链生成随机样本

时间:2018-12-19 11:02:47

标签: r markov-chains markov-models clickstream

有没有一种方法可以从高阶马尔可夫链生成随机样本?我使用了包clickstream来估算二阶马尔可夫链,而我现在正尝试从中生成一个样本。我知道如何使用randomClickstreams函数从过渡矩阵中执行此操作,但这仅适用于一阶马尔可夫链。

这是一个可重现的示例,其中我们从过渡矩阵生成一个样本,然后在该样本上拟合一个二阶马尔可夫链:

trans_mat <- matrix(c(0, 0.2, 0.7, 0, 0.1,
                  0.2, 0, 0.5, 0, 0.3,
                  0.1, 0.1, 0.1, 0.7, 0,
                  0, 0.4, 0.2, 0.1, 0.3,
                  0, 0 , 0 , 0, 1), nrow = 5)


cls <- randomClickstreams(states = c("P1", "P2", "P3", "P4", "end"),
                          startProbabilities = c(0.5, 0.5, 0, 0, 0),
                          transitionMatrix = trans_mat,
                          meanLength = 20, n = 1000)

# fit 2nd order markov chain:
mc <- fitMarkovChain(clickstreamList = cls, order = 2,
                     control = list(optimizer = "quadratic"))

这由2个转换矩阵和2个lambda参数组成:

2nd order markov chain parameters

然后我该如何使用这些元素创建一个随机样本,例如10000次旅程?

0 个答案:

没有答案