【问题标题】:Manual simulation of Markov Chain in RR中马尔可夫链的手动模拟
【发布时间】:2019-09-13 15:17:25
【问题描述】:

考虑具有状态空间的马尔可夫链S = {1, 2},转移矩阵

和初始分布α = (1/2, 1/2)

  1. 模拟马尔可夫链的5个步骤(即模拟X0X1、. . . , X5).重复模拟 100 次。使用您的模拟结果来解决以下问题。

    • 估计 P(X1 = 1|X0 = 1)。将您的结果与确切的概率进行比较。

我的解决方案:

# returns Xn 
func2 <- function(alpha1, mat1, n1) 
{
  xn <- alpha1 %*% matrixpower(mat1, n1+1)

  return (xn)
}

alpha <- c(0.5, 0.5)
mat <- matrix(c(0.5, 0.5, 0, 1), nrow=2, ncol=2)
n <- 10


for (variable in 1:100) 
{
   print(func2(alpha, mat, n))
}

如果我运行此代码一次或 100 次(如问题陈述中所述)有什么区别?

我怎样才能从这里找到条件概率?

【问题讨论】:

    标签: r statistics probability markov-chains


    【解决方案1】:

    alpha <- c(1, 1) / 2
    mat <- matrix(c(1 / 2, 0, 1 / 2, 1), nrow = 2, ncol = 2) # Different than yours
    

    是初始分布和转移矩阵。您的 func2 只找到第 n 步分布,这是不需要的,并且不模拟任何东西。相反,我们可以使用

    chainSim <- function(alpha, mat, n) {
      out <- numeric(n)
      out[1] <- sample(1:2, 1, prob = alpha)
      for(i in 2:n)
        out[i] <- sample(1:2, 1, prob = mat[out[i - 1], ])
      out
    }
    

    其中out[1] 仅使用初始分布生成,然后对于后续项,我们使用转移矩阵。

    那么我们有

    set.seed(1)
    # Doing once
    chainSim(alpha, mat, 1 + 5)
    # [1] 2 2 2 2 2 2
    

    因此链从 2 开始并由于指定的转换概率而卡在那里。

    我们做了 100 次

    # Doing 100 times
    sim <- replicate(chainSim(alpha, mat, 1 + 5), n = 100)
    rowMeans(sim - 1)
    # [1] 0.52 0.78 0.87 0.94 0.99 1.00
    

    最后一行显示了我们以状态 2 而不是 1 结束的频率。这给出了为什么 100 次重复更能提供更多信息的原因之一:我们在状态 2 中只进行了一次模拟,同时重复100 次我们探索了更多可能的路径。

    然后可以找到条件概率

    mean(sim[2, sim[1, ] == 1] == 1)
    # [1] 0.4583333
    

    而真实概率为 0.5(由转移矩阵的左上条目给出)。

    【讨论】:

    • set.seed(1) 这里有什么影响?随机数在哪里生成?
    • @user366312,它使模拟结果可重现——如果你运行这段代码,包括set.seed(1),你会得到相同的数字。使用1 以外的任何数字也可以,它将“修复”随机生成器处于不同的状态。见?set.seed
    • @user366312, sample(0:1, 1, prob = alpha) 生成初始编号,而sample(0:1, 1, prob = mat[1 + out[i - 1], ]) 生成以下所有编号。
    • 所以,本质上,seed() 正在影响sample()?
    • @user366312,完全正确。
    猜你喜欢
    • 2019-09-14
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    相关资源
    最近更新 更多