从模拟中寻找条件概率和联合概率
Finding conditional and joint probabilities from a simulation
考虑具有状态 space 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
}
假设以下是5步马尔可夫链模拟重复10次的结果:
> 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(X1 = 1, X3 = 1)
P(X5 = 2 | X0 = 1, X2 = 1)
E(X2)
我试过如下:
mean(sim[4, ] == 1 && sim[2, ]== 1)
- ?
c(1,2) * mean(sim[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 = 的情况下,您可能会得到 NaN
1} 没有出现在您的模拟中。
最后,第3点是
mean(sim[1 + 2, ])
因为期望值的自然估计量只是样本平均值。
- 利用问题结构,状态2是吸收状态。 X1=1 和 X3=1[= 的唯一方法57=] 是如果它从 1 开始,并且在每个中间步骤中,它一直访问状态 1。因此,答案是 (0.5)4=0.0625.
在模拟方面,而不是
mean(sim[4, ] == 1 && sim[2, ]== 1
应该是
mean(sim[4, ] == 1 & sim[2, ]== 1
&& 只检查第一个组件。
- 对于第二部分,一种可能的方法是注意
P(X5=2|X0=1, X2=1)=P(X5=2,X0=1,X2=1)/P(X0=1, X2=1)
其中你可以先分别估算出分子和分母,然后计算比值。
或者,P(X5=2|X0=1, X 2=1)=P(X5=2| X2=1)=P(X3=2| X0=1)
- 对于第三题,E(X2)是一个单数,不是向量。可以通过
mean(sim[3,])
来估算
考虑具有状态 space 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
}
假设以下是5步马尔可夫链模拟重复10次的结果:
> 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(X1 = 1, X3 = 1)
P(X5 = 2 | X0 = 1, X2 = 1)
E(X2)
我试过如下:
mean(sim[4, ] == 1 && sim[2, ]== 1)
- ?
c(1,2) * mean(sim[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 = 的情况下,您可能会得到 NaN
1} 没有出现在您的模拟中。
最后,第3点是
mean(sim[1 + 2, ])
因为期望值的自然估计量只是样本平均值。
- 利用问题结构,状态2是吸收状态。 X1=1 和 X3=1[= 的唯一方法57=] 是如果它从 1 开始,并且在每个中间步骤中,它一直访问状态 1。因此,答案是 (0.5)4=0.0625.
在模拟方面,而不是
mean(sim[4, ] == 1 && sim[2, ]== 1
应该是
mean(sim[4, ] == 1 & sim[2, ]== 1
&& 只检查第一个组件。
- 对于第二部分,一种可能的方法是注意
P(X5=2|X0=1, X2=1)=P(X5=2,X0=1,X2=1)/P(X0=1, X2=1)
其中你可以先分别估算出分子和分母,然后计算比值。
或者,P(X5=2|X0=1, X 2=1)=P(X5=2| X2=1)=P(X3=2| X0=1)
- 对于第三题,E(X2)是一个单数,不是向量。可以通过
mean(sim[3,])
来估算