从动物园时间序列对象中取代替换

时间:2013-02-12 13:14:07

标签: r random time-series zoo

我正在尝试创建一个套袋算法。 为此我需要从整个时间序列中绘制随机块。 我创建了一个包含随机块绘制的索引向量,但是 当我想在我的动物园时间序列中应用它时,我得到了

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 = blocksize,b =块数(因此m * b = n)。 Ypretest和Xpretest被初始化为动物园(但我也尝试了其他各种类型,也没有成功)

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]

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

这种替换的重新采样与R中的时间序列对象并不完全兼容,其中具有相同时间戳的观察可能会导致问题。鉴于您的机器学习算法工作向量和矩阵,我会使用它们。您可以完全删除动物园对象,或者在装袋之前将其转换。