2016-07-18 5 views
0

私は以下の不規則なデータを持っています。今は年単位の幾何学的リターンに変換したいのですが、なんらかの理由で多くの値に対してNaNを返します。毎月のリターンからの年間収益を計算すると、なぜナンが生成されますか?

xts objetのインデックス値がどのように順序付けられているかが原因であると思われますが、降順にする方法はわかりません(オンラインでもその答えを見つけることができませんでした)。

どうしたのですか?どのように解決することができますか?

Browse[2]> Data.xts[,1] 
      monthly.returns 
2012-09-27  -0.02469261 
2012-10-30  -0.05129329 
2012-11-29  0.05129329 
2012-12-30  0.11778304 
2013-01-30  -0.14310084 
2013-02-27  -0.08004271 
2013-03-28  -0.02817088 
2013-04-29  -0.02898754 
2013-05-30  0.16251893 
2013-06-27  0.00000000 
2013-07-30  0.52324814 
2013-08-29  0.86927677 
2013-09-29  -0.01250016 
2013-10-30  0.02484600 
2013-11-28  -0.06986968 
2013-12-30  -0.06453852 
2014-01-30  0.17055672 
2014-02-27  0.22195942 
2014-03-30  0.02342027 
2014-04-29  -0.11258822 
2014-05-29  0.03061464 
2014-06-29  -0.08381867 
2014-07-30  -0.06782260 
2014-08-28  -0.08541775 
2014-09-29  -0.10394609 
2014-10-30  -0.29833937 
2014-11-27  0.05556985 
2014-12-30  -0.22652765 

Browse[2]> annualReturn(Data.xts[, 'monthly.returns'] , type = 'log') 
      yearly.returns 
2012-12-30   NaN 
2013-12-30   NaN 
2014-12-30  1.255605 

答えて

3

以下のコード私はそれはあなたが、それはいくつかのパッケージから来たかを書いたか、カスタム関数であるかどうか、annualReturn()関数の内部の仕組みを知っているが、あなたは何のための1つの可能性のある説明はありません複数の場所でNaNを見ると、負の数を持つ対数関数を実行していることになります。ただ、基本Rを使用して

、我々はそれを見ることができます:負の数のログを取る

> log(-2) 
[1] NaN 

NaNをもたらし、そして私はこれがあなたのデータを見ているものかもしれ信じています。

+0

annualReturnはquantmodパッケージからのものです。私は問題は私がanualReturnを毎月のリターンで利用しようとしていることで、株式の毎月のクローズとオープンの価格ではないと思う。それは、クローズとオープン価格を使用して正常に動作します。 – uncool

+0

@uncoolこれは良い説明のようです。少なくとも、あなたは 'annualReturn'に負の数を与えていることを確認しました。 –

1

が言う?annualReturn説明、価格の集合が与えられる

は、定期的なリターンを返します。

したがって、価格を予想し、返品をして価格として扱います。 Tim Biegeleisen shows in his answerのように、負数のログをとるとNaNになります。


あなたはあなたのリターンが算術あると仮定すると、直接あなたのリターンを集約するapply.yearlyを使用することができます。

> apply.yearly(1+x, prod)-1 
        [,1] 
2012-12-30 0.08731379 
2013-12-30 1.16831187 
2014-12-30 -0.46319006 

ログが返される場合は、それらを合計する必要があります。

> apply.yearly(x, sum) 
        [,1] 
2012-12-30 0.09309043 
2013-12-30 1.15267951 
2014-12-30 -0.47633945 
関連する問題