在R中具有负基数的指数不一致



我正试图按年计算负回报,但遇到了一个问题。我有一个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"。

如果我分别计算两半,我得到:

> 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对象??有办法做到这一点吗?

谢谢!!

我不聪明。这不是你按年计算回报的方式。(我误解了操作顺序。(谢谢,达森。)

公式应为:

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

这很好用。我为浪费任何人的努力而道歉,并一如既往地感谢你的帮助!

最新更新