【发布时间】:2011-07-21 20:02:12
【问题描述】:
我在 R 中使用引导包运行了一个相当大的引导程序。
当我第一次运行 boot() 时,我得到了这个:
Error: cannot allocate vector of size 2.8 Gb
因此,为了获得引导对象,我必须使用“simple=TRUE”,它告诉 boot() 在开始时不要分配所有内存(根据 ?boot)。虽然花了几分钟,但效果很好。
现在我需要得到置信区间:
> boot.ci(vpe.bt, type="bca", simple=TRUE)
Error: cannot allocate vector of size 2.8 Gb
同样的问题!但根据 ?boot.ci,没有可以与此功能一起使用的“simple=TRUE”标志(我已经尝试过)。
那么,有没有办法使用 boot.ci() 来解决这个问题?
如果没有,我该怎么做才能增加它可以使用的内存量?
【问题讨论】:
-
对不起,我应该提一下我在 Ubuntu 11.04 中运行它。
-
您可以通过键入 memory.limit(4000) 来增加内存,例如,这会将 R 的内存增加到 4Gb。显然,您不能超过自己计算机的内存限制。至于你的错误,我不熟悉这个功能,但也许你做了太多的引导复制?当我尝试创建太大的矩阵时,我看到了这个错误。
-
也许这应该放在 StackOverflow 中?问题是关于 R 编程而不是统计数据。
-
@Alan,据我从 R 代码中可以看出,这可能是在
boot.ci中使用type = "bca"导致了大内存分配。我只是简单地看了一下,但尝试另一个type参数,看看你是否还有分配问题。 -
您至少可以尝试
debug(boot.ci),然后再试一次,看看问题出现在boot.ci的确切位置。
标签: r statistics-bootstrap large-data