R:运行马尔可夫链模拟时,概率错误的数量不正确

时间:2014-02-20 20:08:13

标签: r simulation markov-chains

这是“用R分析棒球数据”的第9章,试图模拟在半局中得分的比赛;

simulate<-function(P,R,start=1){
s<-start; path<-NULL; runs<-0
while(s<25){
s.new<-sample(1:25, 1, prob=P[s, ])
path<-c(path, s.new)
runs<-runs + R[s, s.new]
s<-s.new
}
runs
}

这与本书中的代码完全相同。当我尝试使用以下代码运行它时,我收到以下错误;

  

RUNS&LT; -replicate(10000,模拟(tmatrix,R))

sample.int中的错误(长度(x),大小,替换,概率):   不正确的概率数

在Rstudio中单击“rerun with debug”指出以下行;

s.new<-sample(1:25, 1, prob=P[s, ])

这是唯一有意义的事情,因为它有概率数量的问题。关于如何改变它的任何想法?

1 个答案:

答案 0 :(得分:0)

在您的代码中,s取1到25之间的任何值 - sample(1:25, ....

因此,为了使P[s,]起作用,它需要(至少)25行。您将此矩阵传递给simulate函数。因此,检查它的尺寸

dim(tmatrix)