バギングアルゴリズムを作成しようとしています。このために、時系列全体からランダムなブロックを描画する必要があります。ランダム ブロック描画を含むインデックス ベクトルを作成しましたが、それを動物園の時系列に適用したい場合、
In zoo(rval, index(x)[i]) :
some methods for “zoo” objects do not work if the index entries in ‘order.by’ are not unique
エラー。サンプリングは置換を使用するため、同じタイムスタンプを持つ複数のエントリを取得します。どういうわけか、データをタイムスタンプを含まないマトリックスに変換しようとしましたが、実際にはうまくいきませんでした。また、動物園オブジェクトから警告を受け取らなかったコンソールで同じことを手動で試しましたが、エラーメッセージやそのようなものを抑制することを本当に回避したくありません。
これは問題のコードの一部です: n = サンプルサイズ、m = ブロックサイズ、b = ブロック数 (m*b=n)。Ypretest と Xpretest は Zoo として初期化されます (ただし、他のさまざまなタイプも試しましたが、どちらもうまくいきませんでした)
if (n%%m == 0) {
b <- n/m
while(tail(blockvector,n=1)+m < n) {
blockvector <- c(blockvector,tail(blockvector,n=1)+m)
}
randomvector <- sample(blockvector, b, replace=T)
for(i in 1:b) {
blockindex <- c(blockindex, randomvector[i]:(randomvector[i]+m-1))
}
Ypretest <- Y[blockindex]
Xpretest <- X[blockindex]
助言がありますか?