Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从模拟中寻找条件概率和联合概率_R_Markov Chains_Markov - Fatal编程技术网

R 从模拟中寻找条件概率和联合概率

R 从模拟中寻找条件概率和联合概率,r,markov-chains,markov,R,Markov Chains,Markov,考虑状态空间S={1,2}和转移矩阵的马尔可夫链 初始分布α=1/2,1/2 假设模拟的源代码如下所示: alpha <- c(1, 1) / 2 mat <- matrix(c(1 / 2, 0, 1 / 2, 1), nrow = 2, ncol = 2) chainSim <- function(alpha, mat, n) { out <- numeric(n) out[1] <- sample(1:2, 1, prob = alpha)

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

初始分布α=1/2,1/2

假设模拟的源代码如下所示:

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

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
}
以下各项的价值是什么

PX1=1,X3=1

PX5=2 | X0=1,X2=1

例2

我试了以下方法:

平均sim[4,]==1&&sim[2,]==1 ? c1,2*平均值[2,] 什么是2?其余的我说得对吗


请解释您的回答。

关于1,您几乎是正确的:无论您使用&&还是&,都存在差异,请参见

应该是

mean(sim[1 + 1, ] == 1 & sim[1 + 3, ] == 1)
那么2由

mean(sim[1 + 5, sim[1 + 0, ] == 1 & sim[1 + 2, ] == 1] == 2)
如果条件事件{X0=1,X2=1}未出现在模拟中,则可能会得到NaN

最后,第3点是

mean(sim[1 + 2, ])
因为期望值的自然估计量只是样本平均值

利用问题结构,状态2是吸收状态。X1=1和X3=1的唯一方法是,如果它从1开始,并且在每个中间步骤中,它都会继续访问状态1。因此,答案是0.54=0.0625。 在模拟方面,而不是

mean(sim[4, ] == 1 && sim[2, ]== 1
应该是

mean(sim[4, ] == 1 & sim[2, ]== 1
&&仅检查第一个组件

对于第二部分,一种可能的方法是注意 PX5=2 | X0=1,X2=1=PX5=2,X0=1,X2=1/PX0=1,X2=1

然后你可以先分别估计分子和分母,然后计算比率

或者,PX5=2 | X0=1,X2=1=PX5=2 | X2=1=PX3=2 | X0=1

对于第三个问题,EX2是一个单一的数字,它不是一个向量。可通过meansim[3,] @user366312,meansim[2]只给出一个数字,而c1,2是一个向量。即使meansim[2]是一个向量,也需要对结果求和。而且,在你的结果中并不总是有一和二。解决方案的正确版本应为sumas.numericnamestablesim[2,]*tablesim[2,]/10。最后,您需要第3行而不是第2行。
mean(sim[4, ] == 1 && sim[2, ]== 1
mean(sim[4, ] == 1 & sim[2, ]== 1