我使用R相当新,所以我确定我可能犯了一些新手的错误,但我似乎无法弄清楚如何创建一个跟踪图这个家庭作业问题。
以下是问题:
在任何一天,加里都要开朗(C),马马虎虎(S)或闷闷不乐(G)。如果他今天很开心,那么明天他将成为C,S或G,各自的概率为0.5,0.4,0.1。如果他今天是如此,那么他将是C,S或G,概率为0.3,0.4,0.3。如果他今天闷闷不乐,他将是C,S或G,概率为0.2,0.3,0.5。这可以用于制作具有以下转移矩阵的3状态马尔可夫链:
[0.5 0.4 0.1
0.3 0.4 0.3
0.2 0.3 0.5]
让链运行50次并为R中的这50个步骤创建一个跟踪图。您可以自己编写代码或找到合适的R包来模拟这个。
我已经制作了矩阵并且我认为我已经运行了50次链,但无法使traceplot()函数正常工作。
library(coda)
library(markovchain)
p <- c(0.5, 0.4, 0.1, 0.3, 0.4, 0.3, 0.2, 0.3, 0.5)
PP <- matrix(p, 3, 3, byrow = TRUE)
mc1 <- new("markovchain", transitionMatrix = PP, states = c("C", "S", "G"), name = "Weather Forecast")
outs <- markovchainSequence(n = 50, markovchain = mc1, t0 = "C")
my_outs <- mcmc(outs)
traceplot(my_outs, smooth = FALSE, col = 1:6, type = "1", xlab = "Iterations", ylab = "oxygen", xlim = 50, ylim = 1)
这是我一直在犯的错误,我不知道我需要做些什么才能让它发挥作用或我之前做出的其他错误。
Error in plot.window(...) : invalid 'xlim' value
In addition: Warning messages:
1: In xy.coords(x, y, xlabel, ylabel, log = log) :
NAs introduced by coercion
2: In xy.coords(x, y, xlabel, ylabel, log) : NAs introduced by coercion
这是我们教授给我们的示例跟踪图