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 (担当者数) を持つ「重要度配列」を作成する必要があります。このような行列の少なくとも 2 つのコピーを処理するのに十分なメモリがない場合、関数は機能しません。

ただし、正規ベース (type='normal') およびパーセンタイル ベースの信頼区間 (type='percent') は機能するはずです。

于 2012-01-02T12:20:47.607 に答える
1

boot.ci についてはわかりませんが、私の 32 ビット Ubuntu システムでは、大きなベクターで同様の問題が発生しました。32 ビット システムには、64 ビット システムで解決される限られたアドレス空間があります。

64 ビットにはいくつかの欠点があります。主な欠点は、まだ標準ではないことと、すべてのソフトウェア プロバイダーがソフトウェアの 64 ビット コンパイル バージョンを持っているわけではないことです。 -64 ビット版。これは通常、64 ビット システムで 32 ビット ソフトウェアを実行できるようにするライブラリをインストールすることで修正できます (ただし、パフォーマンスは低下します)。

これらのリソースは、おそらく問題をさらに明らかにする可能性があります。

于 2011-07-22T19:50:19.770 に答える