マイナスのリターンを年換算しようとしていますが、問題が発生しています。xts シリーズがあり、次のコードを使用しています。
x = rebalReturns[,"LBND/SBND (PS DB 25+ Year T-Bond)"]
round((tail(cumprod(na.omit(x) + 1) - 1,1)), 4)^round(1/length(na.omit(x)),4)
これは「NaN」を返します。
2 つの半分を別々に計算すると、次のようになります。
> round((tail(cumprod(na.omit(x) + 1) - 1,1)), 4)
LBND/SBND (PS DB 25+ Year T-Bond)
2015-04-02 -0.2274
> round(252/length(na.omit(x)),4)
[1] .2184
>
これを手動で計算すると、意味のある結果が得られます。
> -.2274^.2184
[1] -0.7236408
>
負の数を使用した累乗の周りにいくつかのペッカディロがあると思いますが、なぜそれは xts オブジェクトではなく手動で機能するのですか?? これを行う方法はありますか?
ありがとう!!