首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么是加速蒙特卡洛模拟的最好的技巧?

什么是加速蒙特卡洛模拟的最好的技巧?
EN

Stack Overflow用户
提问于 2009-09-10 05:45:44
回答 4查看 6.3K关注 0票数 7

每当我在S-Plus中运行大规模蒙特卡洛模拟时,我总是在等待它完成时长出胡须。

在R中运行蒙特卡洛模拟最好的技巧是什么?有没有以分布式方式运行进程的好例子?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-09-10 06:06:16

使用多核/机器的并行复制应该很简单,如果你只是使用并行独立复制,但要注意随机数生成器的常见缺陷(例如,如果使用当前时间作为种子,产生多个进程,每个进程一个RNG可能会产生相关的随机数,从而导致无效的结果-例如,this paper)

  • You可能想要使用variance reduction来减少所需复制的数量,即缩小所需样本的大小。可以在许多教科书中找到更高级的方差减少技术,例如在this one.

票数 11
EN

Stack Overflow用户

发布于 2009-09-10 18:58:26

重新分配你的向量!

代码语言:javascript
运行
复制
> nsims <- 10000
> n <- 100
> 
> system.time({
     res <- NULL
     for (i in 1:nsims) {
         res <- c(res,mean(rnorm(n)))
     }
 })
   user  system elapsed 
  0.761   0.015   0.783 
> 
> system.time({
     res <- rep(NA, nsims)
     for (i in 1:nsims) {
         res[i] <- mean(rnorm(n))
     }
 })
   user  system elapsed 
  0.485   0.001   0.488 
> 
票数 5
EN

Stack Overflow用户

发布于 2009-09-10 07:13:53

拉丁超立方体采样很容易应用,并且对结果有很大影响。基本上,您可以从均匀分布中获取拉丁超立方体样本(例如,使用lhs包中的randomLHS() ),然后使用qnorm(统一样本)将其转换为您想要的分布。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1403560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档