R 中负底数的求幂不一致
Exponentiation with a negative base in R not consistent
我正在尝试将负数 returns 和 运行 年化为一期。我有一个 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)
这个returns'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 对象?有办法吗?
谢谢!!
我不聪明。这不是你年化 returns 的方式。 (而且我误解了操作顺序。(谢谢,Dason。))
公式应为:
round(1 + (tail(cumprod(na.omit(x) + 1) - 1,1)), 4)^round(252/length(na.omit(x)),4) - 1
这很好用。对于浪费任何人的努力,我深表歉意,并一如既往地感谢您的帮助!
我正在尝试将负数 returns 和 运行 年化为一期。我有一个 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)
这个returns'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 对象?有办法吗?
谢谢!!
我不聪明。这不是你年化 returns 的方式。 (而且我误解了操作顺序。(谢谢,Dason。))
公式应为:
round(1 + (tail(cumprod(na.omit(x) + 1) - 1,1)), 4)^round(252/length(na.omit(x)),4) - 1
这很好用。对于浪费任何人的努力,我深表歉意,并一如既往地感谢您的帮助!