4

私は R を初めて使用し、ブートストラップされた標準偏差 (sd) と関連する標準誤差を 30 観測ローリング ウィンドウ内で計算しようとしています。以下の関数は、sd だけが必要な場合に適切にローリング ウィンドウを実行します。しかし、ブート パッケージを使用してブートストラップ関数を追加すると、以下に示すエラーが発生します。ブートストラップの結果を正しいサイズではないベクトルに保存しようとしていることがわかりました。新しいマトリックスの行の各ウィンドウのブートストラップされた sd と関連する stderror だけを保存する方法について誰かアドバイスはありますか? 目標は、時系列に沿って各ウィンドウの sd と関連する 95% 信頼区間をプロットすることです。助けてくれてありがとう。

> head(data.srs)
    LOGFISH
1  0.8274083
2  1.0853433
3  0.8049845
4  0.8912097
5  1.3514569
6  0.8694499


###Function to apply rolling window

rollWin <- function(timeSeries,  windowLength) 
{
  data<-timeSeries
  nOut <- length(data[, 1]) - windowLength + 1
  out <- numeric(nOut)
  if (length(data[,1]) >= windowLength)
  {
    for (i in 1:nOut) 
      { 
      sd.fun <- function(data,d)sd(data[d], na.rm = TRUE)
      out[i] <- boot(data[i:(i + windowLength - 1), ], sd.fun, R=1000)
      }
  }
  return (list(result=out))
} 

###run rolling window function. ex. rollWin(data, windowlength)
a.temp<-rollWin(data.srs,30)


> warnings()
Warning messages:
1: In out[i] <- boot(data[i:(i + windowLength - 1), ], sd.fun,  ... :
  number of items to replace is not a multiple of replacement length
4

1 に答える 1