【问题标题】:Incorrect Number of probabilities simulating a Markov chain模拟马尔可夫链的概率数不正确
【发布时间】:2013-04-27 15:17:46
【问题描述】:

我的转移概率矩阵是这样的

             BP          IP             SP 


BPBP     0.4586757     0.3772354     0.1640889

IPBP     0.3489484     0.4746654     0.1763862

SPBP     0.3756522     0.4162319     0.2081159

BPIP     0.3646061     0.4640000     0.1713939

IPIP     0.2666122     0.5654956     0.1678922

SPIP     0.3054187     0.4860427     0.2085386

BPSP     0.4125561     0.3974215     0.1900224

IPSP     0.2974337     0.5069415     0.1956247

SPSP     0.3576642     0.4333942     0.2089416

从中模拟一阶 MC 的代码是

  function(trans,initprob,N)
  {
  BrokerPosition <- c("BP", "IP", "SP")
  mysequence<-character()
  firstposition <- sample(BrokerPosition, 1, rep=TRUE, prob=initprob)
  mysequence[1]   <- firstposition
  for (i in 2:N){
   prevposition <- mysequence[i-1]
   probabilities  <- trans[,prevposition]
   BPosition<- sample(BrokerPosition, 1, rep=TRUE, prob=probabilities)
   mysequence[i]  <- BPosition
                }
  return(mysequence)
  } 

但是由于这是一个非方阵,我得到一个概率不匹配的错误,知道如何解决这个问题

【问题讨论】:

    标签: r markov-chains markov


    【解决方案1】:

    你在错误的方向使用你的转换矩阵: 试试

    trans[ paste( mysequence[c(i-2,i-1)], collapse="" ), ]
    

    另一种方法是将您的二阶马尔可夫链转换为一阶: 例如,之后的状态 IPBP 将是 BPIP、BPBP、BPSP(而其他 IP* 和 SP* 的概率为零)。 转移矩阵是一个 9*9 的矩阵,有很多零。

    【讨论】:

    • 嗨,你的第一个建议是将两个状态连接成一个状态,但我想做的是使用 t-1 和 t-2 的状态来估计 t 的可能状态,所以输出将像 BP->IP->SP->SP->IP 等这样的一阶 MC,如果理解你的第二个建议,因为一些转换概率变为零,这不会使 MC 非遍历
    • function(trans,initposition,N) 987654323 mysequence&lt;-character() 987654325 index&lt;-grep(Firstposition,row.names(trans)) 987654327 probabilities[j]&lt;-c(trans[index,j]) 987654329 for(i in 1:N){ 987654331 mysequence[i]&lt;-BPosition`}`return(mysequence) 987654334 @ `,
    • (我的答案中忘记了逗号,这使得它不清楚。)要从您的马尔可夫链进行模拟,您需要条件概率P[ x[n+1] | x[n]=a, x[n-1]=b ]:对于ab 给出,那是您的转换矩阵中的一行(您正在提取列)。与我最初写的相反,在将马尔可夫链转换为一阶链之后,它不是块对角链——它的零点与块对角矩阵一样多,但位置不同。特别是,它仍然是遍历的。
    猜你喜欢
    • 2023-03-20
    • 2018-03-25
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 2019-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多