0

資産リターンの 4 年間の時系列を取得し、6 か月のキャリブレーション期間で分散共分散行列を推定するために、ローリング ウィンドウを実行しようとしています。全体として、40 の共分散行列を取得する必要があります。以下に書かれたコードを実行しようとしましたが、間違っています。この R コードを変更するにはどうすればよいですか?

data 

window.size <- 180 #set the size of the window equal to 6 months
windows <- embed(1:nrow(data), window.size)
forApproach <- function(data, windows) {
  l <- vector(mode="list", length=nrow(windows))
  for (i in 1:nrow(data)) {
    l[[i]] <- cov(data[windows[i, ], ])
  }
}

20 日間にわたる 5 つの資産の収益を含むマトリックスをデータセットとして考えます

data <- matrix(rnorm(100), 20, 5) #data represents the returns of 5 assets over 20 days

5 日間にわたる収益の共分散行列を調整したいので、1、2、3、4、5 日を考慮します。次に、6、7、8、9、10 日を考慮して別の共分散行列を調整します。など、ローリング ウィンドウを使用します (ループ for を使用してこれを試みました)。

window.size <- 5

ただし、ウィンドウ サイズを 5 に設定すると、コードは最初のマトリックスでは 1、2、3、4、5 日を考慮しますが、2 番目のマトリックスでは、コードは 2、3、4、5、6 日を考慮します (6 日ではありません)。 、7、8、9、10 が必要です)。これは私の問題です。この「分割」を2日目から6日目に行うためにコードを変更する方法がわかりません。

4

1 に答える 1