【发布时间】:2017-11-23 01:03:18
【问题描述】:
因此,我正在使用 R 模拟马尔可夫链,其中状态为晴天 (S)、阴天 (C) 和下雨天 (R),并希望找出晴天之后连续两个阴天。
这是我目前所拥有的:
P = matrix(c(0.7, 0.3, 0.2, 0.2, 0.5, 0.6, 0.1, 0.2, 0.2), 3)
print(P)
x = c("S", "C", "R")
n = 10000
states = character(n+100)
states[1] = "C"
for (i in 2:(n+100)){
if (states[i-1] == "S") {cond.prob = P[1,]}
else if (states[i-1] == "C") {cond.prob = P[2,]}
else {cond.prob = P[3,]}
states[i]=sample(x, 1, prob = cond.prob )
}
print(states[1:100])
states = states[-(1:100)]
head(states)
tail(states)
states[1:200]
最后,我留下了一系列状态。我希望将此序列分成三个状态组(对于链中的三天),然后计算这三个等于 SCC 的状态的数量。
我对如何做这件事一无所知,任何帮助将不胜感激!
【问题讨论】:
标签: r probability markov-chains