【问题标题】:Creating a string of specific length using Markov chain使用马尔可夫链创建特定长度的字符串
【发布时间】:2018-09-03 21:09:45
【问题描述】:

我正在尝试在 R 中模拟一个齐次有限状态马尔可夫链。我想在给定初始概率和转移概率矩阵的情况下获得某个特定长度的输出。这就是我目前所拥有的

 library(markovchain)
 words <- c("h", "e", "l", "o")

 ###Initial probability
 initial <- cbind(c(0.25,0.25,0.25,0.25))

# define the transition matrix (each row sums to 1)
transitions <-  rbind(c(0.1, 0.2, 0.3, 0.4),
                  c(0.1, 0.2, 0.3, 0.4),
                  c(0.1, 0.2, 0.3, 0.4),
                  c(0.1, 0.2, 0.3, 0.4))

rownames(transitions) <- colnames(transitions) <- words

library(markovchain)
markovChain <- new("markovchain", states=words, 
               transitionMatrix = transitions)

markovchainSequence(10, markovChain, t0="h")

但是,此代码未使用初始概率。我只声明 t0 的状态应该是 b。我如何在这里使用初始概率?

【问题讨论】:

  • t0="h" 替换为t0 = your_sampler。你看?您的“初始概率”很奇怪,为什么它只有两个数字?您不想对四个字母中的一个进行采样吗?
  • 没错。我在那里犯了一个错误。所以你的意思是我应该用 t0=initial 替换 'h'?
  • 感谢您指出这一点。我已经更正了。
  • 我的意思在@G5W的回答中给出:)

标签: r markov-chains


【解决方案1】:

您可以使用初始概率创建初始状态。

M0 = sample(words, 1,  prob=initial)
markovchainSequence(10, markovChain, t0=M0)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    相关资源
    最近更新 更多