0

Rの時系列の二次変動を計算するために、現在のポイントと最後のxポイントの対数リターンの二乗をすべてのポイントで合計したいと思います。

次のように入力して、py の対数リターンの 2 乗を作成できることを知っています。

diff(log(py))^2

ただし、二次変動を構築するために、最後の5ポイントをすべてのポイントで合計する時系列を構築するにはどうすればよいですか?

4

1 に答える 1

3

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この行列の行に対して、またはその他の操作を使用できます。

于 2012-07-30T10:07:32.303 に答える