【发布时间】:2013-04-25 17:46:18
【问题描述】:
我首先使用以下代码生成 500 个在 0 和 1 之间均匀分布的随机数的样本:
set.seed(1234)
X<-runif(500, min=0, max=1)
现在,我需要编写一个伪代码,为 MC 模拟生成 10000 个 N=500 的样本,计算我新创建的 X 的平均值,并将迭代次数和平均值存储在结果对象中。我从来没有尝试过,到目前为止我有这个:
n.iter <-(10000*500)
results <- matrix (0, n.iter, 4)
最后,一旦完成,我将运行它,然后获取累积样本均值的中值、均值和最小/最大值,并将它们保存到名为 MC.table 的数据帧中。 (还要注意,上面,我不知道为什么矩阵代码中有一个“4”——我正在研究前面的例子)。任何建议或帮助将不胜感激。
编辑:我有一个可能有用的例子,但我不太明白它是怎么回事,所以请详细说明它的有效性:
Ni <- 10000
n <- 500
c <- 0
for (i in n){
for (j in 1:Ni){
c <- c+ 1
d <- data.frame (x= , y= )
results [c,1] <- c
results [c,2] <- j
results [c,3] <- i
results [c,4] <- something( d$x, d$y)
rm (d) } }
如果你能花时间解释这意味着什么,那对我有很大帮助!谢谢!
【问题讨论】:
-
您需要很好地掌握 R 中的数据结构和“for 循环”。我从 Matloff 的 R for Programmers 中学到了很多东西:heather.cs.ucdavis.edu/~matloff/R/RProg.pdf
-
谢谢,我将不得不对此进行更多研究。我是一个认真的 R 初学者,我的教授在对材料进行了一次讲座并使用 SAS 参考材料后让我们进行 MC 模拟。如果我尝试过,我不会再迷失了!
-
编辑您的问题并添加详细信息。
-
我认为你在正确的轨道上。通往同一个目的地的道路有很多。如果与下面的代码进行比较(出于学习 R 的目的),我将内部 for 循环替换为函数“sample”。
标签: r montecarlo