1

マイナスのリターンを年換算しようとしていますが、問題が発生しています。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 オブジェクトではなく手動で機能するのですか?? これを行う方法はありますか?

ありがとう!!

4

1 に答える 1

2

私は明るくない。これは、リターンを年率化する方法ではありません。(そして、私は操作の順序を誤解していました。(Dason さん、ありがとう))

式は次のようになります。

round(1 + (tail(cumprod(na.omit(x) + 1) - 1,1)), 4)^round(252/length(na.omit(x)),4) - 1

そして、これはうまく機能します。誰かの努力を無駄にしてしまったことをお詫びします。いつものように、あなたの助けに感謝します!

于 2015-04-06T14:16:23.037 に答える