1

我已经使用引导包在 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() 来解决这个问题?

而且,如果没有,我该怎么做才能增加它可以使用的内存量?

4

2 回答 2

3

在 R 中计算 bca(调整后的引导百分位数)置信区间需要创建一个“重要性数组”,其维度(观察次数)x(代表次数)。如果您没有足够的内存来处理此类矩阵的至少两个副本,则该函数将不起作用。

但是,基于正态的 (type='normal') 和基于百分位数的置信区间 (type='percent') 应该可以工作。

于 2012-01-02T12:20:47.607 回答
1

我不知道 boot.ci,但我在 32 位 Ubuntu 系统中遇到过类似的大型向量问题。32 位系统的地址空间有限,在 64 位系统中可以解决。

64 位有一些缺点,主要是它仍然不是标准的,而且不是每个软件提供商都有他们软件的 64 位编译版本,Flash 播放器是我听说的最后一个测试版-64 位版本。这通常可以通过安装一个库来修改,该库允许您在 64 位系统上运行 32 位软件(尽管会降低性能)。

这些资源可能会进一步阐明这个问题:

于 2011-07-22T19:50:19.770 回答