在R中创建跟踪图

在R中创建跟踪图,r,matrix,plot,R,Matrix,Plot,我对使用R相当陌生,所以我肯定我可能会犯一些新手错误,但我似乎不知道如何为这个家庭作业问题创建跟踪图 问题是: 在任何一天,加里要么高兴(C),要么一般(S),要么闷闷不乐(G)。如果他今天心情愉快,那么明天他将是C、S或G,概率分别为0.5、0.4、0.1。如果他今天是这样,那么他将是概率为0.3、0.4、0.3的C、S或G。如果他今天闷闷不乐,他将是C、S或G,概率为0.2、0.3、0.5。这可用于生成具有以下转移矩阵的三状态马尔可夫链: [0.5 0.4 0.1 0.3 0.4

我对使用R相当陌生,所以我肯定我可能会犯一些新手错误,但我似乎不知道如何为这个家庭作业问题创建跟踪图

问题是:

在任何一天,加里要么高兴(C),要么一般(S),要么闷闷不乐(G)。如果他今天心情愉快,那么明天他将是C、S或G,概率分别为0.5、0.4、0.1。如果他今天是这样,那么他将是概率为0.3、0.4、0.3的C、S或G。如果他今天闷闷不乐,他将是C、S或G,概率为0.2、0.3、0.5。这可用于生成具有以下转移矩阵的三状态马尔可夫链:

[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)
这是我们教授给我们的轨迹图示例


您使用的是什么软件包?它看起来不像
markovchainSequence
traceplot
来自同一个包,因此它们可能不兼容。我一直在使用Markov链,我尝试使用mcmcplot和coda,因为有人在不同的网站上建议它,但现在我想我只是把自己和我所有的不同包搞混了。是的,我想这就是发生的事情。也许最好描述一下你希望最终的情节是什么样子。你可以很容易地从markovchainSequence对象中提取你需要的数据。如果有帮助的话,我已经添加了教授给我们的traceplot的图片作为例子。你的trace plot就像一个感兴趣的参数采样历史图,对吗?比如y(状态值)~x(迭代)。但在你的例子中,你就像是在分类图上取样——为什么不试着做一个普通的图,
plot(x=1:length(out),y=factor(out),type=“n”)
;然后,
行(x=1:length(outs),y=factor(outs))
这应该会告诉您在迭代过程中值是如何变化的?它看起来不像
markovchainSequence
traceplot
来自同一个包,因此它们可能不兼容。我一直在使用Markov链,我尝试使用mcmcplot和coda,因为有人在不同的网站上建议它,但现在我想我只是把自己和我所有的不同包搞混了。是的,我想这就是发生的事情。也许最好描述一下你希望最终的情节是什么样子。你可以很容易地从markovchainSequence对象中提取你需要的数据。如果有帮助的话,我已经添加了教授给我们的traceplot的图片作为例子。你的trace plot就像一个感兴趣的参数采样历史图,对吗?比如y(状态值)~x(迭代)。但在你的例子中,你就像是在分类图上取样——为什么不试着做一个普通的图,
plot(x=1:length(out),y=factor(out),type=“n”)
;然后,
行(x=1:length(outs),y=factor(outs))
这应该会告诉您在迭代过程中值是如何变化的。
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