R 基于模拟查询的马尔可夫链概率
我试着在R中画一个图,画出不同k值的马尔可夫链中,在最后一个状态之前到达第一个状态的概率。但在绘图时,如果我只得到k的最终值,而不是1到17的所有k 问题是: 对于p=0.5和q=0.1,生成代码以估计在最终状态之前命中状态1的概率,对于k=1,…,15。根据k生成一个估计图。其中k=过渡段的尺寸 有人能看出我的错误吗R 基于模拟查询的马尔可夫链概率,r,probability,markov-chains,markov,R,Probability,Markov Chains,Markov,我试着在R中画一个图,画出不同k值的马尔可夫链中,在最后一个状态之前到达第一个状态的概率。但在绘图时,如果我只得到k的最终值,而不是1到17的所有k 问题是: 对于p=0.5和q=0.1,生成代码以估计在最终状态之前命中状态1的概率,对于k=1,…,15。根据k生成一个估计图。其中k=过渡段的尺寸 有人能看出我的错误吗 for(k in 1:17) { p <- 0.5 q <- 0.1 P <- matrix (0, nrow = k, ncol = k,
for(k in 1:17)
{ p <- 0.5
q <- 0.1
P <- matrix (0, nrow = k, ncol = k, byrow = TRUE)
for (i in 1:k)
{ for (j in 1:k)
{ if (i == 1 && i == j)
{ P[i,j] <- 1
}
else if (i == k && i == j)
{ P[i,j] <- 1
}
else if (i == j)
{ P[i,j] <- p*(1-q)
}
else if (j == k && i != 1)
{ P[i,j] <- q
}
else if (i == j+1 && i != k)
{ P[i,j] <- (1-p)*(1-q)
}
}
}
P
trials <- 1000
hits <- 0 #counter for no. of hits
for (i in 1:trials)
{ i <- 1 #no. of steps
while(X[i] > 1 && X[i] < k)
{ Y <- runif(1) #uniform samples
p1 <- P[X[i],] #calculating the p-value
p1 <- cumsum(p1)
# changes in the chain
if(Y <= p1[1])
{ X[i+1] = 1}
else if(Y <= p1[2])
{ X[i+1] = 2}
else if(Y <= p1[3])
{ X[i+1] = 3}
else if(Y <= p1[4])
{ X[i+1] = 4}
else if(Y <= p1[5])
{ X[i+1] = 5}
else if(Y <= p1[6])
{ X[i+1] = 6}
else if(Y <= p1[7])
{ X[i+1] = 7}
else if(Y <= p1[8])
{ X[i+1] = 8}
else if(Y <= p1[9])
{ X[i+1] = 9}
else if(Y <= p1[10])
{ X[i+1] = 10}
else if(Y <= p1[11])
{ X[i+1] = 11}
else if(Y <= p1[12])
{ X[i+1] = 12}
else if(Y <= p1[13])
{ X[i+1] = 13}
else if(Y <= p1[14])
{ X[i+1] = 14}
else if(Y <= p1[15])
{ X[i+1] = 15}
else if(Y <= p1[16])
{ X[i+1] = 16}
else if(Y <= p1[17])
{ X[i+1] = 17}
i <- i+1
}
if(X[i]==1)
{ hits <- hits+1}
else
{ hits <- hits+0}
}
Probability <- hits/trials
for(1:17中的k)
{p我认为你的主要错误可能是陈述
i <- 1 #no. of steps
i我认为你的主要错误可能是陈述
i <- 1 #no. of steps
i这是一个真正的语言代码。这是一个R代码。对不起,忘了放它。这是一个真正的语言代码。这是一个R代码。对不起,忘了放它