考虑状态空间 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
}
假设以下是重复10次的5步马尔可夫链模拟的结果:
> sim
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 2 1 1 2 2 2 1 1 1 2
[2,] 2 1 2 2 2 2 2 1 1 2
[3,] 2 1 2 2 2 2 2 1 2 2
[4,] 2 2 2 2 2 2 2 1 2 2
[5,] 2 2 2 2 2 2 2 2 2 2
[6,] 2 2 2 2 2 2 2 2 2 2
以下各项的值是什么?
P(X 1 = 1,X 3 = 1)
P(X 5 = 2 | X 0 = 1,X 2 = 1)
E(X 2 )
我尝试了如下操作:
mean(sim[4, ] == 1 && sim[2, ]== 1)
c(1,2) * mean(sim[2, ])
会是(2)?我对其余的都正确吗?
请解释您的回答。
答案 0 :(得分:1)
您对1几乎是正确的:使用&&
还是&
有所不同,请参见
?`&&`
应该是
mean(sim[1 + 1, ] == 1 & sim[1 + 3, ] == 1)
然后2由
给出mean(sim[1 + 5, sim[1 + 0, ] == 1 & sim[1 + 2, ] == 1] == 2)
如果条件事件{X 0 = 1,X 2 = 1}中没有出现,您可能会得到NaN
模拟。
最后,第3点是
mean(sim[1 + 2, ])
因为期望值的自然估计值只是样本平均值。
答案 1 :(得分:0)
在模拟方面,而不是
mean(sim[4, ] == 1 && sim[2, ]== 1
应该是
mean(sim[4, ] == 1 & sim[2, ]== 1
&&仅检查第一个组件。
P(X 5 = 2 | X 0 = 1,X 2 = 1)= P(X 5 = 2,X 0 = 1,X 2 = 1)/ P(X 0 = 1,X < sub> 2 = 1)
然后您可以首先分别估计分子和分母,然后计算比率。
或者, P(X 5 = 2 | X 0 = 1,X 2 = 1)= P(X 5 = 2 | X 2 = 1)= P(X 3 = 2 | X 0 = 1)
mean(sim[3,])