Rの時系列の二次変動を計算するために、現在のポイントと最後のxポイントの対数リターンの二乗をすべてのポイントで合計したいと思います。
次のように入力して、py の対数リターンの 2 乗を作成できることを知っています。
diff(log(py))^2
ただし、二次変動を構築するために、最後の5ポイントをすべてのポイントで合計する時系列を構築するにはどうすればよいですか?
Rの時系列の二次変動を計算するために、現在のポイントと最後のxポイントの対数リターンの二乗をすべてのポイントで合計したいと思います。
次のように入力して、py の対数リターンの 2 乗を作成できることを知っています。
diff(log(py))^2
ただし、二次変動を構築するために、最後の5ポイントをすべてのポイントで合計する時系列を構築するにはどうすればよいですか?
embed
と組み合わせると、rowSums
必要なものが得られます。
cbind(
AirPassengers,
sum5=c(rep(NA, 4), rowSums(embed(AirPassengers, 5)))
)
AirPassengers sum5
Jan 1949 112 NA
Feb 1949 118 NA
Mar 1949 132 NA
Apr 1949 129 NA
May 1949 121 612
Jun 1949 135 635
Jul 1949 148 665
...
何をするかembed
は、初期ベクトルのラグ値を持つ行列を作成することです:
embed(AirPassengers, 5)
[,1] [,2] [,3] [,4] [,5]
[1,] 121 129 132 118 112
[2,] 135 121 129 132 118
[3,] 148 135 121 129 132
[4,] 148 148 135 121 129
[5,] 136 148 148 135 121
[6,] 119 136 148 148 135
[7,] 104 119 136 148 148
[8,] 118 104 119 136 148
...
rowSums
この行列の行に対して、またはその他の操作を使用できます。